Eu corro muitos aplicativos de código aberto, incluindo java e tomcat. Parece que a maioria das instruções tem meus aplicativos em execução no /var
diretório Mas, de vez em quando, também vejo o /opt
diretório. Enquanto estou nisso, eu também vejo /usr/local/
e até mesmo /etc
.
Quando devo instalar aplicativos em uma pasta ou na outra? Existem prós e contras de cada um? Isso tem a ver com o histórico de sabores (Solaris vs Linux ou Red Hat vs Ubuntu)?
linux
installation
Trevor Allred
fonte
fonte
Respostas:
O padrão para esses problemas é o Padrão de Hierarquia de Arquivos . É um documento bastante grande. Basicamente (e muito aproximadamente), os caminhos padrão no Linux são:
/bin
&/sbin
são para programas vitais para o sistema operacional, sendo sbin apenas para administradores;/usr/bin
&/usr/sbin
são para programas não vitais, sbin sendo apenas para administradores;/var
é para dados vivos de programas. Podem ser dados em cache, dados em spool, dados temporários (a menos que estejam dentro/tmp
, que são limpos a cada reinicialização), etc./usr/local
é para programas instalados localmente. Normalmente, ele hospeda programas que seguem os padrões, mas não foram empacotados para o sistema operacional, mas instalados manualmente pelo administrador (usando, por exemplo./configure && make && make install
), bem como scripts de administrador;/opt
é para programas que não são empacotados e não seguem os padrões. Você acabou de colocar todas as bibliotecas lá junto com o programa. Geralmente, é uma solução rápida e suja, mas também pode ser usada para programas criados por você e para os quais você deseja ter um caminho específico. Você pode criar seu próprio caminho (por exemplo/opt/yourcompany
) dentro dele e, nesse caso, é incentivado a registrá-lo como parte dos caminhos padrão;/etc
não deve conter programas, mas configurações.Se seus programas são específicos dos serviços fornecidos pelo serviço,
/srv
também pode ser um bom local para eles. Por exemplo, prefiro usar/srv/www
sites da Web do que/var/www
garantir que o diretório contenha apenas dados que eu adicionei, e nada proveniente de pacotes de software.Existem algumas diferenças entre distribuições. Por exemplo, os sistemas RedHat usam
libexec
diretórios quando os sistemas Debian / Ubuntu não.O FHS é usado principalmente pelas distribuições Linux (na verdade, não conheço nenhum outro sistema operacional que realmente o cumpra). Outros sistemas Unix não o seguem. Por exemplo, os sistemas BSD tendem a usar
/usr/local
para programas empacotados, o que não é o caso do Linux. O Solaris possui caminhos padrão muito diferentes.Encorajo-vos vivamente a ler o documento da ESF que liguei acima, se você quiser saber mais sobre isso.
fonte
/srv
. Eu estava procurando um lugar para meus repositórios git e não gostava do meu conteúdo Apache/var/www
./srv
Parece o lugar perfeito.var
vez dedata
?/var
porque é para "vários dados". Nos primeiros dias, o Unix era hospedado em uma única unidade. Quando não era suficiente, eles conseguiram um novo, montaram/usr
e moveram todos os dados do usuário para lá. Mas isso não foi suficiente e a antiga unidade estava cheia novamente em breve. Então eles moveram todos os binários que o sistema poderia inicializar sem de/bin
para/usr/bin
. Eles simplesmente ficam sem espaço. Posteriormente, eles precisavam compartilhar dados entre os usuários para criar/var
e usá-los como uma caixa suspensa. A ESF está cheia de decisões herdadas como essa e deve ser tomada com uma pitada de sal.opt
significa software opcional.var
significa arquivos de sistema variáveis. Portanto, seus aplicativos devem ir para/opt
.fonte
/var
é para arquivos de sistema variados , não para "vários"./var
porque é para "vários dados". Ainda tenho anotações de um livro pré-internet que li na época.Depende do seu padrão local.
Pessoalmente, não instalo nada no / var sem uma boa razão. Meu / usr / local é quase sempre um nfs montado na rede, então qualquer coisa que não esteja empacotada é instalada no / opt.
fonte
/usr
. Libs geradas dinamicamente pode acabar em/var/lib
ocasionalmente, mas eu não ver o que você realmente instalar em/var
, a partir de um ponto de administração de vista. O programa pode usá-lo extensivamente, mas deve estar bem vazio antes de você iniciar o programa.