LINUX.ORG.RU

Re: Я установил пакет который притянул 1000, а удалилось 100

 , ,


0

6

Итак ты установил пакет, который по зависимостям притянул 100500 пакетов.
По каким-либо причинам функционал этого установленного пакета тебе не понравился и ты удалил его.
Но вместе с ним удалилось не 100500 пакетов, а всего лишь 100.

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

И что тогда делать:
Естественно заглянуть лог apt`a, здесь вся информация об осуществленных транзакциях. Ну и отсюда как говорится пляшем.

Итак если после установки большой группы пакетов ее необходимо удалить, то можно попробовать использовать такой скрипт:
[ВАЖНО] С учетом, что после нужной транзакции ничего не удалялось, не устанавливалось и не обновлялось.
[ВАЖНО] Воможно здесь ошибка.

tail -n 5 /var/log/apt/history.log | sed -e '1,3d' -e '5d' -e 's/Install://' -e 's/ ([^)]*),*//g' | xargs apt-get -sy purge
[ПРЕДУПРЕЖДЕНИЕ] На реальной машине данный скрипт не проверялся, думаю вполне возможно, что при удалении большого объема пакетов могут возникнуть ошибки, поэтому осторожно идите, здесь острые иглы.

Если часть пакетов уже удалена, то наверное нужно копать где-то в сторону diff.

И да, я не являюсь специалистом по «сумашедшему» sed и регулярным выражениям, поэтому не претендую на оптимальность данного варианта.



Последнее исправление: andregin (всего исправлений: 5)

Тут кто-то писал что aptitude не помечает пакеты как автоматически установленные, не в этом причина?

orm-i-auga ★★★★★
()
Ответ на: комментарий от kas501

В rpm-based такая хрень есть?

У Yum/DNF есть вменяемые инструменты для отката транзакций:

dnf history { list | info | undo } ...

ArcFi
()

Кто сказал Slackware?
Хм, наверное музыкой навеяло...

bormant ★★★★★
()

$ deborphan

$ sudo debfoster

anonymous
()

Я скриншотю что ставлю, потом удалять все ненужное можно по скриншоту

В mageia как то через неделю, после обновлений, удалил больше чем надо

А в общем чаще всего помогает

ikar85
()

Просто удалять надо не

apt-get remove name
apt-get autoremove
а
apt-get autoremove name
Это как раз выяснили в теме, которую вспомнил orm-i-auga

WARNING ★★★★
()

Вот небольшой пример: http://pic4a.ru/iPQs/
Здесь четыре снимка экрана виртуальной машины.

1) левый верхний: apt-get install awesome - предлагает установить 29 пакетов.
2) левый нижний: apt-get purge awesome - удаляет один пакет.
3) правый верхний: apt-get --purge autoremove - вычищает 27 пакетов.
4) правый нижний: оставшийся пакет dbus-x11 - не удаляется, т.к. является предлагаемым для dbus.

andregin
() автор топика
Последнее исправление: andregin (всего исправлений: 1)

Ха, меня обратная ситуация чаще напрягает. Что-то удаляешь и потом autoremove предлагает тебе еще кучу «лишнего». Приходится ручками инсталить обратно, чтоб не предлагало.

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

ну это уже вопросы к сборщикам пакетов/пакетным менеджерам, хотя где есть такое чтоб удалялось абсолютно всё? внимания особого не обращал, pacman вроде всё удаляет, короче надуманная проблема, нет ничего идеального (интересно, как к куче хлама относятся пользователи оффтопика даже с чистилками реестров)

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

Мне это почти никогда не нужно. Зато таких проблем, как у ОПа, нет. У apt же вообще нет флага «установлено с/без recommends», так что подчистить после удаления нормально оно не может.

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

ТС хочет Slackware, но с менеджером пакетов, а это тот же Salix, например

amorpher ★★★★★
()
Ответ на: комментарий от WARNING

это не работает, по крайней мере в восьмом и девятом debian.

andregin
() автор топика
Последнее исправление: andregin (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.