[SOLVED] Почему emerge неоднозначно трактует зависимости?

Доброго времени суток.

Имеется абсолютно новая (и чистая) gentoo из stage 3. Выполняю emerge gnome, все проходит нормально (ну, почти, один из пакетов встал с повторного emerge, видимо потерялась какая-то зависимость):

pc ~ # emerge -pv gnome

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

Calculating dependencies... done!
[ebuild R ] gnome-base/gnome-2.26.3 USE="cdr cups dvdr ldap -accessibility -esd -mono" 0 kB

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

Казалось бы, все хорошо, все есть, но как всегда есть одно но:

pc ~ # emerge -pve gnome | grep -v "ebuild R"

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

Calculating dependencies ... done!
[ebuild U ] dev-libs/mpfr-2.4.1_p5 [2.4.1_p1] 883 kB
[ebuild N ] x11-base/xorg-drivers-1.6 INPUT_DEVICES="evdev keyboard mouse -acecad -aiptek -citron -elographics -fpit -hyperpen -joystick -mutouch -penmount -synaptics -tslib -virtualbox -vmmouse -void -wacom" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nv nvidia r128 radeon savage sis tdfx trident vesa via vmware -apm -ark -ast -chips -cirrus -dummy -epson -fglrx (-geode) -i128 (-i740) (-impact) (-newport) -radeonhd -rendition -s3 -s3virge -siliconmotion -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx) -tga -tseng -v4l -virtualbox (-voodoo) (-xgi)" 0 kB
[ebuild N ] x11-drivers/nvidia-drivers-185.18.36 USE="acpi gtk (multilib) -custom-cflags" 0 kB
[ebuild N ] media-video/nvidia-settings-180.60 0 kB
[ebuild U ] sys-fs/lvm2-2.02.56-r2 [2.02.51-r1] USE="lvm1 readline static (-clvm) (-cman) (-selinux)" 804 kB
[ebuild U ] app-admin/eselect-1.2.8 [1.2.3] USE="-bash-completion -doc" 151 kB
[ebuild N ] net-libs/libproxy-0.2.3-r2 USE="gnome kde python xulrunner -networkmanager -seamonkey -webkit" 0 kB
[ebuild N ] net-libs/libsoup-gnome-2.26.3-r1 USE="-debug -doc" 0 kB

Total: 553 packages (3 upgrades, 5 new, 545 reinstalls), Size of downloads: 209,019 kB

Почему не встали эти пакеты? Я бы и не заметил эту малость, если бы мне не был нужен один из них! Почему emerge не хочет их доставить и видит только с "пустым деревом"??? Всю голову сломал, помогите!!

USE-флаги не менялись? emerge

USE-флаги не менялись? emerge -pvuDN gnome?

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

USE не менялись, только

USE не менялись, только VIDEO_CARDS (добавлена nvidia)

pc ~ # emerge -pvuDN gnome

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

Calculating dependencies... done!
[ebuild U ] sys-fs/lvm2-2.02.56-r2 [2.02.51-r1] USE="lvm1 readline static (-clvm) (-cman) (-selinux)" 804 kB
[ebuild N ] x11-base/xorg-drivers-1.6 INPUT_DEVICES="evdev keyboard mouse -acecad -aiptek -citron -elographics -fpit -hyperpen -joystick -mutouch -penmount -synaptics -tslib -virtualbox -vmmouse -void -wacom" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nv nvidia r128 radeon savage sis tdfx trident vesa via vmware -apm -ark -ast -chips -cirrus -dummy -epson -fglrx (-geode) -i128 (-i740) (-impact) (-newport) -radeonhd -rendition -s3 -s3virge -siliconmotion -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx) -tga -tseng -v4l -virtualbox (-voodoo) (-xgi)" 0 kB
[ebuild N ] x11-drivers/nvidia-drivers-185.18.36 USE="acpi gtk (multilib) -custom-cflags" 0 kB
[ebuild N ] media-video/nvidia-settings-180.60 0 kB
[ebuild R ] app-editors/nano-2.1.10 USE="ncurses nls spell* unicode -debug -justify -minimal -slang" 1,444 kB
[ebuild U ] app-admin/eselect-1.2.8 [1.2.3] USE="-bash-completion -doc" 151 kB
[ebuild R ] net-misc/openssh-5.2_p1-r3 USE="X* ldap* pam tcpd -X509 -hpn -kerberos -libedit -pkcs11 (-selinux) -skey -smartcard -static" 1,100 kB
[ebuild N ] net-libs/libproxy-0.2.3-r2 USE="gnome kde python xulrunner -networkmanager -seamonkey -webkit" 0 kB
[ebuild N ] net-libs/libsoup-gnome-2.26.3-r1 USE="-debug -doc" 0 kB

Total: 9 packages (2 upgrades, 5 new, 2 reinstalls), Size of downloads: 3,497 kB

Таким способом видит. Но перестает при любых комбинациях флагов без D. Обратился к man'у:

--deep (-D)
This flag forces emerge to consider the entire dependency tree of packages, instead of checking only the immediate dependencies
of the packages. As an example, this catches updates in libraries that are not directly listed in the dependencies of a pack-
age. Also see --with-bdeps for behavior with respect to build time dependencies that are not strictly required.

Однако, так и не понял, почему при использовании emerge gnome у меня не установились по зависимостям новые (!) пакеты. Построил с помощью equery дерево зависимостей и опытным путем установил, что последний, кто видит недостающие пакеты (nvidia-drivers) - emerge xorg-server.

Объясните, пожалуйста, что это за магия? Как правильно следовало бы действовать, чтобы установка gnome вытягивала все необходимые пакеты по зависимостям и почему при простом emerge gnome этого не происходит?

Во-первых, мы видим, что

Во-первых, мы видим, что USE-флаги изменились (см., например, openssh)
Во-вторых, на каких-то пакетах сборка останавливалась.

Учитывая это, я бы без полной истории команд и вообще действий поостерёгся делать выводы.

P.S. VIDEO_CARDS="nvidia" в make.conf оченно помогают в работе с nvidia-drivers.

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Я нашел в чем была проблема -

Я нашел в чем была проблема - не увидил вопль emerge (см. ниже), который все разъясняет (поэтому, тема SOLVED). Однако, что примечательно, USE действительно не менялись:

pc ~ # cat /etc/make.conf
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-O2 -pipe"
CXXFLAGS="-O2 -pipe"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="x86_64-pc-linux-gnu"
# These are the USE flags that were used in addition to what is provided by the
# profile used for building.
USE="mmx sse sse2"

MAKEOPTS="-j5"
GENTOO_MIRRORS="http://mirror.corbina.net/pub/Linux/gentoo"
SYNC="rsync://mirror.corbina.net/gentoo-portage"

VIDEO_CARDS="${VIDEO_CARDS} nvidia"

при -e дерево зависимостей

при -e дерево зависимостей выстраивается с нуля, а в первом варианте, разумеется, смотрится только прямые зависимости.

Да, именно поэтому и возник

Да, именно поэтому и возник этот вопрос: почему, имея чистую систему по прямым зависимостям устанавливаются не все пакеты. Ведь, что примечательно, когда я вводил emerge gnome впервые, то emerge показал, что собирается установить nvidia-drivers и даже скачал его! Однако, не установил, и сейчас видит, что его не хватает только при emerge xorg-server.

Ой, я совсем забыл спросить,

Ой, я совсем забыл спросить, а может такое возникнуть, если во время emerge компьютер случайно перезагрузился (ошибся и ввел не в ту консоль reboot)? Сейчас смотрю emerge.log и вижу несоответствие:

1262544395: >>> emerge (376 of 437) gnome-base/gnome-settings-daemon-2.26.1-r2 to /

Последний успешно собранный пакет - 376, а когда я продолжил сборку, то получил:

1262544869: >>> emerge (1 of 56) dev-libs/totem-pl-parser-2.26.2 to /

Т.е. 437 - 376 - 56 = 5 - как раз те самые 5 пакетов, которые "пропали":

[ebuild N ] x11-base/xorg-drivers-1.6 INPUT_DEVICES="evdev keyboard mouse -acecad -aiptek -citron -elographics -fpit -hyperpen -joystick -mutouch -penmount -synaptics -tslib -virtualbox -vmmouse -void -wacom" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nv nvidia r128 radeon savage sis tdfx trident vesa via vmware -apm -ark -ast -chips -cirrus -dummy -epson -fglrx (-geode) -i128 (-i740) (-impact) (-newport) -radeonhd -rendition -s3 -s3virge -siliconmotion -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx) -tga -tseng -v4l -virtualbox (-voodoo) (-xgi)" 0 kB
[ebuild N ] x11-drivers/nvidia-drivers-185.18.36 USE="acpi gtk (multilib) -custom-cflags" 0 kB
[ebuild N ] media-video/nvidia-settings-180.60 0 kB
[ebuild N ] net-libs/libproxy-0.2.3-r2 USE="gnome kde python xulrunner -networkmanager -seamonkey -webkit" 0 kB
[ebuild N ] net-libs/libsoup-gnome-2.26.3-r1 USE="-debug -doc" 0 kB

Тогда еще более не понятно, почему же emerge не продолжил сборку с того места, где остановился? Как грамотно поступать в такой ситуации (с какими опциями запускать emerge)?

Тема SOLVED. Я сам дурак,

Тема SOLVED. Я сам дурак, пропустил от emerge сообщение:

* One or more packages are either masked or have missing dependencies:
*
* >=x11-base/xorg-drivers-1.6 pulled in by:
* ('installed', '/', 'x11-base/xorg-server-1.6.5-r1', 'nomerge')
*
* ~net-libs/libsoup-gnome-2.26.3 pulled in by:
* ('installed', '/', 'net-libs/libsoup-2.26.3-r3', 'nomerge')

Это именно те самые последствия случайного reboot'а.

Всем спасибо. Извините, что отнял у вас ваше время.

--resume

--resume

man emerge рулит

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

LBertone написал(а): pc ~ #

LBertone написал(а):
pc ~ # emerge -pve gnome | grep -v "ebuild R"

батенька, да вам надо либо учить регулярные выражения, либо освоить eix... )))
как пример вот:

emerge -pve gcc | egrep "\[ebuild\ *R\ *\]"

Чувак, ты нереально крут! Ты

Чувак, ты нереально крут! :-D

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".