o que significa elibc_FreeBSD em sobreposições de portage do gentoo?

1

Eu tenho uma sobreposição do gentoo que foi adicionada ao link . Um dos meus ebuilds recMD5 agora mostra o uso de flag elibc_FreeBSD mesmo que eu não tenha adicionado. Eu também estou correndo para um pacote hadoop . Parece que tudo que eu preciso fazer é adicionar o sinalizador de uso para o pacote, mas eu gostaria de saber qual é o seu propósito.

Eu também estou recebendo um erro com

euse -E elibc_FreeBSD

ERRO: Use flag "elibc_FreeBSD" está mascarado e não deve ser adicionado ao make.conf.

    
por John Mercier 24.06.2015 / 01:01

1 resposta

1

Um pouco de fundo

Historicamente falando, alguns usuários do FreeBSD não se deram bem com os usuários dos Linuxes. Por muitos anos, até o Linux from Scratch , e os filhos de quem é o Gentoo, os usuários não conseguiam obter o verdadeiro código-fonte em seus sistema, a menos que optem por usar o Sistema de Ports do FreeBSD . Por essa razão, os usuários do FreeBSD se viam como superiores, mas como o Gentoo e o Portage amadureceram, o palco estava montado para a batalha na foto abaixo (e o G está para trás, eu sei):

AssimcomooPortageusaaconstruçãoebuild,asportas têm as mesmas regras . Liguei a verificação de dependência porque essa é a maior delas. Se você olhar para o Capítulo 5, Seção 5 , verá que o gerenciamento de portos pode ser considerado alguma coisa, desde um aborrecimento até uma dor de cabeça. Como tal, a bandeira e o projeto que explico abaixo tentam aliviar o problema, substituindo o mecanismo de portas pelo portage. Veja como funciona o sinalizador para saber mais.

Por que o Gentoo é chamado de Meta Distribution

Por favor, leia GLEP: 22 , parte do G entoo L inux E nhancement P roject , na qual a Seção de Especificação declara:

Keyword Fragments

Each keyword needs to specify, either explicitly or implicitly, the following parameters: ARCH, USERLAND, LIBC, and KERNEL.

ARCH
x86, amd64, cobalt, mips64, arm, hppa, ia64, ppc64, sparc

KERNEL
linux, selinux, openbsd, freebsd, netbsd, macosx

USERLAND
gnu, bsd

LIBC
glibc, openbsd, freebsd, netbsd, macosx

(The above examples are not meant to be complete. Hurd, for example is not included because I know very little about Hurd.)

A fully-specified keyword would look like "ARCH-KERNEL-USERLAND-LIBC", so, for example, "ppc-fbsd-gnu-glibc" would indicate a Gentoo system corresponding to a ppc architecture running the FreeBSD kernel with a GNU userland and glibc as the system C library.

elibc é a abreviação de Environment_LIBC, que aponta para o fragmento de palavra-chave LIBC . O LIBC é a implementação do Linux de uma Biblioteca de Padrões C. Como a Biblioteca de Padrões depende de todas as palavras-chave citadas acima, ela é definida em todo o sistema e por meio de herança variável, uma base de pacote no Gentoo (consulte /etc/portage/make.profile , que é um link simbólico para /usr/portage/profiles ). usando eselect profiles ).

ecyoung@bedroom-gentoo ~ $ sudo emerge -av glibc
Password: 

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] sys-libs/glibc-2.20-r2:2.2::gentoo  USE="gd (multilib) -debug (-hardened) -nscd -profile (-selinux) -suid -systemtap -vanilla" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No]

Para produzir o LIBC acima, meu perfil contém ou herda:

  1. ARCH - amd64
  2. KERNEL - linux
  3. USERLAND - gnu
  4. LIBC - glibc

É a variável USE e palavra-chave USE Flags explicada neste GLEP, que torna o Gentoo tão poderoso. Esse é o principal motivo pelo qual eu escolhi o Gentoo como minha distribuição principal, e também a razão pela qual eu lerei e / ou tentarei responder todas as perguntas aqui marcadas como /gentoo .

Quando as palavras-chave e as variáveis de ambiente forem misturadas com o USE Flags por pacote, a meta-distribuição será criada. Embora não exista um número infinito de maneiras para compilar um pacote, posso garantir que todos os pacotes em um sistema Gentoo foram afetados por uma USE flag de uma forma ou de outra.

Como a bandeira funciona

Para instalar o FreeBSD, você precisa usar o Manual fornecido pelo FreeBSD para instalar o FreeBSD, e então dentro de uma instalação nova, use as instruções do Gentoo FreeBSD no Wiki . Isso adiciona a seguinte funcionalidade ao FreeBSD:

Gentoo/FreeBSD is a Gentoo system based on FreeBSD. It is FreeBSD with the following changes:

  • Portage replaces ports.
  • The base system is managed by portage.
  • Software in ./contrib and ./crypto is replaced with Gentoo Linux versions.
  • The rc system is replaced with OpenRC.
  • Python, wget and bash are included in the base system to support portage.
  • FreeBSD's bootloader is removed from the base system (useful for jails).

O mantenedor dos dois pacotes com os quais sua pergunta estava preocupada adicionou a opção de compilar o pacote em um sistema FreeBSD. Se você não está em um sistema FreeBSD, essa mudança não afeta você. Isso foi indicado pelo portage informando que a bandeira estava mascarada . Você não precisa mudar nada. Por um breve, e eu quero dizer breve, a explicação da diferença entre o FreeBSD e Linux, veja HTG explica: qual é a diferença entre o Linux e o BSD? .

    
por 24.06.2015 / 05:02