Циклические зависимости в gentoo

Есть один замечательный мануал для gentoo именно оттуда я почерпнул для себя интересный способ сортировки USE флагов. Но разговор пойдет о другом…

Ну к примеру распаковали вы stage-3 поставили поставили USE флаги по мануалу

#-----------------------------
XUSE="truetype X new-login xorg xscreensaver xv xcomposite xinerama opengl aiglx"
IMAGEUSE="jpeg gif tiff png svg pdf"
MEDIAUSE="alsa mad vidix asf win32codecs dvd mp4 aac x264 xvid nsplugin mp3 real gstreamer"
GENERAL="samba java bzip2 symlink sqlite spell xml"
SYSTEM="hal fam dbus aoss threads"
NOTUSE="-arts -qt4 -ipv6"
KDEUSE="-kde -qt3"
GNOMEUSE="gtk cairo glitz gnome firefox"

USE="${NOTUSE} ${SYSTEM} ${GENERAL} ${IMAGEUSE} ${XUSE} ${KDEUSE} ${MEDIAUSE} ${GNOMEUSE}"
#------------------------------

…и вы сразу же гарантированно получите циклическую зависимость. Потому как dbus зависит от hal. xorg тоже захочет hal. А hal и dbus в свою очередь зависят от xorg.

Если вы все поняли то лечатся подобные ситуации банально - для рассмотренного случая например так меняем строку:

XUSE="truetype -X new-login xorg xscreensaver xv xcomposite xinerama opengl aiglx"

а так же

SYSTEM="-hal fam -dbus aoss threads"

После чего делаем

emerge hal;
emerge dbus;

Меняем обратно строчки

XUSE="truetype X new-login xorg xscreensaver xv xcomposite xinerama opengl aiglx"
SYSTEM="hal fam dbus aoss threads"

Пересобираем систему

emerge -uDNv @world

Пересборка мира подтянет xorg, который соберется уже с hal и dbus

Comments