Странное поведение portage с autounmask [РЕШЕНО], конфликт флагов
mittorn 4 января, 2014 - 12:59
Бытаюсь установить unbound, который требует нестабильного openssl.
Сначала всё нормально, рсзмаскировал несколько пакетов:
# required by net-dns/unbound-1.4.21 # required by unbound (argument) =net-libs/ldns-1.6.16 ~arm # required by unbound (argument) =net-dns/unbound-1.4.21 ~arm # required by net-dns/unbound-1.4.21 # required by unbound (argument) =net-dns/dnssec-root-20110630 ~arm # required by net-misc/iputils-20121221[ssl,-static,ipv6] # required by @system # required by @world (argument) =dev-libs/openssl-1.0.1e-r2 ~arm
Потребовалось изменение use:
>=dev-libs/openssl-1.0.1e-r2 -bindist
Однако после этих изменений portage снова требует, но уже другую версию:
=dev-libs/openssl-1.0.1e-r1 -bindist
Следующий проход:
=dev-libs/openssl-1.0.1c -bindist
Далее:
=dev-libs/openssl-1.0.1e -bindist
Вот зе?
P.S размаскировка пакетов целиком похоже зациклила portage. Даже при пересборке мира зависимости быстрее считались.
P.P.S
!!! Multiple package instances within a single package slot have been pulled !!! into the dependency graph, resulting in a slot conflict: dev-libs/openssl:0 (dev-libs/openssl-1.0.1e-r1::gentoo, installed) pulled in by >=dev-libs/openssl-0.9.6d:0[bindist=] required by (net-misc/openssh-5.9_p1-r4::gentoo, installed) (dev-libs/openssl-1.0.1e-r2::gentoo, ebuild scheduled for merge) pulled in by >=dev-libs/openssl-1.0.1c[-bindist] required by (net-libs/ldns-1.6.16::gentoo, ebuild scheduled for merge)
Чем его dev-libs/openssl-1.0.1e-r2 не устроил?
evadim правда, с тегами code несколько более читабельно?
Прошу прощения, коды не ввёл т.к на планшете прокрутка тормозила, а сообщение не было видно какое-то время прсле публикации (видимо, включена премодерация).
»
- Для комментирования войдите или зарегистрируйтесь
Не используйте autonmask,
Не используйте autonmask, решайте блокировки сами, с понимаеним отчего появилась блокировка и возможностей её устранения, а для этого нужно использовать ключ '-t' при вызове emerge и смотреть ebuild`ы пакетов, вызвавших блокировку.
Ну и внимательно прочитайте то, что вам пишет emerge:
В общем, здесь говорится, что openssh "хочет", что бы openssl был собран с флагом bindist, т.к. сам openssh, скорее всего собран с этим флагом, а ldns "хочет", что бы openssl бы собран без флага bindist, т.к., скорее всего сам собран без него или выставлена жёсткая зависимость в сборки openssl без флага bindist.
В общем вам нужно пересобрать openssh без флага bindist и openssl установить так же без оного.
Вот и не мог ваш autounmask решить, что нужно сделать, включить флаг или выключить.
Спасибо, разобрался. bindist=
Спасибо, разобрался. bindist= означает, что выбор флага у пакетов должен совпадать. Отключение bindist у openssh решило проблему. Ключ t не помог даже при снятии автоматически собранных масок. А bindist на arm включён по дефолту.
Локальный оверлей растёт
kostik87 написал(а):Ключ t
Когда вам советуют воспользоваться ключом, то вы в начале хотя бы почитайте что этот ключ означает и делает. Я вам посоветовал пользоваться ключом '-t' при разрешении блокировок в ручную, а не пользоваться autounmask. Этот ключ выводит дерево зависимостей, по которому можно отследить какой пакет "тянет" устанавливаемый пакет. Так что прежде чем что-то делать почитайте документацию, в данном случае по emerge:
ну, а что бы понять почему "тянется" пакет нужно смотреть ebuild пакета, который его "тянет", а возможно и ebuild пакета, который "тянет" пакет "тянущий" проблемный пакет.
Ни кто вам не запрещает выключить этот флаг клобально в make.conf. Посмотрите информацию по флагу в /usr/portage/profiles/use*
Если в двух словах, то этот флаг отключает при сборке программы некоторые блоки кода (технологии), которые по каким-либо причинам попадают под лицензионные ограничения, в общем этот флаг можно отключить, что бы не отключать эти технологии, они иногда бывают полезны, например алгоритмы шифрования, кодеки, прочее.
Так что в начале читайте документацию, а потом делайте.