Por que devo mudar tudo para / optar?


16

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

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


11
Você tem duas perguntas aqui. Apenas uma pergunta por postagem é permitida. Por favor edite sua postagem e, se desejar, poderá postar outra pergunta sobre tamanho ou pasta pessoal #
Sergiy Kolodyazhnyy


Respostas:


20

Primeiro, entenda que qualquer diretório que não seja explicitamente um ponto de montagem para uma partição separada (ou um subdiretório desse ponto de montagem) é armazenado na /partição root ( ). Portanto, se você possui root ( /) e /home, e nenhuma outra partição, seu /optdiretório é simplesmente um diretório em root ( /). Da mesma forma para /tmp, /sbine qualquer outra coisa. Portanto, a pergunta inicial é baseada na falsa premissa de que você precisa de partições separadas para cada diretório que sai do root ( /) e, portanto, não pode ser respondido diretamente.

Segundo, /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 /opt, mas há pacotes Debian disponíveis que descartam esses arquivos em outros lugares. Nesses casos, você deve ignorar a documentação oficial, ou pelo menos ignorar suas referências de local de arquivo, quando você usa o pacote Debian. Além disso, se você tiver a opção de usar um pacote pré-compilado por meio de um pacote tarball ou Debian, geralmente é melhor usar o pacote Debian. Em suma, o uso de /opté bastante raro nos dias de hoje. Se você ainda acha que precisa colocar arquivos /opt, convém nomear o software, pois as pessoas aqui podem saber se um pacote Debian está disponível para esse software.

Finalmente, combinando os dois pontos anteriores, é muito raro as instalações do Ubuntu se dividirem /optem uma partição separada, porque é raro que quantidades significativas de dados sejam armazenadas lá. A maioria dos softwares Ubuntu entra /usre em outros locais. Era comum dividir /usrem uma partição separada, mas essa prática é bastante rara hoje. Se você precisar instalar muitos softwares /opt, criar uma partição separada para isso podefaz sentido - mas em muitos casos isso não será realmente útil. Partições separadas fazem sentido se você precisar lidar com a segurança de maneira diferente, se diferentes recursos do sistema de arquivos forem úteis, para compartilhar dados entre várias instalações do SO em uma configuração de inicialização múltipla e por outros motivos. A instalação rotineira de software provavelmente não se beneficiará de uma partição separada; de fato, a criação de uma partição separada para isso /optpode causar problemas se o tamanho consumido pelo software armazenado lá mudar ou se você errar inicialmente a estimativa do tamanho.


11
Re "o uso de / opt é muito raro atualmente" Você tem certeza?
Pacerier

O @Pacerier por algum motivo / opt parece retornar, / usr / local era certamente mais popular no Ubuntu há alguns anos. De qualquer forma, IMHO, / opt e / usr / local são equivalentes. Veja também linuxjournal.com/magazine/pointcounterpoint-opt-vs-usrlocal e tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html "Atualmente, '/ usr / local' é amplamente considerado um bom lugar para manter programas auto-compilados ou de terceiros ".
Panther

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.

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

1.13 /optar

Este diretório está reservado para todos os pacotes de software e complementares que não fazem parte da instalação padrão. Por exemplo, os pacotes StarOffice, Kylix, Netscape Communicator e WordPerfect são normalmente encontrados aqui. Para estar em conformidade com o FSSTND, todos os aplicativos de terceiros devem ser instalados neste diretório. Qualquer pacote a ser instalado aqui deve localizar seus arquivos estáticos (por exemplo, fontes extras, clipart, arquivos de banco de dados) deve localizar seus arquivos estáticos em uma árvore de diretórios / opt / 'package' ou / opt / 'provider' separada (semelhante à maneira no qual o Windows instalará novo software em sua própria árvore de diretórios C: \ Windows \ Progam Files \ "Program Name"), em que 'package' é um nome que descreve o pacote de software e 'provider' é o nome registrado no LANANA do provedor.

Embora a maioria das distribuições negligencie a criação dos diretórios / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib e / opt / man, elas são reservadas para uso do administrador do sistema local. Os pacotes podem fornecer arquivos "front-end" destinados a serem colocados (vinculando ou copiando) esses diretórios reservados pelo administrador do sistema, mas devem funcionar normalmente na ausência desses diretórios reservados. Os programas a serem chamados pelos usuários estão localizados no diretório / opt / 'package' / bin. Se o pacote incluir páginas de manual do UNIX, elas estão localizadas em / opt / 'package' / man e a mesma subestrutura que / usr / share / man deve ser usada. Os arquivos de pacote que são variáveis ​​devem ser instalados em / var / opt. Os arquivos de configuração específicos do host estão instalados em / etc / opt.

Sob nenhuma circunstância existem outros arquivos de pacote fora das hierarquias / opt, / var / opt e / etc / opt, exceto para os arquivos de pacote que devem residir em locais específicos na árvore do sistema de arquivos para funcionar corretamente. Por exemplo, arquivos de bloqueio de dispositivo em / var / lock e dispositivos em / dev. As distribuições podem instalar o software em / opt, mas não devem modificar ou excluir o software instalado pelo administrador do sistema local sem o consentimento do administrador do sistema local.

O uso de / opt para software adicional é uma prática bem estabelecida na comunidade UNIX. A Interface Binária do Aplicativo System V [AT&T 1990], baseada na Definição da Interface System V (Terceira Edição) e no Padrão de Compatibilidade Binária Intel v. 2 (iBCS2), fornece uma estrutura / opt muito semelhante à definida aqui.

Geralmente, todos os dados necessários para suportar um pacote em um sistema devem estar presentes em / opt / 'package', incluindo arquivos destinados a serem copiados em / etc / opt / 'package' e / var / opt / 'package', além de diretórios reservados em / opt. As pequenas restrições nas distribuições que usam / opt são necessárias porque são possíveis conflitos entre o software instalado e o local instalado na distribuição, especialmente no caso de nomes de caminho fixos encontrados em algum software binário.

A estrutura dos diretórios abaixo / opt / 'provider' é deixada para o empacotador do software, embora seja recomendável que os pacotes sejam instalados em / opt / 'provider' / 'package' e siga uma estrutura semelhante às diretrizes para / opt / pacote. Um motivo válido para divergir dessa estrutura é para pacotes de suporte que podem ter arquivos instalados em / opt / 'provider' / lib ou / opt / 'provider' / bin.


Isso é estranho, porque a maioria das pessoas recomenda dividir um espaço pequeno no diretório raiz e eu pensei que isso não mudaria muito. Parece que preciso lembrar esses conselhos para seguir as convenções?
Praytic

2
@ Praytic Na verdade não. No passado, /optmuitas vezes havia uma unidade separada. Seria usado para instalar software proprietário, que geralmente possuía enormes requisitos de espaço em disco devido ao agrupamento de todas as bibliotecas necessárias e outros recursos. Nos tempos modernos, as unidades são tão grandes que é possível e mais fácil usar apenas uma raiz em uma única unidade.
bain

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 /optdeve ser independente.

A principal razão para o uso /opté fornecer um caminho padrão comum em que o software externo possa ser instalado sem interferir com o restante do sistema instalado. /optnão aparece nos caminhos padrão do compilador ou vinculador ( gcc -print-search-dirsou /etc/ld.so.confetc.); portanto, os cabeçalhos e bibliotecas instalados são um pouco isolados do sistema principal e não devem interferir nos programas já instalados.

O uso de /opté especificado pelo padrão de hierarquia do sistema de arquivos : / opt , que observa que /optoriginalmente veio do Unix.

/ opt: pacotes de aplicativos complementares

Objetivo

/ opt está reservado para a instalação de pacotes de aplicativos complementares.

Um pacote a ser instalado em / opt deve localizar seus arquivos estáticos em uma árvore de diretórios / opt / <package> ou / opt / <provider> separada, em que <package> é um nome que descreve o pacote de software e <provider> é o nome registrado do provedor LANANA.

Exigências

Os diretórios / opt / bin, / opt / doc, / opt / include, / opt / info, / opt / lib e / opt / man são reservados para uso do administrador do sistema local. Os pacotes podem fornecer arquivos "front-end" destinados a serem colocados (vinculando ou copiando) esses diretórios reservados pelo administrador do sistema local, mas devem funcionar normalmente na ausência desses diretórios reservados.

Os programas a serem chamados pelos usuários devem estar localizados no diretório / opt / <package> / bin ou na hierarquia / opt / <provider>. Se o pacote incluir páginas de manual do UNIX, elas deverão estar localizadas em / opt / <package> / share / man ou sob a hierarquia / opt / <provider>, e a mesma subestrutura que / usr / share / man deve ser usada.

Arquivos de pacote que são variáveis ​​(alteração na operação normal) devem ser instalados em / var / opt. Veja a seção em / var / opt para mais informações.

Os arquivos de configuração específicos do host devem ser instalados em / etc / opt. Veja a seção em / etc para mais informações.

Nenhum outro arquivo de pacote pode existir fora das hierarquias / opt, / var / opt e / etc / opt, exceto os arquivos de pacote que devem residir em locais específicos na árvore do sistema de arquivos para funcionar corretamente. Por exemplo, os arquivos de bloqueio de dispositivo devem ser colocados em / var / lock e os dispositivos devem estar localizados em / dev.

As distribuições podem instalar o software em / opt, mas não devem modificar ou excluir o software instalado pelo administrador do sistema local sem o consentimento do administrador do sistema local.

Fundamentação

O uso de / opt para software adicional é uma prática bem estabelecida na comunidade UNIX.A Interface Binária do Aplicativo System V [AT&T 1990], baseada na Definição da Interface System V (Terceira Edição), fornece uma estrutura / opt muito semelhante à definida aqui.

O Intel Binary Compatibility Standard v. 2 (iBCS2) também fornece uma estrutura semelhante para / opt.

Geralmente, todos os dados necessários para suportar um pacote em um sistema devem estar presentes em / opt / <package>, incluindo arquivos destinados a serem copiados em / etc / opt / <package> e / var / opt / <package>, além de diretórios reservados em / opt.

As pequenas restrições às distribuições que usam / opt são necessárias porque são possíveis conflitos entre o software instalado na distribuição e o instalado no local, especialmente no caso de nomes de caminho fixos encontrados em algum software binário.

A estrutura dos diretórios abaixo / opt / <provider> é deixada para o empacotador do software, embora seja recomendável que os pacotes sejam instalados em / opt / <provider> / <package> e siga uma estrutura semelhante às diretrizes para / opt / pacote. Um motivo válido para divergir dessa estrutura é para pacotes de suporte que podem ter arquivos instalados em / opt / <provider> / lib ou / opt / <provider> / bin.


3

Não há nada de sagrado /opt, é apenas prática comum colocar software pré-compilado que deve estar acessível a todos os usuários de um sistema nesse diretório. Se você é o único usuário do sistema, não há nada de errado em extraí-lo no diretório inicial. E mesmo se houver vários usuários no sistema que precisem acessar esse software, mas você desejar usar o espaço em sua /homepartição, não há nada de errado em criar um /home/softwarenamediretório acessível ao público e extrair seu software (a única ressalva é se você ocorrer para ter um usuário nomeado softwarename, você não poderá usá-lo no diretório inicial do usuário).


2

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

Colocar /optou /usr/localmanter as coisas limpas e seguras.

Em particular, o caminho de pesquisa do software ($ PATH) determina a ordem na qual os locais são pesquisados ​​ao procurar um programa com um nome específico para executar. Normalmente, lugares como /opte /usr/localestão no final da lista.

Se você instalar um pacote que possui um programa nomeado cp, a ordem de pesquisa padrão que acompanha a sua distribuição encontrará a normal porque o diretório em que está armazenado é pesquisado antes de lugares como /opt.

Se não funcionasse dessa maneira, quem sabe o que poderia quebrar ou abrir uma falha de segurança se um programa chamado cpque faz outra coisa for executado quando você pensa que está apenas tentando copiar alguns arquivos.

Se algo assim acontecer, pode levar algum tempo até que alguém pense em executar um comando como type cp(o que pode nem ser suficiente para mostrar que algo está errado) para descobrir que o que está sendo executado não é o que você pensa que é. Até esse ponto, você fica preso em "Tudo é exatamente como deveria ser, exceto pelos pequenos detalhes de que não funciona!"

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

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

Se você tiver um problema com seu sistema ou programa e precisar de ajuda, uma das primeiras perguntas que será feita é "O que você mudou?" e "Podemos desativar temporariamente algumas dessas mudanças, para que possamos ver o problema real e não apenas um sintoma de outra coisa".

Em 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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.