No Gentoo, qual é a diferença entre amd64, ~ amd64 e ~ amd64-linux?

8

Quando executo equery depgraph www-client/chromium-10.0.648.151 , nem todas as dependências estão disponíveis. Alguns shows M[package.mask] , enquanto alguns outros shows [missing keyword] . Meu ACCEPT_KEYWORDS é ~amd64-linux , de acordo com emerge --info . Eu experimentei com diferentes ACCEPT_KEYWORDS (como uma variável ambiental passada para eqeury ), e todos têm diferentes dependências ausentes. Entre todas as combinações possíveis, somente com ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux' todas as dependências podem ser satisfeitas de uma só vez.

Aqui estão minhas perguntas:

  1. O ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux' é uma configuração válida?
  2. Aprendi com a documentação que amd64 significa estável e ~amd64 significa instável. E quanto a ~amd64-linux ?
  3. Se eu selecionar ~amd64 , equery não usaria os pacotes disponíveis apenas para amd64 , resultando em dependências ausentes. Isso é esperado? Em caso afirmativo, os testadores instáveis devem usar pelo menos ACCEPT_KEYWORDS='amd64 ~amd64' em vez de ACCEPT_KEYWORDS='~amd64' ?
  4. A ordem das palavras-chave é importante?

Informações adicionais: Eu instalei o prefixo do Gentoo seguindo este guia . Por padrão, $EPREFIX/etc/make.profile é um link simbólico para $EPREFIX/usr/portage/profiles/prefix/linux/amd64 e contém um make.defaults que tem ACCEPT_KEYWORDS="-amd64 ~amd64-linux" . Nem $EPREFIX/etc/make.conf nem $EPREFIX/etc/make.globals tem ACCEPT_KEYWORDS configurado. De acordo com eselect profile list , nenhum perfil é selecionado.

    
por netvope 21.03.2011 / 05:29

2 respostas

8

1. ACCEPT_KEYWORDS = 'amd64 ~ amd64 ~ amd64-linux' é uma configuração válida?

Do man make.conf:

ACCEPT_KEYWORDS = [space delimited list of KEYWORDS]

Então ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux' é uma combinação válida.

2. E quanto a ~ amd64-linux?

amd64-linux é uma coisa do prefixo. Não sei muito sobre o Prefix, mas posso ver amd64-linux na lista de palavras-chave válidas em /usr/portage/profiles/arch.list , na seção denominada "Palavras-chave de prefixo". ~amd64-linux é apenas a contraparte de teste de amd64-linux .

3. ACCEPT_KEYWORDS='amd64 ~amd64' vs apenas ~amd64

Se você tiver ~amd64 em seu ACCEPT_KEYWORDS , o portage usará todos os ebuilds mais recentes, que geralmente contêm muitas coisas instáveis. Eu acho que é por isso que faltam dependências são esperadas. Por exemplo, isso pode acontecer se você quiser instalar software-a , e o mais recente na ramificação de teste é software-a-2.3.4 , que requer library-b-5.6.7 , que ainda não tem um ebuild. Em relação a amd64 ~amd64 e apenas ~amd64 , eles são os mesmos, na verdade, porque se sua arquitetura for amd64, você terá amd64 em ACCEPT_KEYWORDS , não importa o quê.

4. A ordem das palavras-chave é importante?

Não, porque é apenas uma questão de saber se a variável ACCEPT_KEYWORDS contém uma determinada palavra-chave ou não. É como um set (desordenado).

Depois de usar o Gentoo por um tempo, ainda não tenho o desafio de colocar ~amd64 no meu ACCEPT_KEYWORDS . É tão instável que, na verdade, não é recomendado, configurá-lo pela primeira vez garante muitas quebras.

    
por 21.03.2011 / 06:41
3

A variável de ambiente ACCEPT_KEYWORDS é para permitir que "todos" pacotes / versões estáveis ainda não marcados para a arquitetura atual sejam construídos.

O ~ na frente de um arco significa instável (não "completamente" testado).

A melhor abordagem é usar /etc/portage/package.keywords e listar o pacote lá com a palavra-chave ~ amd64 se você realmente precisar da compilação mais recente.

A propósito: firewall amd64, não é assim que a wikipedia define um exagero?

  1. Sim
  2. Nunca ouvi falar de "~ amd64-linux", mas o ~ significa "instável".
  3. Não, não é esperado que "~ amd64" exclua "amd64".
  4. Não.
por 21.03.2011 / 10:25