
Quando instalo este programa "Taurus Blazemeter 'bzt'" com pip, ele acaba sendo instalado na ~/.local/bin
pasta.
mkdir ~/bzt && cd ~/bzt
sudo apt-get install python default-jre-headless python-tk python-pip python-dev libxml2-dev libxslt-dev zlib1g-dev
sudo pip install bzt
Alguém sabe ~/.local
para que serve esta pasta e por que um programa Python como este seria instalado lá?
Responder1
A resposta curta é que esse ~/.local/bin
é o valor padrão do diretório de scripts do usuário do Python e que pip
pode instalar executáveis nesse diretório se executar uma instalação local do usuário. Ele também pode instalar arquivos em outros subdiretórios de ~/.local
, que é o valor padrão do Diretório Base do Usuário. Mais detalhes abaixo.
Não tenho certeza se esta é a introdução mais antiga, mas o ~/.local
diretório aparece noespecificação de hierarquia do sistema de arquivosdosistemasistema init, onde define vários subdiretórios de ~/.local
:
~/.local/bin
Executáveis que devem aparecer no caminho de busca $PATH do usuário. É recomendado não colocar neste diretório executáveis que não sejam úteis para invocação de um shell; eles devem ser colocados em um subdiretório de ~/.local/lib. Deve-se ter cuidado ao colocar binários dependentes de arquitetura neste local, o que pode ser problemático se o diretório inicial for compartilhado entre vários hosts com arquiteturas diferentes.
~/.local/lib
Dados estáticos e privados do fornecedor, compatíveis com todas as arquiteturas.
~/.local/lib/arch-id
Local para colocação de bibliotecas públicas dinâmicas. O identificador de arquitetura a ser usado é definido na lista Multiarch Architecture Specifiers (Tuples).
~/.local/share
Recursos compartilhados entre vários pacotes, como fontes ou arte. Normalmente, a localização precisa e o formato dos arquivos armazenados abaixo deste diretório estão sujeitos a especificações que garantem a interoperabilidade. Se um aplicativo encontrar o conjunto $XDG_DATA_HOME, ele deverá usar o diretório especificado nele em vez deste diretório.
A adoção do ~/.local
diretório pelo Python parece ter sido introduzida no Python 2.6 e está documentada no PEP (Python Enhancement Proposal) 370:
A especificação inclui as seguintes definições para sistemas Unix (incluindo Mac OS X).
Diretório base de usuários
~/.local
Diretório de script do usuário:
~/.local/bin
Diretório de sites do usuário:
~/.local/lib/python2.6/site-packages
Diretório de dados do usuário:
~/.local/lib/python2.6
Disto podemos concluir que Python tem o conceito do chamado "Diretório de usuários base" e que seu valor padrão é ~/.local
. O Diretório de Usuário Base é discutido noDocumentação Python para o site
módulo. Em particular, ele fornece métodos para determinar os valores do diretório base do usuário e do diretório do site do usuário, os sinalizadores de opções --user-base
e --user-site
. Você poderia usá-los assim:
user@host:~$ python -m site --user-base
/home/user/.local
user@host:~$ python -m site --user-site
/home/user/.local/lib/python2.7/site-packages
Existem várias perguntas postadas nos sites StackExchange relacionadas ao ~/.local
diretório que usei como referência: