LINUX.ORG.RU

apt-get autoremove не хочет удалять некоторые пакеты

 , ,


0

0

Есть такие пакеты:

[~]::> grep -A2 xserver-xorg-video /var/lib/apt/extended_states
Package: xserver-xorg-video-mach64
Architecture: amd64
Auto-Installed: 1
--
Package: xserver-xorg-video-r128
Architecture: amd64
Auto-Installed: 1
Метапакет xserver-xorg-video-ati, который их вытянул, уже удалён, но apt-get autoremove считает, что ничего лишнего нет :(

Как быть?

но apt-get autoremove считает, что ничего лишнего нет

Везёт тебе, у меня после обновления (Дебиан до 6.05) моими кривыми руками autoremove считает что надо удалить KDE вообще.

moved ()

aptitude why xserver-xorg-video-mach64 и т.д. Скорее всего что-то его рекомендует, а важность рекомендуемых пакетов ты не отключал.

Deleted ()
Ответ на: комментарий от Deleted
[~]::> aptitude why xserver-xorg-video-r128
i   xorg                    Depends  xserver-xorg (>= 1:7.7+1)
i A xserver-xorg            Depends  xserver-xorg-video-all | xorg-driver-video
i A xserver-xorg-video-r128 Provides xorg-driver-video

Похоже, тут иначе быть и не может, поскольку apt не знает, какие из предоставляющих xorg-driver-video пакетов можно удалить, хотя есть и два установленных вручную. Скорее всего это корректное поведение %) Aptitude их удалить тоже не предлагает.

важность рекомендуемых пакетов

Это отключено :)

Homura_Akemi ()
Ответ на: комментарий от Homura_Akemi

Включая «APT::AutoRemove::Recommends-Important «0»;»?

>Depends xserver-xorg-video-all | xorg-driver-video
xorg-driver-video это виртуальный пакет. Если ты поставишь любой другой из тех, что его предоставляют, то xserver-xorg-video-r128 сможешь удалить.

Deleted ()
Ответ на: комментарий от Deleted

Включая «APT::AutoRemove::Recommends-Important «0»;»?

Разумеется. И suggests-important.

Если ты поставишь любой другой из тех, что его предоставляют, то xserver-xorg-video-r128 сможешь удалить.

Я-то могу, но мне кажется, что apt должен предлагать это автоматически в такой вот ситуации:

[~]::> aptitude search ~Dprovides:xorg-driver-video~i
i A xserver-xorg-video-mach64       - X.Org X server -- ATI Mach64 display drive
i   xserver-xorg-video-nouveau      - X.Org X server -- Nouveau display driver
i A xserver-xorg-video-r128         - X.Org X server -- ATI r128 display driver
i   xserver-xorg-video-radeon       - X.Org X server -- AMD/ATI Radeon display d
:)

Либо это ошибка, либо так задумано.

Homura_Akemi ()
Ответ на: комментарий от Homura_Akemi

Так откуда ему знать какой из них тебе нужен, а какой нет? А если на каждую такую предлагать… может ты сознательно несколько пакетов поставил таких, замучает же до смерти вопросами со временем :)

Deleted ()
Ответ на: комментарий от Deleted

Так откуда ему знать какой из них тебе нужен, а какой нет?

По наличию флажка «A», отсутствию пакета в списке зависимостей других установленных пакетов и при наличии явно установленных, которые предоставляют тот же виртуальный пакет -_-

Ну да чёрт с ними, просто буду учитывать этот нюанс.

Homura_Akemi ()
Ответ на: комментарий от Homura_Akemi

Дано у тебя, скажем, 5 пакетов, предоставляющих X, установленных автоматически.

Внимание, вопрос: что удалит менеджер пакетов?

Вопрос №2: как много виртуальных пакетов в системе и как часто будут задаваться эти вопросы? :)

Пусть лучше не умничает, так спокойнее…

Deleted ()
Ответ на: комментарий от Deleted

Дано у тебя, скажем, 5 пакетов, предоставляющих X, установленных автоматически.

Внимание, вопрос: что удалит менеджер пакетов?

Ничего, ведь условие «при наличии явно (вручную) установленных, которые предоставляют тот же виртуальный пакет» не выполнено :)

Вопрос №2: как много виртуальных пакетов в системе и как часто будут задаваться эти вопросы? :)

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

Homura_Akemi ()
Ответ на: комментарий от Homura_Akemi

>ведь условие «при наличии явно (вручную) установленных, которые предоставляют тот же виртуальный пакет» не выполнено
Т.е. мне теперь вручную отмечать все пакеты, которые ставятся автоматически, но мне нужны даже если я установлю подобный вручную? Например, www-browser. Эээ… жуть какая (^ ^)'

>просто удалять их как обычные осиротевшие зависимости
Так они не осиротели :}

Deleted ()
Ответ на: комментарий от Deleted

Т.е. мне теперь вручную отмечать все пакеты, которые ставятся автоматически, но мне нужны даже если я установлю подобный вручную? Например, www-browser. Эээ… жуть какая (^ ^)'

Ладно, проехали. Раньше у меня просто никак руки не доходили разобраться, почему apt себя так ведёт.

Так они не осиротели :}

okay.jpg

Homura_Akemi ()
Ответ на: комментарий от gwinn

На самом деле™ это происходит если не делать всегда autoremove во время. Т.к. со временем может оказаться, что вручную не установлено и ничто от него не зависит. Либо пользоваться aptitude, которая всегда делает autoremove, так что не забудешь :}

Deleted ()
Ответ на: комментарий от Deleted

Ах, да. apt-mark manual / aptitude unmarkauto в зубы и вперёд, к звёздам. Желательно просто на кдешные метапакеты, если они установлены. Чтобы не отмечать всё руками.

Deleted ()
Ответ на: комментарий от Homura_Akemi

Я как-то тоже озадачивался этой проблемой. В результате написал скрипт, находящий такие «лишние» пакеты. Ссылка на архив: http://files.mail.ru/9EDTVE.

Скрипт принимает параметры. Подробнее — в справке по аргументу -h или --help. Рекомендую опцию -V. -r и -R служат для форсирования соответствующего поведения, если, например, автоопределение сработало некорректно, и, скорее всего, вам не понадобятся.

В вывод могут попасть некоторые мета-пакеты, так что не стоит слепо доверять результату. Если не знаете, можно ли удалять тот или иной пакет, — не удаляйте.

Из-за использования aptitude (отказаться от которой полностью не удалось) работает скрипт довольно медленно. Настраивайтесь на полчаса.

Если в процессе работы будут ошибки, пишите на адрес, указанный в заголовке файла.

anonymous ()
Ответ на: комментарий от anonymous

Спасибо, полезная вещь. Результат выполнения:

liblapack3gf (because liblapack3 is installed)
libblas3gf (because libblas3 is installed)
Это «переходные» пакеты, с ними ясно.
libgl1-mesa-glx (because libgl1-mesa-glx:i386 is installed)
Вот это немного странно, но ничего страшного.
xterm (because roxterm-gtk2, xfce4-terminal are installed)
А это пример того, чего мне хотелось :)

Homura_Akemi ()
Ответ на: комментарий от Homura_Akemi

Вот это немного странно, но ничего страшного.

Это потому, что multiarch ещё до меня не добрался. Разберусь, как только доберусь до машины с его поддержкой.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.