Зависимости пакетов

Никогда не напрягался по подобному вопросу, а тут захотелось вдруг основательно прочистить систему. Соответственно хочется удалить ненужные пакеты, и пакеты, от которых зависят удаляемые, но при этом от них больше ничего не зависит.
К примеру, удаляем entrance. Смотрим, отчего оно зависит:

emerge entrance -epv
#...много всякого...
[ebuild N ] x11-libs/esmart-0.9.0.002 -doc +nls 360 kB
[ebuild N ] x11-misc/entrance-0.9.0.003 -doc +nls +pam 16,502 kB

Далее делаем:

emerge entrance -C

А вот дальше как узнать, зависит ли что-нибудь, к примеру, от esmart, кроме самого entrance? И далее по списку зависимостей пройти и удалить "осиротевшие пакеты"?

emerge --depclean

emerge --depclean ???

_________________
GNU/Wonderland -- GNU/Страна чудес, страна, в которой вы часто бываете, но, в которую, что примечательно, не надо оформлять визу.

Наверное, то

Наверное, то что надо. Вот только не радует, что (из man'a):

Цитата:
WARNING: Removing some packages may cause packages which link to the removed package to stop working and complain about missing libraries.

Выходит, что метод не намного эффективнее, чем просто вручную удалять пакеты, и смотреть, все ли после этого работает? :(

Видимо,

Видимо, все-таки не то :(. Он хочет удалять все вподряд, к примеру, cvs и mod_php... Я чего-то недопонимаю?

все подряд не

все подряд не надо
это библиотеки е17, если сносишь ее - удаляй следующее

emerge --unmerge -av eet edb evas ecore embryo edje e epeg epsilon esmart entrance emotion eclair ewl engrave e_utils e_modules etox erss entice engage evidence elicit

Спасибо

Спасибо конечно, теперь хоть entrance снесу полностью. Но проблема-то не исчерпывается -- выходит, для подобных случаев нет формального решения?
К тому же я не хочу сносить все библиотеки e17 -- я же не знаю, какие из них используются, к примеру, Eterm'ом. А его я продолжаю использовать. :(

Хочется удалить именно те пакеты, которые больше никем не используются. Неужели это нельзя проконтролировать на уровне portage?

> Хочется

> Хочется удалить именно те пакеты, которые больше никем не используются. Неужели это нельзя проконтролировать на уровне portage?

кроме различных наколеночных наработок (которые можно поискать на http://gentooexperimental.com/) есть утилита equery которая вхотдит ... а куда же она входит ..
base syncro # equery b equery
[ Searching for file(s) equery in *... ]
app-portage/gentoolkit-0.2.1_pre4 (/usr/share/doc/gentoolkit-0.2.1_pre4/equery)
app-portage/gentoolkit-0.2.1_pre4 (/usr/bin/equery)

в гентулкит:) и кроме выяснения какому пакету принадлежит файл, умеет еще много чего, в том числе вычислять какие пакеты зависят от целевого

Большое

Большое спасибо. Вот это -- то, что надо!:) И за линк тоже. Можно отправлять тему в solved. :)

emerge --depclean

Можно, для этого как уже говорили существует

emerge --depclean

Чтобы правильно произвести чистку системы, нужно следующее:
1. Откорректировать world-файл /var/lib/portage/world, в нем не должно быть библиотек и приложений, которые вы не устанавливали целенаправленно.
Это следует пояснить, например имеем кусочек world-файла:

...
net-misc/ltsp
net-ftp/tftp-hpa
kde-base/libkdenetwork
...

При установке ltsp устанавливается еще tftp. Если вам в работе tftp нужен только для функционирования ltsp, то будет логичным если в будущем при удалении ltsp будут удалены и все его зависимости (tftp в том числе). Тогда нужно удалить строку net-ftp/tftp-hpa. Кроме того нужно удалить строку kde-base/libkdenetwork, потому что это библиотека, а не отдельное приложение.

2. Выполняем команду:

# emerge -av --update --deep --newuse world

Смотрим устраивают ли нас use-флаги, если нет - исправляем. Изменение use-флагов отображается в виде звездочки '*'.

3. Теперь собственно чистка:

# emerge -p --depclean

Проверяем, что должно удалиться. Если по вашему мнению в выводе есть лишние пакеты, добавляем их в world.
Затем все еще раз перепроверив и обдумав хорошо запускаем:

# emerge --depclean

И в заключении, хочу сказать, что я не несу ответственности за ваши действия. Тщательно все обдумайте, так чистку делаю я, и могу в чем то ошибаться. Буду рад если мне укажут на мои ошибки и неточности.

ТОже спасибо за

ТОже спасибо за развернутый ответ. Так тоже попробую.

вот захотел

вот захотел удалить иксы за ненадобностью, стоял Хорг и ctwm
все удалил и из /var/lib/.../world тоже
сделал emerge --depclean
но emerge -pvDu world всеравно выдает строки с X11
[ebuild N ] x11-base/opengl-update-2.2.1 0 kB
[ebuild N ] x11-misc/ttmkfdir-3.0.9-r3 0 kB
[ebuild N ] x11-base/xorg-x11-6.8.2-r2 -3dfx +3dnow +bitmap-fonts -cjk -debug -dlloader -dmx -doc -font-server -insecure-drivers -ipv6 -minimal +mmx +nls -nocxx +opengl +pam -sdk -sse -static +truetype-fonts +type1-fonts (-uclibc) -xprint +xv 170 kB
[ebuild N ] x11-terms/xterm-200-r3 -Xaw3d -toolbar +truetype +unicode 0 kB
да ещё и [ebuild N ] kde-base/arts-3.4.1-r2 +alsa +arts -artswrappersuid -debug -esd -hardened -jack -kdeenablefinal +mp3 +vorbis -xinerama 952 kB
при то что KDE и в пониме не было...
в make.conf флаги такие
USE="3dnow 3dnowex 7zip acl apache2 flash imap kerberos mmx nptl nptlonly \
openssh quotas sasl symlink unicode -X -cups -gnome -gtk -gtk2 \
-ipv6 -kde -qt"

Как вариант -

Как вариант - замаскировать.
_________________
Gentoo Linux - "If it moves, compile it!"

Возможно

Включен флаг USE="arts", он тянет kde-base/arts, что в свою очередь тянет X-сы.
Покажите world-файл и вывод emerge info.

с этой

с этой проблемой вроде справился emerge --newuse -D wolrd ни кде ни х11 не появляется
НО появилась 2я очень не приятная
не собирается samba в процессе компиляции остававливается
--------------------------- ACCESS VIOLATION SUMMARY --------------------------
LOG FILE = "/tmp/sandbox-net-fs_-_samba-3.0.14a-r2-26532.log"

access_wr: /etc/krb5.conf
--------------------------------------------------------------------------------
флаги такие
[ebuild U ] net-fs/samba-3.0.14a-r2 [3.0.10] +acl -cups* -doc +kerberos +ldap -libclamav +mysql -oav +pam -postgres +python +quotas +readline (-selinux) -winbind -xml +xml2 0 kB

таже проблема и с mc если ему включить флаг +samba

добавь
FEATURES="-sandbox" в /etc/make.conf
и попробуй еще раз

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

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