В Gentoo, в чем разница между amd64, ~ amd64 и ~ amd64-linux?

9

Когда я запускаю equery depgraph www-client/chromium-10.0.648.151, не все зависимости доступны. Некоторые показывают M[package.mask], в то время как другие показывают [missing keyword]. Мое ACCEPT_KEYWORDSэто ~amd64-linux, по мнению emerge --info. Я экспериментировал с разными ACCEPT_KEYWORDS(как переменная окружения передана eqeury), и у всех были разные недостающие зависимости. Из всех возможных комбинаций ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'могут быть удовлетворены только все зависимости.

Вот мои вопросы:

  1. Является ли ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'конфигурация допустимой?
  2. Из документации я узнал, что amd64означает стабильный и ~amd64означает нестабильный. Как насчет ~amd64-linux?
  3. Если я выберу ~amd64, equeryне будет использовать пакеты, доступные только для amd64, в результате чего отсутствуют зависимости. Это ожидается? Если да, то должны ли нестабильные тестеры использовать хотя бы ACCEPT_KEYWORDS='amd64 ~amd64'вместо ACCEPT_KEYWORDS='~amd64'?
  4. Имеет ли значение порядок ключевых слов?

Дополнительная информация: Я установил Gentoo Prefix, следуя этому руководству . По умолчанию, $EPREFIX/etc/make.profileявляется символической ссылкой $EPREFIX/usr/portage/profiles/prefix/linux/amd64и содержит , make.defaultsчто есть ACCEPT_KEYWORDS="-amd64 ~amd64-linux". Ни , $EPREFIX/etc/make.confни $EPREFIX/etc/make.globalsне ACCEPT_KEYWORDSнастроен. Согласно eselect profile list, профиль не выбран.

netvope
источник

Ответы:

8

1. Является ли ACCEPT_KEYWORDS = 'amd64 ~ amd64 ~ amd64-linux' допустимой конфигурацией?

От man make.conf:

ACCEPT_KEYWORDS = [разделенный пробелами список KEYWORDS]

Так ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'что это действительная комбинация.

2. Как насчет ~ amd64-linux?

amd64-linuxэто префикс вещь. Я не знаю много о Префиксе, но я могу видеть amd64-linuxв списке допустимых ключевых слов /usr/portage/profiles/arch.listв разделе «Ключевые слова префикса». ~amd64-linuxэто просто аналог тестирования amd64-linux.

3. ACCEPT_KEYWORDS='amd64 ~amd64'просто~amd64

Если у вас есть ~amd64в вашем ACCEPT_KEYWORDS, волок будет использовать все новейшие сборочные, которые часто содержат много неустойчивого материала. Я думаю, именно поэтому следует ожидать недостающие зависимости. Например, это может произойти, если вы хотите установить software-a, и последняя из веток тестирования - это то software-a-2.3.4, что требует library-b-5.6.7, у которого еще нет ebuild. Что касается amd64 ~amd64и просто ~amd64, они одни и те же, на самом деле, потому что , если ваша архитектура amd64 вы будете иметь amd64в ACCEPT_KEYWORDS, независимо от того , что.

4. Имеет ли значение порядок ключевых слов?

Нет, потому что вопрос только в том, ACCEPT_KEYWORDSсодержит ли ваша переменная определенное ключевое слово или нет. Это как набор (неупорядоченный).

Пользуясь Gentoo какое-то время, я все еще не осмелился вставить ~amd64свой ACCEPT_KEYWORDS. Он настолько нестабилен, что на самом деле не рекомендуется, его установка в первый раз гарантирует много поломок.

phunehehe
источник
спасибо за очень четкое объяснение. в моем случае мне все равно пришлось вставить ~ amd64, чтобы получить последнюю версию xtables-addons. но так как мой Gentoo box служит чистым брандмауэром, я не очень беспокоюсь о стабильности других пакетов :)
pepoluan
2
@pepoluan Если ~amd64это просто так, xtables-addonsвы должны вставить его /etc/portage/package.keywordsили /etc/portage/package.accept_keywordsвместо использования ветки нестабильного тестирования. Для получения дополнительной информации обратитесь man portageили задайте здесь другой вопрос.
phunehehe
Черт возьми, ты прав>. <... Я прошу прощения, кажется, что мой n00bness просвечивает: P ... в любом случае, я не оригинальный плакат, просто своенравный комментатор :)
pepoluan
@pepoluan Рад, что я помог. В какой-то момент все являются
нубами
Спасибо за ваш подробный ответ. Я не понимаю, почему, но ключевое слово по умолчанию ~amd64-linuxamd64явно удаленным). Пока все работает хорошо =)
netvope
3

Переменная среды ACCEPT_KEYWORDS предназначена для создания «всех» еще не отмеченных стабильных пакетов / версий для текущей архитектуры.

~ Перед аркой означает нестабильный (не "полностью" проверенный).

Часто лучшим подходом является использование /etc/portage/package.keywords и перечисление пакета там с ключевым словом ~ amd64, если вам действительно нужна последняя сборка.

Кстати: брандмауэр amd64, разве википедия не определяет избыточность?

  1. да
  2. Никогда не слышал о ~ amd64-linux, но ~ означает "нестабильный".
  3. Нет, не ожидается, что «~ amd64» исключает «amd64».
  4. Нет.
MattBianco
источник