/ usr / bin vs / usr / local / bin no Linux

390

Por que existem tantos lugares para colocar um binário no Linux? Há pelo menos esses cinco:

  1. /bin/
  2. /sbin/
  3. /usr/bin/
  4. /usr/local/bin/
  5. /usr/local/sbin/

E na minha caixa de escritório, eu não tenho permissões de gravação para alguns deles.

Que tipo de binário entra em qual destes bin s?

    
por Lazer 05.03.2011 / 18:57

5 respostas

486
  1. /bin (e /sbin ) foram destinados a programas que precisavam estar em uma pequena partição / antes de as partições /usr , etc. serem montadas. Atualmente, ela serve principalmente como um local padrão para programas importantes, como /bin/sh , embora a intenção original ainda possa ser relevante para, e. instalações em pequenos dispositivos incorporados.

  2. /sbin , diferente de /bin , é para programas de gerenciamento de sistema (normalmente não usados por usuários comuns) necessários antes de /usr ser montado.

  3. /usr/bin é para programas normais de usuários gerenciados por distribuição.

  4. Existe um /usr/sbin com o mesmo relacionamento com /usr/bin , pois /sbin tem de /bin .

  5. /usr/local/bin é para programas normais do usuário não gerenciados pelo gerenciador de pacotes de distribuição, por exemplo, pacotes compilados localmente. Você não deve instalá-los em /usr/bin porque as futuras atualizações de distribuição podem modificá-las ou excluí-las sem aviso prévio.

  6. /usr/local/sbin , como você provavelmente pode adivinhar neste ponto, é /usr/local/bin as /usr/sbin to /usr/bin .

Além disso, há também /opt , que é para pacotes monolíticos sem distribuição, embora antes de serem devidamente integrados várias distribuições colocam o Gnome e o KDE lá. Geralmente, você deve reservá-lo para pacotes de terceiros grandes e mal comportados, como o Oracle.

    
por 05.03.2011 / 19:22
57

Eu recomendo dar uma olhada na página de manual da hierarquia do sistema de arquivos:

man hier

O que também está disponível on-line, por exemplo: link

    
por 05.03.2011 / 21:14
33

A entrada Padrão de hierarquia do sistema de arquivos na Wikipedia ajudou-me a responder a mesma pergunta quando a tive, além de ter uma tabela muito explicativa.

    
por 05.03.2011 / 22:03
16

Os diretórios sbin contêm programas que geralmente são apenas de administração do sistema. Programas para usuários regulares nunca devem entrar neles.

Alguns programas são necessários durante a inicialização e terminam em /bin/ ou /sbin/ . Eles devem estar disponíveis antes que os sistemas de arquivos sejam montados. Coisas como mount e fsck que são necessárias para verificar e montar sistemas de arquivos devem estar presentes.

A maioria dos programas empacotados acaba em /usr/bin/ e /usr/sbin/ . Eles podem estar em um sistema de arquivos diferente do sistema de arquivos raiz. Em alguns casos, eles podem estar em uma unidade montada em rede.

Programas e scripts locais pertencem a /usr/local/bin/ e /usr/local/sbin/ . Isso os identifica como claramente não padronizados e possivelmente disponíveis apenas no site.

Para mais explicações, tente executar o comando man hier , que deve fornecer uma descrição da hierarquia recomendada do sistema de arquivos para sua distribuição. Você também pode ler sobre a Hierarquia do sistema de arquivos na Wikipedia

    
por 05.03.2011 / 19:21
9

Nos anos 70, UNIX tinha todos os executáveis oficiais em /bin e /usr/bin era um local abaixo dos diretórios pessoais dos usuários (por exemplo, /usr/dmr ) que estava disponível para qualquer usuário armazenar seus próprios binários de interesse para os outros também.

O resultado desse /usr/bin aberto era um depósito de software não documentado e, portanto, Stephen Bourne escreveu um cron script que verificou novos binários todas as noites e removeu todos os binários que não tinham uma documentação ou que foram atualizados sem atualizar sua documentação também.

No final dos anos 1970, /usr/bin foi integrado à distribuição base do sistema operacional e as pessoas começaram a usar /usr/local/bin para o propósito da abertura anterior /usr/bin .

Depois de um tempo, os administradores usaram /usr/local/bin para armazenar o software non-local que foi importado da rede (por exemplo, o USENET) e como as empresas UNIX não gostaram de repetir o mesmo erro que com /usr/bin , uma conferência de hierarquia de sistemas de arquivos por volta de 1987, onde todas as empresas UNIX concordaram em desistir de /usr/local/bin e usar /opt/<vendor>/bin .

Infelizmente, as distribuições Linux não seguiram essa decisão ...

    
por 02.02.2016 / 15:24