GNU/Linux >> Tutoriels Linux >  >> Linux

Où placer un exécutable local ?

J'ai un exécutable pour le client de contrôle de version perforce (p4 ). Je ne peux pas le placer dans /opt/local car je n'ai pas les privilèges root. Existe-t-il un emplacement standard où il doit être placé sous $HOME ?

La hiérarchie du système de fichiers a-t-elle une convention qui dit que les exécutables/binaires locaux doivent être placés dans $HOME/bin ?

Je n'ai pas trouvé une telle convention mentionnée dans l'article de Wikipedia pour le FHS.

De plus, s'il existe effectivement une convention, devrais-je inclure explicitement le chemin vers le $HOME/bin répertoire ou quel que soit l'emplacement du bin répertoire est ?

Réponse acceptée :

En général, si un binaire non installé et maintenu sur le système doit être accessible à plusieurs utilisateurs à l'échelle du système, il doit être placé par un administrateur dans /usr/local/bin . Il existe une hiérarchie complète sous /usr/local qui est généralement utilisé pour les progiciels compilés et installés localement.

Si vous êtes le seul utilisateur d'un binaire, installez-le dans $HOME/bin est l'endroit approprié puisque vous pouvez l'installer vous-même et vous serez le seul consommateur. Si vous compilez un progiciel à partir des sources, il convient également de créer une hiérarchie locale partielle ou complète dans votre $HOME annuaire. La hiérarchie locale complète ressemblerait à ceci.

  • $HOME/bin Fichiers binaires locaux
  • $HOME/etc Configuration système spécifique à l'hôte pour les fichiers binaires locaux
  • $HOME/games Fichiers binaires du jeu local
  • $HOME/include Fichiers d'en-tête C locaux
  • $HOME/lib Bibliothèques locales
  • $HOME/lib64 Bibliothèques 64 bits locales
  • $HOME/man Manuels en ligne locaux
  • $HOME/sbin Fichiers binaires du système local
  • $HOME/share Hiérarchie indépendante de l'architecture locale
  • $HOME/src Code source local

Lors de l'exécution de configure , vous devez définir votre hiérarchie locale pour l'installation en spécifiant $HOME comme préfixe pour les valeurs par défaut de l'installation.

./configure --prefix=$HOME

Maintenant, quand make && make install sont exécutés, les binaires compilés, les packages, les pages de manuel et les bibliothèques seront installés dans votre $HOME hiérarchie locale. Si vous n'avez pas créé manuellement un $HOME hiérarchie locale, make install créera les répertoires nécessaires au progiciel.

Une fois installé dans $HOME/bin , vous pouvez soit ajouter $HOME/bin à votre $PATH ou appelez le binaire en utilisant le $PATH absolu . Certaines distributions incluront $HOME/bin dans votre $PATH par défaut. Vous pouvez tester cela soit par echo $PATH et voir si $HOME/bin est là, ou mettez le binaire dans $HOME/bin et en exécutant which binaryname . S'il revient avec $HOME/bin/binaryname , alors il est dans votre $PATH par défaut.

Connexe :Debian – Rechercher les derniers fichiers modifiés au cours des 2 dernières minutes dans votre répertoire personnel qui contiennent une certaine chaîne ?
Linux
  1. /usr/bin Vs /usr/local/bin Sous Linux ?

  2. Où les exécutables recherchent-ils les objets partagés lors de l'exécution ?

  3. Comment rendre un programme exécutable de partout ?

  4. Commande introuvable dans Zsh, mais trouvée dans Bash ?

  5. $home/.local/bin n'est pas dans le chemin pour Ubuntu 19.04 ?

Où les variables d'environnement doivent-elles être définies pour Jenkins ?

cmake --version pointe vers /usr/bin/cmake tandis que cmake pointe vers /usr/local/bin

Où est définie la variable d'environnement $HOME ?

Différence entre /bin et /usr/bin

Déplacement du contenu de /bin vers /usr/bin, possible d'annuler ?

La table est marquée comme écrasée et doit être réparée