Exemple: dans Ubuntu, il y a toujours un .local
répertoire dans le répertoire personnel et .profile
comprend cette ligne:
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
$HOME/.local/bin
n'existe pas par défaut, mais s'il est créé, il existe déjà $PATH
et les exécutables peuvent être trouvés.
Ceci n'est pas mentionné exactement dans la spécification du répertoire XDG, mais semble en être dérivé.
Ce que je me demande, c’est si cela est suffisamment courant pour qu’on puisse supposer qu’il existe dans les distributions d’utilisateur final les plus courantes. Est-ce, par exemple, dans tous les dérivés de Debian, ou du moins dans ceux d'Ubuntu? Qu'en est-il de l'écosystème Red Hat / Fedora / CentOS? Et ainsi de suite avec Arch, Suse et ce que les gens utilisent actuellement.
Pour être très clair, c'est seulement pour $HOME/.local/bin
, pas $HOME/bin
.
Par curiosité, n'hésitez pas à inclure des BSD, OS / X et autres, si vous avez les informations. :)
la source
/etc/skel/.profile
jusqu'à 14.04 au moins, sur la présence d'un utilisateur,$HOME/bin
et l'ajoutent auPATH
cas échéant. en revanche, 16.04 semble ajouter les deux$HOME/bin
et$HOME/.local/bin
inconditionnellement. Je ne me souviens pas du tout que Ubuntus ait ajouté auparavant$HOME/.local/bin
- mais je ne vois rien de pertinent dans lebash
paquet changelog (qui est censé en être propriétaire/etc/skel/.profile
).Réponses:
Les
~/.local
répertoires font partie de la spécification systemd de la hiérarchie de fichiers et constituent une extension de la spécification xdg user-dirs.Cela peut prêter à confusion, car les paquets dérivés de Debian pour
bash
lost the~/.local
path ont été perdus quand ils se sont réorientés en bash 4.3, ils l'ont eu dans bash 4.2.C'est un bogue et un correctif est installé dans le système Debian depuis un moment maintenant.
Ce bug est la raison pour laquelle Ubuntu 16.04 a ~ / .local dans le chemin et Ubuntu 17.04 pas.
Si vous vous exécutez en
systemd-path
tant qu'utilisateur et que vous verrez qu'il est destiné à être dans le chemin.En théorie, la réponse à votre question est Toute distribution utilisant systemd ou désirant maintenir la compatibilité avec systemd.
Il y a plus d'informations dans
file-hierarchy(7)
la source
Sur les distributions basées sur RPM, la situation semble ressembler à ceci
sudo su -l johndoe
mais cela ne fonctionnera pas si vous n'utilisez pas le-l
commutateur.Si vous voulez voir ces bugs triés, n'oubliez pas de voter / commenter ceux-ci car cela soulignerait l'importance de la question.
la source