Por que devo mover tudo para / opt?

15

Toda vez que eu leio as dicas para instalar um SDK, IDE, alguma extensão e assim por diante, ele diz que eu deveria descompactá-las na pasta /opt . Por que preciso fazer isso?

Quando eu estava instalando o Ubuntu, eu li que deveria definir apenas 10-20 GiB para o sistema de arquivos / e espaço restante definido para /home . Então, devo estender o espaço para a pasta raiz ou deixar todas as coisas em /home ? Existe alguma diferença?

    
por Praytic 19.01.2016 / 15:08

5 respostas

19

Primeiro, entenda que qualquer diretório que não seja explicitamente um ponto de montagem para uma partição separada (ou um subdiretório de tal ponto de montagem) é armazenado na partição raiz ( / ). Portanto, se você tiver raiz ( / ) e /home e nenhuma outra partição, o diretório /opt é simplesmente um diretório na raiz ( / ). Da mesma forma para /tmp , /sbin e qualquer outra coisa. Assim, a questão inicial é baseada na falsa premissa de que você precisa de partições separadas para cada diretório que sai da raiz ( / ) e, portanto, não pode ser respondido diretamente.

Em segundo lugar, /opt é usado para software de terceiros, que, no contexto do Ubuntu, significa software pré-compilado que não é distribuído através de pacotes Debian. Ocasionalmente, você verá a documentação oficial do programa que se refere a /opt , mas há pacotes Debian disponíveis que deixam esses arquivos em outro lugar. Em tais casos, você deve ignorar a documentação oficial, ou pelo menos ignorar suas referências de localização de arquivos, quando você usa o pacote Debian. Além disso, se você tiver a opção de usar um pacote pré-compilado através de um tarball ou de um pacote Debian, geralmente é melhor usar o pacote Debian. Apesar de tudo, o uso de /opt é bastante raro hoje em dia. Se você ainda acha que precisa colocar arquivos em /opt , é bom nomear o software, já que as pessoas aqui podem saber se um pacote Debian está disponível para aquele software.

Finalmente, combinando os dois pontos anteriores, é muito raro que as instalações do Ubuntu dividam /opt em uma partição separada, porque é raro que quantidades significativas de dados sejam armazenadas lá. A maioria dos softwares do Ubuntu vai em /usr e outros locais. Já foi comum dividir /usr em uma partição separada, mas essa prática é bem rara hoje em dia. Se você precisar instalar muitos softwares em /opt , criar uma partição separada para pode fazer sentido - mas, em muitos casos, isso não será realmente útil. Partições separadas farão sentido se você precisar lidar com a segurança de forma diferente, se recursos de sistema de arquivos diferentes forem úteis, para compartilhar dados em várias instalações do SO em uma configuração de inicialização múltipla e por outros motivos. Não é provável que a instalação de software de rotina se beneficie de uma partição separada; De fato, criar uma partição separada para /opt poderia causar problemas se o tamanho consumido pelo software armazenado ali fosse alterado ou se a estimativa do tamanho estiver errada inicialmente.

    
por Rod Smith 19.01.2016 / 17:54
8

Você?

O fato é que você não precisa fazer isso. Usar /opt é uma convenção. Eu recomendaria usá-lo, mas não é estritamente necessário.

De Hierarquia do sistema de arquivos do Linux: Capítulo 1. Hierarquia do sistema de arquivos do Linux :

% bl0ck_qu0te%     
por Torrien 19.01.2016 / 15:15
4

/opt é usado para aplicativos externos (às vezes proprietários) que não são considerados parte da distribuição do Linux. Esses aplicativos podem ter caminhos codificados e, portanto, só serão executados corretamente quando instalados em /opt - mas, se não houver caminhos codificados, você poderá instalá-los em qualquer caminho. Um programa que está instalado em /opt deve ser independente.

O principal motivo para usar /opt é fornecer um caminho padrão comum em que um software externo pode ser instalado sem interferir no restante do sistema instalado. /opt não aparece nos caminhos padrão do compilador ou vinculador ( gcc -print-search-dirs ou /etc/ld.so.conf etc.), portanto, cabeçalhos e bibliotecas instaladas lá são um pouco isolados do sistema principal e não devem interferir com programas já instalados.

O uso de /opt é especificado pelo Padrão de hierarquia do sistema de arquivos : /opt , que indica que /opt veio originalmente do Unix.

% bl0ck_qu0te%     
por bain 19.01.2016 / 18:40
3

Não há nada sagrado sobre /opt , é apenas prática comum colocar software pré-compilado que deve ser acessível a todos os usuários de um sistema neste diretório. Se você é o único usuário do sistema, não há nada de errado em extraí-lo em seu diretório pessoal. E mesmo se houver vários usuários no sistema que precisam acessar esse software, mas você quiser usar o espaço na partição /home , não há nada de errado em criar um diretório /home/softwarename publicamente acessível e extrair seu software lá (o apenas uma ressalva é se você tiver um usuário chamado softwarename , você não poderá usá-lo no diretório pessoal do usuário).

    
por fkraiem 19.01.2016 / 15:18
2

As respostas detalhadas são muito boas, mas (além do software que pode ter caminhos absolutos codificados - não a melhor prática de programação), o ponto principal é que software não-sistema / não-distribuição não deve ser armazenado com os arquivos regulares do sistema.

Colocar as coisas em /opt ou /usr/local mantém as coisas mais limpas e seguras.

Em particular, seu caminho de pesquisa de software ($ PATH) determina a ordem em que os locais são pesquisados ao procurar por um programa de um nome específico a ser executado. Normalmente, lugares como /opt e /usr/local estão no final da lista.

Se você instalar um pacote que tenha um programa chamado cp , a ordem de pesquisa padrão que vem com sua distro encontrará a normal porque o diretório em que ela está armazenada é pesquisado antes de locais como /opt . / p>

Se não funcionou dessa forma, quem sabe o que pode quebrar ou abrir uma falha de segurança se um programa chamado cp fizer outra coisa é executado quando você pensa que está apenas tentando copiar alguns arquivos.

Se algo assim acontecer, pode demorar um pouco até que alguém pense em executar um comando como type cp (que pode nem ser suficiente para mostrar que algo está errado) para descobrir que o que está sendo executado não é o que você acha que é. Até esse ponto, você está preso em "Tudo é exatamente como deveria ser, além do pequeno detalhe de que não funciona!"

Ele basicamente ajuda a impedir que coisas inesperadas aconteçam e também evita situações em que as atualizações do sistema podem remover ou substituir alguns ou todos os seus pacotes instalados "personalizados". Ou, ao contrário, alguns programas "personalizados" podem sobrescrever programas fornecidos pelo sistema que muitos outros programas ou scripts podem confiar.

Do ponto de vista administrativo, misturar programas / arquivos "sistema" e "opcionais" nos mesmos locais coloca o seu sistema em um estado "indefinido" ou pelo menos "ambíguo".

Se você tiver algum problema com seu sistema ou programa e precisar de ajuda, uma das primeiras perguntas feitas é "O que você mudou?" e "Podemos desativar temporariamente algumas de todas essas mudanças, então sabemos que estamos olhando para o problema real e não apenas um sintoma de outra coisa".

Com locais separados, essas alterações podem ser rapidamente identificadas e tudo o que você precisa fazer (pelo menos para os próprios programas) é remover temporariamente seus diretórios do caminho.

    
por Joe 20.01.2016 / 22:37