Можно ли отдельно удалить ранее установленные пакеты с помощью метапакета?

Мне не нужна утилита помощи, средство просмотра документов, приложение контактов и т. Д., Которые Gnome встроил в оболочку gnome.

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

Я чувствую, что это должно быть возможно, и что я что-то упускаю.

3 ответа

Удаление пакетов, извлеченных мета-пакетом, всегда сложно, если не невозможно. Однако, так как вы отчаянно хотите удалить их, даже используя ручное угадывание, я могу предложить хорошую альтернативу.

Установленные, обновленные или удаленные пакеты входят в систему /var/log/apt/history.log файл. Относительно проще просто скопировать имена пакетов из соответствующего раздела и вручную удалить их.

Вот пример раздела из файла

Start-Date: 2016-12-12  19:15:40
Commandline: aptdaemon role='role-commit-packages' sender=':1.293'
Install: libva-tpi1:amd64 (1.7.1-2~gd~x), intel-gpu-tools:amd64 (1.15-1intel1), libva-egl1:amd64 (1.7.1-2~gd~x), vainfo:amd64 (1.7.1-2~gd~x), libva-glx1:amd64 (1.7.1-2~gd~x)
Upgrade: libgles2-mesa:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libdrm-nouveau2:amd64 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm-nouveau2:i386 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libegl1-mesa-dev:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgles1-mesa:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libglapi-mesa:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libglapi-mesa:i386 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), mesa-common-dev:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libxatracker2:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libegl1-mesa-drivers:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libegl1-mesa:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgbm1:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libdrm-amdgpu1:amd64 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm-amdgpu1:i386 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libwayland-egl1-mesa:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgles2-mesa-dev:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libdrm2:amd64 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm2:i386 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libgl1-mesa-dev:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgl1-mesa-dri:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgl1-mesa-dri:i386 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libosmesa6:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libosmesa6:i386 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgl1-mesa-glx:amd64 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libgl1-mesa-glx:i386 (13.1~git1611130730.151aec~gd~x, 13.1~git1612120730.609216~gd~x), libdrm-intel1:amd64 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm-intel1:i386 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm-radeon1:amd64 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm-radeon1:i386 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x), libdrm-dev:amd64 (2.4.73+git1611221830.1924b6~gd~x, 2.4.74+git1612060630.082579~gd~x)
End-Date: 2016-12-12  19:16:59

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

Надеюсь, это поможет, по крайней мере, немного.

Обновить

Я написал скрипт на Ruby, чтобы увидеть, как пакеты устанавливаются с помощью команды, чтобы их можно было удалить позже. Но следует соблюдать осторожность, потому что некоторые установленные вами пакеты могут также зависеть. Это все еще не закончено, и я хочу расширить это. В любом случае, проверьте это здесь https://github.com/AnwarShah/apt-remove-meta

  1. Загрузите почтовый файл или клонируйте репо
  2. cd в каталог и
  3. Бежать ruby search-apt-log.rb, Он попросит поисковый термин, дай его. Тогда он даст вам историю всех подходящих событий, связанных с этим термином. Затем вы можете увидеть, какие пакеты установлены и удалить их, скопировав имена.

Я видел, что установочный размер / пространство, которое будет освобождено для этих пакетов при вызове apt-get было несколько МБ, так что я укусил пулю и позволил apt-get сделать свое дело, и все было в порядке.

Так что, если кто-то еще не уверен в необходимости удаления пакета, просто убедитесь, что размер установки / удаления соответствует размеру пакета, и все должно быть в порядке. Если он показывает несколько сотен МБ, не нажимайте Y

Некоторое время назад я написал сценарий sh, который я назвал apt-holepunch, который выполняет это ( http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg900702/apt-holepunch). Предупреждение: этот скрипт чрезвычайно опасен.

Полный контекст здесь: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=625801

Оказывается, что да, есть веские причины не желать устанавливать все пакеты из метапакета, но оставить метапакет установленным, чтобы установить будущие добавленные пакеты. Так или иначе, команда разработчиков не понимает этого.

Другие вопросы по тегам