Uso dos diretórios / opt e / usr / local no contexto de um PC

65

Qual é a diferença entre /opte /usr/localdiretórios e que tipo de programas deve ser instalado neles?

Mencionei a Hierarquia do sistema de arquivos Linux, mas a explicação não é tão clara. De acordo com o link acima;

/opt : - Este diretório está reservado para todos os pacotes de software e complementares que não fazem parte da instalação padrão

/usr/local: - A /usr/localhierarquia é para ser usada pelo administrador do sistema ao instalar o software localmente. Ele deve ser protegido contra substituição quando o software do sistema for atualizado.

No contexto de um PC sem computadores em rede, qual deve ser o diretório para instalar um software que será acessado por vários usuários locais? (ou seja, onde devo instalar um software como o netbeans)

Obrigado

Niroshan
fonte
4
Google Chrome opts para usar esse diretório por algum motivo.
Camilo Martin
2
@CamiloMartin Eu acho que é optnacional.
Becko
4
@ Becko Bem, deve ser uma optescolha mínima se o Google publicou opt.
Camilo Martin
3
Mesmo se você estiver certo, o optimus Prime soa melhor.
precisa saber é
2
Lol .. cheguei atrasado à festa .. Mas parece que vocês optimitaram bastante a seção de comentários ..: P
john400

Respostas:

71

/opté para aplicativos de terceiros que não dependem de nenhuma dependência fora do escopo do referido pacote. /usr/localé para pacotes instalados nesta máquina fora do escopo do gerenciador de pacotes de distribuição.

Um exemplo:

Um cliente sip de código aberto fornecido como um .deb seria instalado /usr. Se ele fosse construído com o framework Qt, o apt o chamaria de dependência.

O mesmo cliente-sip de código-fonte aberto criado a partir do código-fonte residiria /usr/localpara que não fosse confundido pelo apt se você instalasse posteriormente um pacote .deb para o mesmo aplicativo. Você pode criar suas dependências da fonte ou obtê-las no gerenciador de pacotes.

Um aplicativo de terceiros /optdeve ser independente. Por exemplo, um cliente sip proprietário usando o Qt não dependeria da versão do apt, mas a teria agrupada ou vinculada estaticamente.

Para obter mais informações, consulte o Padrão de hierarquia do sistema de arquivos .

Egil
fonte
11
então o netbeans vai para / usr / local, pois depende do jdk e de outros compiladores + e segue o linux FHS?
Nurshan #
11
A resposta é sim.
21411 Egil
11
Se eu quiser instalar condaglobalmente, como sugerido aqui , é /opto lugar certo?
Alexey19 /
@ Egil, por que o mac não tem um diretório opt?
Pacerier 1/11
Eu votei anteriormente nesta resposta, mas agora vejo que suas conclusões diferem um pouco deste artigo do Linux Journal . O artigo implica que, com o software empacotado, importa quem forneceu o pacote . Se o pacote é de repo pacote do sistema operacional, então ele deve ser instalado sob /usr(ou, presumivelmente, mesmo diretamente sob /bin, /lib, etc), como de costume. Se, no entanto, for de outra fonte, deverá ser colocado /usr/local. Isso incluiria o "cliente sip de código aberto" .debna resposta.
Sampablokuper 31/03/19
12

Eu instalaria pacotes binários somente de terceiros para /opt.

Qualquer coisa que você construa a partir da fonte eu colocaria /usr/local.

netbeansestá nos repositórios Ubuntu. Você precisa de uma versão específica?

Broam
fonte
Existe alguma justificativa por trás disso ou é apenas uma boa prática? (Mencionei o netbeans como exemplo - eu mudei essa parte para remover qualquer ambiguidade). Obrigado
Niroshan 13/04/11
Acho que outras respostas disseram melhor. Normalmente, os binários de terceiros são independentes.
Broam
E quanto a coisas que dependem de tempos de execução, como Python ou software Java? Eu os colocaria, /optmas não tenho certeza se está correto.
Camilo Martin
8

É tudo sobre embalagem. Se algo estiver empacotado da maneira LHS (colocando executáveis ​​em bin / libraries em lib / etc.), deve entrar em / usr / local.

Se algo tem um diretório de nível superior e não segue esse modelo, ele entra em / opt. Geralmente, você precisa adicionar explicitamente itens em / opt ao seu PATH.

Veja também Esta pergunta sobre superusuário

ÁRVORE
fonte
Essa resposta parece ser corroborada por este artigo do Linux Journal .
Sampablokuper 31/03/19