Exemplo: no Ubuntu, sempre há um .local
diretório no diretório inicial e .profile
inclui esta linha:
PATH="$HOME/bin:$HOME/.local/bin:$PATH"
$HOME/.local/bin
não existe por padrão, mas se ele foi criado, ele já está dentro $PATH
e os executáveis dentro podem ser encontrados.
Isso não é exatamente mencionado na especificação do diretório XDG, mas parece derivado dela.
O que me pergunto é se isso é comum o suficiente para que se possa supor que exista nas distribuições mais comuns de usuários finais. É, por exemplo, em todos os derivados do Debian, ou pelo menos os derivados do Ubuntu? E o ecossistema Red Hat / Fedora / CentOS? E assim por diante com Arch, Suse e o que as pessoas estão usando hoje em dia.
Para ser mais claro, isso é apenas para $HOME/.local/bin
, não $HOME/bin
.
Por curiosidade, sinta-se à vontade para incluir BSDs, OS / X e outros se você tiver as informações. :)
fonte
/etc/skel/.profile
inclui e inclui pelo menos 14.04 testes para a presença de um usuário$HOME/bin
e o adiciona aoPATH
se houver; em contraste, 16.04 parece adicionar ambos$HOME/bin
e$HOME/.local/bin
incondicionalmente. Não me lembro de ter adicionado$HOME/.local/bin
a Ubuntus anteriormente - mas não vejo nada de relevante nobash
log de alterações do pacote (que supostamente é o proprietário/etc/skel/.profile
).Respostas:
Os
~/.local
diretórios fazem parte da especificação da hierarquia de arquivos systemd e são uma extensão da especificação xdg user-dirsPode ser confuso, pois os pacotes derivados do Debian
bash
perderam o~/.local
caminho quando eles foram redefinidos para o bash 4.3 e o tinham no bash 4.2.É um bug , e um patch está no sistema Debian há um tempo.
Esse bug é a razão pela qual o Ubuntu 16.04 tinha ~ / .local no caminho e o Ubuntu 17.04 não.
Se você executar
systemd-path
como usuário e verá que ele deve estar no caminho.Em teoria, a resposta para sua consulta é qualquer distro que use systemd ou queira manter a compatibilidade com o systemd.
Há mais informações em
file-hierarchy(7)
fonte
Nas distribuições baseadas em RPM, a situação parece com esta
sudo su -l johndoe
mas não funcionará se você não usar o-l
comutador.Se você deseja ver esses bugs classificados, não se esqueça de votar / comentar sobre eles, pois isso destacaria a importância do problema.
fonte