apt-get purge <packages> работает отлично, aptitude все еще имеет <пакеты>, помеченные как установленные, и переустанавливает их

Я создал Rubygem, чтобы помочь с удалением старых ядер, которые накопились в течение многих лет, и есть место на диске. (У моего ноутбука было только 19 ядер, и на маленьком SSD …)

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

Проблема возникает, когда некоторые пользователи используют aptitude для других вещей. Сценарий:

  1. Пользователь использует мой драгоценный камень, который успешно apt-get purge пакеты ядра.
  2. Пользователь запускает aptitude в интерактивном режиме по любой причине,
  3. Пользователь сразу же нажимает клавишу «g» (Download / Install / Remove Pkgs) без каких-либо изменений, ->
  4. aptitude повторно загружает и переустанавливает пакеты, которые apt-get удалил.

В настоящее время камень использует apt-get purge <packages> для очистки пакетов ядра. ( См. Здесь .) Я также пробовал с dpkg --purge <packages> , но результат тот же, aptitude все еще хочет переустановить их.

Я прочитал все руководство по навыкам и искал много вещей, никаких кубиков.

Возможно, я мог бы программно управлять списком упакованных / немаркированных пакетов aptitude если бы мог найти, где это (хотя я бы предпочел более чистое решение.) Я предполагаю, что это не /var/lib/dpkg/status иначе не было бы никакого различия ?

dpkg-query показывает status пакета как « Not а desired состояние – « Unknown .

 deKernel$ dpkg-query -l linux-image-3.2.0-39-generic Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==========================================-==========================================-==================================================================================================== un linux-image-3.2.0-39-generic <none> (no description available) deKernel$ 

Можно пойти в aptitude и вручную отменить эти пакеты ядра, и проблема исчезнет, ​​однако это явно непрактично.

One Solution collect form web for “apt-get purge <packages> работает отлично, aptitude все еще имеет <пакеты>, помеченные как установленные, и переустанавливает их”

aptitude имеет собственную базу данных состояния пакета /var/lib/aptitude/pkgstates , которая, к сожалению, кажется довольно недокументированной. Он хранит такой блок для каждого пакета:

 Package: bash Architecture: amd64 Unseen: no State: 1 Dselect-State: 1 Remove-Reason: 0 

Я считаю, что состояние 1 означает installed , состояние белого 3 not installed . У меня также есть несколько пакетов с состоянием 4 в моей системе, но я не могу понять, что это значит.

Я считаю, что ваша проблема /var/lib/aptitude/pkgstates с несогласованностью базы данных dpkg /var/lib/dpkg/status и базы данных aptitude /var/lib/aptitude/pkgstates . Согласно этому сообщению pkgstates должен отражать «предполагаемое» состояние пользователя для пакета [s] », поэтому aptitude, вероятно, считает, что пользователь хочет, чтобы эти пакеты были установлены, хотя apt-get только что удалил их.

Кажется, что лучшим решением для вашей проблемы является то, что предлагает тройка: используйте aptitude если она установлена, а если нет, вернитесь к apt-get .

  • Не удается установить rsync (невозможно создать ... Ошибка ввода / вывода)
  • Какой пользователь устанавливает пакет .deb?
  • Описание списка пакетов
  • Есть ли способ перечислить количество файлов при использовании dpkg -L для отображения файлов пакета?
  • dpkg или apt-get, который из двух дает более полный результат?
  • Как возможно, что dpkg не требуется для установки пакетов deb?
  • Почему apt-get отказывается устанавливать cdefs.h (помимо символической ссылки)?
  • Как узнать пакеты зависимостей для установленного пакета?
  • Проблемы с изменением зависимостей для растягивания: невозможно открыть * .dpkg-new
  • dpkg заменяет файлы в файловой системе FAT
  • Элементарные Os. Nvidia и apt-get перестали работать после обновления Windows 8.1 (двойная загрузка)
  • Interesting Posts

    Показать веб-страницу, после подключения к открытой точке доступа Wi-Fi

    Как удалить строку из файла, когда строка содержит определенную строку?

    Keepalived – возможно ли изменить каталог файла журнала?

    Удаленная SSH-команда выходит из строя только в сценарии оболочки с ошибкой: «Нет такого файла или каталога»

    Как выполнить резервное копирование и сравнить разрешения файлов?

    Как узнать, какой открытый ключ использовался, когда кто-то использовал пароль без пароля ssh?

    Как установить размер окна и местоположение приложения на экране с помощью командной строки?

    Возможно ли получить сообщение об ошибке из предыдущей команды, которая не удалась при выполнении условной команды с использованием ||

    Как префикс выходных данных командной строки с фиксированной строкой?

    Нужна помощь Установка Macpup на старый MacBook 4.1. Где я иду Неправильно?

    Могу ли я получить вчерашнюю статистику с помощью команды sar, но я установил sar сейчас

    Ошибочное объяснение виртуальной памяти в TLDP

    POSIX гарантирует, что стандартные утилиты находятся в PATH?

    Есть ли дистрибутив Linux, который не установлен, но работает из браузера?

    Как удалить определенные символы (но не все) перед одним или несколькими символами?

    Linux и Unix - лучшая ОС в мире.