Onde é um bom lugar permanente para instalar scripts personalizados de bash?

31

Estou prestes a instalar o "leiningen", que é um script bash para a linguagem de programação clojure com muita utilidade ... ... mas não tenho certeza de onde é apropriado colocar um script executável no sistema linux, de forma permanente e estável.

Eu não acho que em qualquer lugar em / home faça sentido, mas não sei qual diretório / diretórios devem ser usados para isso.

/ usr / share?

    
por Kzqai 07.05.2010 / 05:00

4 respostas

44

(Nota: ~ traduz como /home/user neste post)

Pessoalmente, coloquei todos os meus scripts de sistema personalizados em /usr/local/bin e todos os meus scripts pessoais em ~/bin . Muito poucos programas que eu instalo se colocam no diretório /usr/local/bin , então não é muito confuso e já estava na variável $PATH na maioria das minhas máquinas.

Para adicionar /usr/local/bin ao seu caminho do sistema (se ainda não estiver lá), adicione isso a /etc/profile :

PATH=$PATH:/usr/local/bin
export PATH

Para adicionar ~/bin ao caminho do usuário, adicione isso a ~/.bash_profile :

PATH=$PATH:$HOME/bin
export PATH

Às vezes, o arquivo .bash_profile padrão terá uma instrução if que adiciona automaticamente ~/bin a $PATH , se existir, crie o ~/bin e abra um novo terminal para ver se o seu já faz isso.

    
por 07.05.2010 / 05:36
8

/ usr / local / é realmente o lugar certo, enquanto / opt é realmente para aplicativos de terceiros; "/ opt está reservado para a instalação de pacotes de software de aplicativos complementares." Isso faz parte do Padrão de Hierarquia do Sistema de Arquivos.

Veja o link para discussão sobre / opt.

Para / usr / local /, é para "usar pelo administrador do sistema". Apenas não se esqueça das coisas que estão lá - documente.

    
por 30.07.2010 / 19:33
2

Historicamente, você usaria algo como / opt. Tudo está bem, desde que seja atualizado em $ PATH para os usuários que devem tê-lo (portanto, qualquer coisa em / home sendo uma má ideia).

    
por 07.05.2010 / 05:21
1

/usr/share/clojure parece um lugar comum para colocar binários e bibliotecas do clojure - porque eu não sei, parece natural para /usr/local/share/clojure - então criar um subdiretório site sob este para esses scripts bash parece bem.

O ponto geral é que faz mais sentido organizar scripts por função, não ter todos os scripts bash no mesmo lugar.

    
por 07.05.2010 / 14:39