Função do diretório / usr / local no FreeBSD

5

Ao contrário dos Linuxes que usei, no FreeBSD o diretório /usr/local é densamente povoado por uma instalação normal, mesmo sem usar nenhuma porta. De fato, shells não-básicos (Bash e Z-Shell) são colocados lá (em /usr/local/bin ).

No Linux, era bom ter scripts ou software customizados na árvore /usr/local para que eles fossem claramente separados do software de distribuição (por exemplo, para “desativar” facilmente essas “modificações”, tirando /usr/local out do $PATH ).

Qual é o raciocínio por trás disso? E como duvido que exista uma maneira de fazer o FreeBSD se comportar como o Linux, quais seriam as melhores práticas para instalar softwares customizados e arquivos acessíveis para todos os usuários?

    
por wolf-revo-cats 26.12.2016 / 05:18

3 respostas

7

Under Linux it was nice to have custom-built scripts or software in the /usr/local tree for them to be clearly separated from the distribution software

E isso é exatamente o que você está recebendo no FreeBSD . Shells como o shell Z e o shell Bourne Again não fazem parte do FreeBSD . Eles são adições de terceiros. Às vezes, o sistema operacional é referido pelo nome de gíria "base". No mundo BSD em geral, adições de terceiros sobre "base" não vivem em /usr . Eles vivem em /usr/local .

No mundo BSD - e isso vale para outros sistemas operacionais BSD como o OpenBSD - você obtém o próprio funcionamento em / e /usr , e o material que não é o sistema operacional em /usr/local . Se alguém quiser apenas a funcionalidade do sistema operacional sem as adições, levará /usr/local em consideração no que se está fazendo.

A ligeira virada para isso é que derivativos do FreeBSD, como TrueOS Server e TrueOS Desktop, consideram modestamente que suas adições no FreeBSD não fazem parte do sistema operacional. Portanto, há toda uma carga de material pronto para uso do TrueOS que vive em /usr/local com o material não-operacional. Por exemplo: é onde você encontrará o PCDM, o gerenciador de exibição TrueOS, vivendo.

Por outro lado, /usr/local é onde todos os softwares criados que não são partes do sistema operacional.

Para mostrar o quão strong é essa divisão:

  • Os scripts Mewburn rc para coisas que não são do sistema operacional entram em /usr/local/etc/rc.d/ e não são adicionados a /etc/rc.d/ . É onde você encontrará /usr/local/etc/rc.d/nginx .
  • Arquivos de configuração que não são do sistema operacional entram em /usr/local/etc/ not /etc/ . É onde você encontrará /usr/local/etc/cups .
  • Há uma distinção entre /usr/share/man em que os manuais do sistema operacional estão e /usr/local/man em que estão os manuais que não são do sistema operacional.

Até mesmo o gerenciador de pacotes em si (atualmente) não faz parte do sistema operacional propriamente dito. Existe um gerenciador de pacotes "bootstrap", pkg-static . Isso instala pkg , o gerenciador de pacotes real que possui arquivos de configuração em /usr/local/etc/pkg e que é um complemento em si.

O salto conceitual que você tem que fazer vindo do mundo das "distribuições" do Linux é que você não obtém um sistema operacional construído a partir de uma mistura de pacotes fornecidos por um "distribuidor". Você obtém um sistema operacional completo como uma unidade coerente (instalada por um instalador, atualizada com freebsd-update e mantida como um único "ambiente de inicialização" usando o ZFS) e todos os itens de terceiros como portas e pacotes separados daquele . Se o você mesmo estiver fornecendo material de terceiros, seja você um desenvolvedor ou administrador do sistema, então você também faz portas e pacotes, ou apenas o coloca diretamente em /usr/local de alguma forma.

Por outro lado, softwares customizados que são partes do sistema operacional estão em / e /usr onde o sistema operacional mora. O sistema de origem e compilação para todo o sistema operacional é fornecido em /usr/src como parte desse sistema autossuficiente. Você faz modificações locais lá, compartilha-as com outras pessoas usando Subversion (FreeBSD) e git (TrueOS) se você quiser, e reconstrói a "userland" sozinha ou o sistema operacional inteiro (ambos " shell "e" kernel ") a partir disso.

Nota lateral interessante

Se você mesmo assim criar sua própria estrutura para suas próprias máquinas, deverá, de acordo com o próprio manual do sistema operacional, fornecer uma página de manual local hier substituindo a página do sistema operacional. ☺

Leitura adicional

por 26.12.2016 / 13:40
4

Na instalação do FreeBSD PREFIX é definido como /usr/local como padrão. Isso é usado para arquivos instalados a partir de pacotes (e pacotes foram construídos por portas, é claro). Como zsh e bash são pacotes e não estão na base, eles vão para /usr/local .

Você também pode instalar seu próprio software em /usr/local . Apenas tome cuidado e evite colisões.

Se você quiser um destino diferente, crie um e instale tudo personalizado sob um novo PREFIX . Algumas pessoas usam /opt . Quando você quiser servir binários sob este PREFIX , você pode usar as classes de usuário em login.conf (5) e defina a entrada path para que eles contenham algo como /opt/bin (leia também sobre cap_mkdb (1) e a especificação da classe de login do usuário em passwd (5) ).

    
por 26.12.2016 / 12:03
3

/ usr / local é (do zsh são fornecidos opcionalmente e devem ser incluídos após uma instalação simples e, portanto, eles residem lá.

Ao observar uma hierarquia rígida de software específico do sistema operacional e de outros softwares, a automação de atualizações e patches do sistema operacional é mais fácil de gerenciar. Dessa forma, não é muito diferente do uso do diretório para distinguir scripts e personalizações personalizadas. O que você pode estar perdendo, no entanto, é que o sistema de portas no FreeBSD é muito mais amplo em escopo - é como você personaliza seu sistema BSD, não simplesmente uma coleção de software opcional.

A melhor prática seria evitar a instalação de software não testado para todos os usuários que ainda não existem na árvore de portes. Se for proprietário, deve ser instalado em /usr/local/ . Se não for, por que não o faça uma port da sua possui ?

    
por 26.12.2016 / 05:49