Зависимости пакетов
Гость 24 Августа, 2005 - 14:04
Никогда не напрягался по подобному вопросу, а тут захотелось вдруг основательно прочистить систему. Соответственно хочется удалить ненужные пакеты, и пакеты, от которых зависят удаляемые, но при этом от них больше ничего не зависит.
К примеру, удаляем 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):
Выходит, что метод не намного эффективнее, чем просто вручную удалять пакеты, и смотреть, все ли после этого работает? :(
Видимо,
Видимо, все-таки не то :(. Он хочет удалять все вподряд, к примеру, 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
Можно, для этого как уже говорили существует
Чтобы правильно произвести чистку системы, нужно следующее:
1. Откорректировать world-файл /var/lib/portage/world, в нем не должно быть библиотек и приложений, которые вы не устанавливали целенаправленно.
Это следует пояснить, например имеем кусочек world-файла:
При установке ltsp устанавливается еще tftp. Если вам в работе tftp нужен только для функционирования ltsp, то будет логичным если в будущем при удалении ltsp будут удалены и все его зависимости (tftp в том числе). Тогда нужно удалить строку net-ftp/tftp-hpa. Кроме того нужно удалить строку kde-base/libkdenetwork, потому что это библиотека, а не отдельное приложение.
2. Выполняем команду:
Смотрим устраивают ли нас use-флаги, если нет - исправляем. Изменение use-флагов отображается в виде звездочки '*'.
3. Теперь собственно чистка:
Проверяем, что должно удалиться. Если по вашему мнению в выводе есть лишние пакеты, добавляем их в world.
Затем все еще раз перепроверив и обдумав хорошо запускаем:
И в заключении, хочу сказать, что я не несу ответственности за ваши действия. Тщательно все обдумайте, так чистку делаю я, и могу в чем то ошибаться. Буду рад если мне укажут на мои ошибки и неточности.
ТОже спасибо за
ТОже спасибо за развернутый ответ. Так тоже попробую.
вот захотел
вот захотел удалить иксы за ненадобностью, стоял Хорг и 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
и попробуй еще раз