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

9

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 outros mostram [missing keyword]. Meu ACCEPT_KEYWORDSé ~amd64-linux, de acordo com emerge --info. Eu experimentei 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 ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'todas as dependências podem ser satisfeitas ao mesmo tempo.

Aqui estão as minhas perguntas:

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

Informações adicionais: Instalei o Gentoo Prefix seguindo este guia . Por padrão, $EPREFIX/etc/make.profileé um link simbólico para $EPREFIX/usr/portage/profiles/prefix/linux/amd64e contém um make.defaultsque possui ACCEPT_KEYWORDS="-amd64 ~amd64-linux". Nem $EPREFIX/etc/make.confnem $EPREFIX/etc/make.globalstenha ACCEPT_KEYWORDSconfigurado. De acordo com eselect profile list, nenhum perfil é selecionado.

netvope
fonte

Respostas:

8

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

Do man make.conf:

ACCEPT_KEYWORDS = [lista delimitada por espaço de KEYWORDS]

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

2. E o ~ amd64-linux?

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

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

Se você tem ~amd64em seu ACCEPT_KEYWORDS, portage vai usar todas as últimas ebuilds, que muitas vezes contém um monte de coisas instáveis. Eu acho que é por isso que as dependências ausentes são esperadas. Por exemplo, isso pode acontecer se você deseja instalar software-a, e o mais recente na ramificação de teste é o software-a-2.3.4que requer library-b-5.6.7, que ainda não tem um ebuild. Com relação amd64 ~amd64e apenas ~amd64, eles são o mesmo, realmente, porque se sua arquitetura é amd64 você terá amd64em ACCEPT_KEYWORDS, não importa o quê.

4. A ordem das palavras-chave é importante?

Não, porque é apenas uma questão de saber se sua ACCEPT_KEYWORDSvariável contém uma determinada palavra-chave ou não. É como um conjunto (não ordenado).

Tendo usado o Gentoo por um tempo, ainda não tenho coragem de colocar o ~amd64meu ACCEPT_KEYWORDS. É tão instável que realmente não é recomendado, configurá-lo pela primeira vez garante muita quebra.

phunehehe
fonte
obrigado pela explicação muito clara. no meu caso, eu ainda precisava inserir o ~ amd64 para obter as informações mais recentes xtables-addons. mas desde a minha caixa de Gentoo serve como um firewall puro, eu não estou realmente em causa a estabilidade de outros pacotes :)
pepoluan
2
@pepoluan Se ~amd64é apenas para ter xtables-addons, você deve colocá-lo /etc/portage/package.keywordsou em /etc/portage/package.accept_keywordsvez de usar o ramo de testes instáveis. Para mais informações, consulte man portageou pergunte aqui em uma pergunta diferente.
phunehehe
. Puxa, você está certo> <... Peço desculpas, parece que minha n00bness brilha através de: P ... de qualquer maneira, eu não sou o cartaz original, apenas um comentarista rebelde :)
pepoluan
@pepoluan Fico feliz por ter ajudado. Todo mundo é um noob em algum ponto :)
phunehehe
Obrigado pela sua resposta detalhada. Não entendo o motivo, mas a palavra-chave padrão é ~amd64-linux(com a amd64remoção explícita). Até agora ele está correndo bem =)
netvope
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 abordagem geralmente melhor é usar o /etc/portage/package.keywords e listar o pacote com a palavra-chave ~ amd64, se você realmente precisar da versão mais recente.

A propósito: firewall amd64, não é assim que a wikipedia define 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.
MattBianco
fonte