23.05.2010 Избавление от циклических зависимостей (hal, dbus)

Представим, что вы поставили 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, a hal и dbus вместе хотят xorg. Случаются и другие примеры, например с установкой Slang или обновлением портаже Portage.

Все это, если знать как, лечится на раз-два:

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
Внимание!!! в интернете есть варианты решения использующие опцию emerge --oneshot dbus, использовать с крайней осторожностью и только зная что вы делаете, поскольку в данном случае не будут установлены зависимости и могут выплють в последствии куча глюков, если вы не пересобираете @world.

Спасибо за внимание.

{TAGS}