web-dev-qa-db-fra.com

Quelles distributions ont $ HOME / .local / bin dans $ PATH?

Exemple: dans Ubuntu, il y a toujours un .local répertoire dans le répertoire personnel et .profile inclut cette ligne:

PATH="$HOME/bin:$HOME/.local/bin:$PATH"

$HOME/.local/bin n'existe pas par défaut, mais s'il est créé, il est déjà dans $PATH et les exécutables à l'intérieur peuvent être trouvés.

Ce n'est pas exactement mentionné dans la spécification du répertoire XDG mais semble en dériver.

Ce que je me demande, c'est si c'est assez commun pour que l'on puisse généralement supposer qu'il existe dans les distributions d'utilisateurs finaux les plus courantes. Est-ce, par exemple, dans tous les dérivés Debian, ou du moins ceux d'Ubuntu? Que diriez-vous de l'écosystème Red Hat/Fedora/CentOS? Et ainsi de suite avec Arch, Suse et ce que les gens utilisent de nos jours.

Pour être plus clair, ce n'est que pour $HOME/.local/bin, pas $HOME/bin.

Par curiosité, n'hésitez pas à inclure les BSD, OS/X et autres si vous avez les informations. :)

56
Stoffe

Les répertoires ~/.local Font partie de la spécification de la hiérarchie des fichiers systemd et sont une extension de la spécification des répertoires utilisateur xdg

Cela peut être déroutant car les paquets dérivés de Debian pour bash ont perdu le chemin ~/.local Lorsqu'ils ont rebasé vers bash 4.3, ils l'avaient dans bash 4.2.

C'est un bug , et un patch est installé dans le système Debian depuis un petit moment maintenant.

Cette bogue est la raison pour laquelle Ubuntu 16.04 avait ~/.local dans le chemin et Ubuntu 17.04 n'en avait pas.

Si vous exécutez systemd-path En tant qu'utilisateur et vous verrez qu'il est destiné à être dans le chemin.

$ systemd-path user-binaries
/home/foo/.local/bin

En théorie, la réponse à votre requête est Toute distribution qui utilise systemd ou souhaite maintenir la compatibilité avec systemd.

Il y a plus d'informations dans file-hierarchy(7)

56
gdahlm

Sur les distributions basées sur RPM, la situation semble ressembler à ceci

  • RHEL 7 - l'ajoute à la fin de PATH voir https://bugzilla.redhat.com/show_bug.cgi?id=1583227 lorsque vous utilisez un shell de connexion. Cela fonctionnera avec Sudo su -l johndoe mais cela ne fonctionnera pas si vous n'utilisez pas le -l commutateur.
  • CentOS 7 - voir RHEL, il suit toujours RHEL.
  • Fedora 28 (probablement plus ancien aussi) - identique à RHEL/CentOS, ajouté à la fin de PATH

Si vous souhaitez voir ces bogues triés, n'oubliez pas de voter/commenter ceux-ci car cela mettrait en évidence l'importance du problème.

2
sorin