Не обновляются некоторые пакеты
josser 20 июня, 2007 - 13:07
Привет народ!
Я тут продолжаю активно изучать портаж и вот с чем столкнулся:
#eix sudo [U] app-admin/sudo Available versions: 1.6.8_p9 1.6.8_p9-r2 ~1.6.8_p11 ~1.6.8_p12 1.6.8_p12-r1 Installed versions: 1.6.8_p9-r2(18:38:02 21.12.2006)(ldap -offensive pam -selinux -skey) ... #emerge --update --deep -pv world ... Calculating world dependencies... done! Total: 0 packages, Size of downloads: 0 kB
И таких штук 7-10..
Пачиму так?
»
- Для комментирования войдите или зарегистрируйтесь
Что выводит
Что выводит команда cat /var/lib/portage/world | grep sudo?
Ээть.. Пока
Ээть.. Пока ждалответа - обновил через: emerge --update sudo и теперь оно в world присутствует. Не знаю було ли оно там раньше.. :(
Но есть несколько пакетов которые я ещё не успел обновить руками.
Вот что есть:
Ну ладно с судо - я им пользуюсь, скорее всего таки в ворде оно было.
А этот пакет? Он никому не нужен. Не обновляется. И не удаляется депклином.. Странный вопщем.
emerge --update world
emerge --update world ищет обновляемые пакеты в /var/lib/portage/world. а указанных пакетов там нет. возможно, указанные вами пакеты изначально мержились с опцией -1 (--oneshot), которая подавляет запись пакета в /var/lib/portage/world. и еще - после обновления дерева портежей надо делать update-eix
А что
А что тогда делать, чтобы обновить ВСЮ систему?
Предлагаю написать скрипт, который сделает find в /var/db/pkg и emerge -uN все что нашел..
find /var/db/pkg/ -maxdepth 2 -mindepth 2
Выдает все установленные пакеты, вот только префикс убрать.. читаю ман
_________________
~? **!
в новых версиях
в новых версиях портажа появилась новая опция для обновления совсем всего, а просто обновление обновляет только то что комунить нужно.
Re: А что
Проще устанавливать то что нужно без --oneshot, а потом пользоваться emerge -uDN world && emerge --depclean
ставить нужно
ставить нужно без -1, а обновлять зависимости - обязательно с -1 иначе расчёт зависимостей будет как зря, много что левого будет
Это
Это так.
Апдейт-еикс делал.
Но тогда не понятно -почему пакет который не в ворлде и не является чьей-то зависимостью не удаляется --depclean'ом?
значит
значит является
Я смотрю
Я смотрю dep'ом..
dep -L XML-Simple:
И ничего не выводит..
dev-perl/XML-Simple:
dev-perl/XML-Simple:
x11-misc/icon-naming-utils-0.8.2 >=dev-perl/XML-Simple-2
может он в систем попал?
Вот на досуге
Сделал скрипт, который 100% обновит ВСЕ, что есть в системе.
_________________
~? **!
gentoo.org
На официальном сайте мне дали внятный ответ.
Пакет не будет обновляться по вызову emerge -uDN world в двух ситуациях:
1. Если он был поставлен с --oneshot, что пресекает запись его в /var/lib/portage/world
2. Если пакет не является прямой завимостью какого-либо пакета в world. Опция --deep считает зависимости, зависимости зависимостей итд до самого дна дерева portage. Но она не учитывает build dependencies - то есть пакеты, которые необходимы для сборки пакетов из world либо их прямых зависимостей. Для того, чтобы обновить такие пакеты, нужно использовать опцию --with-bdeps=y, но вопрос - а нужно ли вообще обновлять эти пакеты, если они не участвуют в работе системы.
Если есть желание обновить ну совсем все (даже то, что с -1 ставилось) - то скрипт, подобный тому, что лежит постом выше, является решением этой задачи.
_________________
~? **!
Ммм.. Мысль
Ммм.. Мысль понятна.
Получается что если этот пакет не учавствует в работе системы - я могу его спокойно удалить..
Зависимости,
Зависимости, которые не нужны никакому пакету с успехом можно удалить используя emerge --depclean
Крайне желательно выполнить revdep-revuild после этой операции.
________________
~? **!