GNU/Linux >> Tutoriels Linux >  >> Linux

Garder une trace des programmes ?

Lorsque j'installe un programme simple, il utilise souvent make && make install et n'a même pas souvent de désinstallation cible.

Si je souhaite mettre à niveau un programme, le protocole standard suppose-t-il qu'il se réécrit de manière transparente sur l'ancien programme ?

Comment puis-je garder une trace de ces programmes ; est-ce que la plupart des gens "tirent et oublient" et si non, désinstallez la cible est donnée dois-je tout supprimer manuellement ?

Réponse acceptée :

Installez chaque programme dans une arborescence de répertoires dédiée et utilisez Stow ou XStow pour faire apparaître tous les programmes dans une hiérarchie commune. Stow crée des liens symboliques du répertoire spécifique au programme vers une arborescence commune.

Plus en détail, choisissez un répertoire de niveau supérieur, par exemple /usr/local/stow . Installez chaque programme sous /usr/local/stow/PROGRAM_NAME . Par exemple, faites en sorte que ses exécutables soient installés dans /usr/local/stow/PROGRAM_NAME/bin , ses pages de manuel dans /usr/local/stow/man/man1 etc. Si le programme utilise autoconf, exécutez alors ./configure --prefix /usr/local/stow/PROGRAM_NAME . Après avoir exécuté make install , exécutez stow :

./configure --prefix /usr/local/stow/PROGRAM_NAME
make
sudo make install
cd /usr/local/stow
sudo stow PROGRAM_NAME

Et maintenant, vous aurez des liens symboliques comme ceux-ci :

/usr/local/bin/foo -> ../stow/PROGRAM_NAME/bin/foo
/usr/local/man/man1/foo.1 -> ../../stow/PROGRAM_NAME/man/man1/foo.1
/usr/local/lib/foo -> ../stow/PROGRAM_NAME/lib/foo

Vous pouvez facilement garder une trace des programmes que vous avez installés en listant le contenu du stow répertoire, et vous savez toujours à quel programme appartient un fichier car il s'agit d'un lien symbolique vers un emplacement sous le répertoire de ce programme. Désinstallez un programme en exécutant stow -D PROGRAM_NAME puis en supprimant le répertoire du programme. Vous pouvez rendre un programme temporairement indisponible en exécutant stow -D PROGRAM_NAME (exécuter stow PROGRAM_NAME pour le rendre à nouveau disponible).

Si vous souhaitez pouvoir basculer rapidement entre différentes versions du même programme, utilisez /usr/local/stow/PROGRAM_NAME-VERSION comme répertoire du programme. Pour passer de la version 3 à la version 4, installez la version 4, puis exécutez stow -D PROGRAM_NAME-3; stow PROGRAM_NAME-4 .

Les anciennes versions de Stow ne vont pas très loin au-delà des bases que j'ai décrites dans cette réponse. Les versions plus récentes, ainsi que XStow (qui n'a pas été maintenu récemment) ont des fonctionnalités plus avancées, comme la possibilité d'ignorer certains fichiers, mieux gérer les liens symboliques existants en dehors du répertoire stow (comme man -> share/man ), gérer automatiquement certains conflits (lorsque deux programmes fournissent le même fichier), etc.

Connexe :changer le titre du terminal ?

Si vous n'avez pas ou ne voulez pas utiliser l'accès root, vous pouvez choisir un répertoire sous votre répertoire personnel, par ex. ~/software/stow . Dans ce cas, ajoutez ~/software/bin à votre PATH . Si man ne trouve pas automatiquement les pages de manuel, ajoutez ~/software/man à votre MANPATH . Ajouter ~/software/info à votre INFOPATH , ~/software/lib/python à votre PYTHONPATH , et ainsi de suite selon le cas.


Linux
  1. Pourquoi le CD n'est-il pas un programme ?

  2. Lister les fichiers accessibles par un programme ?

  3. Mesurer l'utilisation de RAM d'un programme ?

  4. Linux - Garder une trace de l'état du service en continu ?

  5. Programme de compression affichant le taux de compression en direct ?

Langage de programmation C - Introduction

Comment désinstaller des programmes dans un système d'exploitation élémentaire et Ubuntu

5 conseils pour maîtriser Linux

Comment supprimer des programmes installés à partir de la source à l'aide de GNU Stow sous Linux

Qu'est-ce que Bonjour sur mon ordinateur ? Guide PC du programme Windows 10 Bonjour

Comment exécuter des programmes Java dans Ubuntu