como a maioria das pessoas, ocasionalmente estou instalando coisas ou escrevendo/usando scripts provenientes de fora dos repositórios de minhas distros ou "feitos à mão", para que eles não acabem no caminho padrão do sistema ou não devam ser adicionados a ele.
Agora existem diferentes maneiras de proceder.
Algo que eu só queira executar ocasionalmente ou que só precise ser executado em um determinado diretório pode permanecer como está desde então cd ~/stuff/fancyapp
e então ./fancyexecutable
é bom o suficiente.
Mas, às vezes, posso querer simplesmente fazer algo como backup.sh
em qualquer local em que estou ou outros programas precisam estar cientes de um determinado executável e, para isso, posso atualizar meu $PATH com algo como PATH=$PATH:~/bin/backup/
e export PATH
reiniciar meu sessão. No entanto, isso me leva ao problema de ter um "lixo inicial" onde movo/vinculo simbolicamente todos os executáveis para ~/bin/
, ou quando quero ter um bin inicial normal, tendo que adicionar todos os subdiretórios ao meu caminho. (Ou eu poderiahackear algo juntos para tornar o caminho recursivo)
Então, qual é a maneira adequada, recomendada e segura de lidar com o seu próprio, bin
que terá vários executáveis e subdiretórios?
Responder1
Eu instalo todo o software criado localmente no /home/user/.local
diretório. Este diretório basicamente copia a estrutura de diretórios /usr
como você pode ver:
> ls ~/.local
bin etc include jars lib lib64 libexec man share
Você pode apontar as ferramentas de construção para definir este diretório como o prefixo de instalação. Algumas ferramentas usam o valor da variável de ambiente PREFIX
para determinar o local de instalação, por isso é uma boa ideia definir isso também, mas não confie nisso.
Observe que você terá que definir o valor de vários ambientes como PATH
, LD_LIBRARY_PATH
, PKG_CONFIG_PATH
, CLASSPATH
de acordo.