Comment utiliser GNU Stow pour gérer les programmes installés à partir de Source et DotFiles

Comment utiliser GNU Stow pour gérer les programmes installés à partir de Source et DotFiles

Objectif

Gérer facilement les programmes installés à partir de Source et DotFiles à l'aide de GNU Stow

Exigences

  • Autorisation

Difficulté

FACILE

Conventions

  • # - nécessite que les commandes Linux soient exécutées avec des privilèges racine
    directement en tant qu'utilisateur racine ou en utilisant Sudo commande
  • $ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Introduction

Parfois, nous devons installer des programmes de Source: peut-être qu'ils ne sont pas disponibles via des canaux standard, ou peut-être que nous voulons une version spécifique d'un logiciel. Gnu Stow est un très joli usine Symlinks programme qui nous aide beaucoup en gardant les fichiers organisés de manière très propre et facile à maintenir.

Obtention de Stow

Vos référentiels de distribution sont très susceptibles de contenir ranger, Par exemple dans Fedora, tout ce que vous avez à faire pour l'installer est:

# DNF Installer Stow

ou sur Ubuntu / Debian, vous pouvez installer Stow en exécutant:

# APT INSTALLER STOW 

Dans certaines distributions, il n'est pas disponible dans des référentiels standard, mais il peut être facilement obtenu en ajoutant des sources de logiciels supplémentaires (par exemple EPEL dans le cas de Rhel et Centos7) ou, en dernier recours, en le compilant à partir de la source: il nécessite très peu de dépendances.

Compilation du rangement de la source

La dernière version Stow disponible est la 2.2.2: Le tarball est disponible en téléchargement ici: https: // ftp.gnou.org / gnu / stow /.

Une fois que vous avez téléchargé les sources, vous devez extraire le tarball. Accédez au répertoire où vous avez téléchargé le package et exécutez simplement:

$ TAR -XVPZF STOW-2.2.2.le goudron.gz

Une fois les sources extraites, naviguez à l'intérieur du Stow-2.2.2 Répertoire, et pour compiler le programme exécuté simplement:

$ ./ Configurer $ marquer 

Enfin, pour installer le package:

# faire l'installation

Par défaut, le package sera installé dans le / usr / local / répertoire, mais nous pouvons modifier cela, spécifiant le répertoire via le --préfixe Option du script de configuration, ou en ajoutant prefix = "/ your / dir" Lors de l'exécution du faire l'installation commande.

À ce stade, si tout fonctionnait comme prévu, nous aurions dû ranger installé sur notre système

Comment fonctionne Stow?

Le concept principal derrière Stow Il est très bien expliqué dans le manuel du programme:

L'approche utilisée par Stow consiste à installer chaque pack. 

Pour mieux comprendre le fonctionnement du package, analysons ses concepts clés:

Le répertoire Stow

Le répertoire Stow est le répertoire racine qui contient tous les paquets de rangement, chacun avec son propre sous-arbre privé. Le répertoire Stow typique est / usr / local / stow: à l'intérieur, chaque sous-répertoire représente un emballer

Paquets de rangement

Comme indiqué ci-dessus, le répertoire Stow contient des «packages», chacun dans son propre sous-répertoire séparé, généralement nommé d'après le programme lui-même. Un package n'est rien d'autre qu'une liste de fichiers et répertoires liés à un logiciel spécifique, géré comme une entité.

Le répertoire cible Stow

Le répertoire cible Stow est un concept très simple à expliquer. C'est le répertoire dans lequel les fichiers de package doivent sembler être installés. Par défaut, le répertoire cible Stow est considéré comme celui au-dessus du répertoire dans lequel Stow est invoqué à partir de. Ce comportement peut être facilement modifié en utilisant le -t Option (abréviation pour -target), qui nous permet de spécifier un répertoire alternatif.

Un exemple pratique

Je crois qu'un exemple bien fait vaut 1000 mots, alors montrons comment fonctionne Stow. Supposons que nous voulons compiler et installer libx264. Clone le référentiel Git contenant ses sources:

$ git clone git: // git.videolan.org / x264.git

Quelques secondes après l'exécution de la commande, le répertoire «x264» sera créé et il contiendra les sources, prêtes à être compilées. Nous naviguons maintenant à l'intérieur et exécutons le configurer script, spécifiant le répertoire / usr / local / stow / libx264 comme --préfixe:

$ CD x264 && ./ Configurer --prefix = / usr / local / stow / libx264

Ensuite, nous construisons le programme et l'installons:

$ make # faire l'installation 

Le répertoire x264 aurait dû être créé à l'intérieur du répertoire Stow: il contient toutes les choses qui auraient été normalement installées dans le système directement. Maintenant, tout ce que nous avons à faire, c'est d'invoquer Stow. Nous devons exécuter la commande soit à l'intérieur du répertoire Stow, en utilisant le -d Option pour spécifier manuellement le chemin d'accès au répertoire Stow (par défaut est le répertoire actuel), ou en spécifiant la cible avec -t Comme dit avant. Nous devons également fournir le nom du package à ranger comme argument. Dans ce cas, nous exécutons le programme à partir du répertoire Stow, donc tout ce que nous devons taper est:

# stow libx264

Tous les fichiers et répertoires contenus dans le package LIBX264 ont maintenant été liés au répertoire parent (/ usr / local) de celui à partir de laquelle Stow a été invoqué, de sorte que, par exemple, des binaires libx264 contenus dans / usr / local / stow / x264 / bin sont désormais symbolisés dans / usr / local / bac, Fichiers contenus dans / usr / local / stow / x264 / etc sont désormais symbolisés dans / usr / local / etc et ainsi de suite. De cette façon, il apparaîtra au système que les fichiers ont été installés normalement, et nous pouvons facilement garder une trace de chaque programme que nous compilons et installons. Pour revenir à l'action, nous utilisons simplement le -D option:

# stow -d libx264

C'est fait! Les liens symboliques n'existent plus: nous «désinstallissons» un package Stow, gardant notre système dans un état propre et cohérent. À ce stade, il devrait être clair pourquoi Stow il est également utilisé pour gérer. Une pratique courante consiste à avoir tous les fichiers de configuration spécifiques à l'utilisateur dans un référentiel GIT, à les gérer facilement et à les faire disponibles partout, puis à utiliser Stow pour les placer le cas échéant, dans le répertoire de l'utilisateur.

Stow vous empêchera également de remplacer les fichiers par erreur: il refusera de créer des liens symboliques si le fichier de destination existe déjà et ne pointe pas vers un package dans le répertoire Stow. Cette situation est appelée un conflit dans la terminologie Stow.

C'est ça! Pour une liste complète des options, veuillez consulter la page manuelle Stow et n'oubliez pas de nous dire vos opinions à ce sujet dans les commentaires.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Réinitialisez les paramètres de bureau GNOME sur par défaut d'usine sur Ubuntu…
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Ubuntu 20.04 astuces et choses que vous ne savez peut-être pas
  • Linux peut-il obtenir des virus? Exploration de la vulnérabilité de Linux…
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Commandes Linux: les 20 meilleures commandes les plus importantes que vous devez…
  • Masterring Bash Script Loops
  • Téléchargement Linux