Выполняя другие задачи по техническому обслуживанию, я заметил, что дпкг -л
перечислено около 90 пакетов со статусом ри
вместо ожидаемого II
.
Я поддерживаю пакеты исключительно с подходящий
и способность
и я не навязывал никаких пакетов, но я делаю это регулярно apt install --no-install-recommends...
чтобы избежать получения ненужных пакетов. Я также стараюсь тщательно поддерживать флаги «автоматически установлены», и у меня 2914 пакетов со статусом «автоматически установлены» (поиск способностей '~i~M'
) и 422 пакета со статусом "установлено вручную" (поиск способностей '~i!~M'
).
По какой причине пакеты могут иметь статус Удалять
+ Инст
(ри
) в дпкг -л
список, когда я не просил удалить эти пакеты? Казалось, что пакеты с таким статусом — это пакеты, которые я действительно хочу сохранить в системе. Может, например. sudo apt dist-upgrade
причиной этого без моего ведома?
(Я знаю, что могу переустановить эти пакеты с apt install --reinstall имя-пакета
чтобы вернуть статус II
. Я также часто очищаю удаленные пакеты и поиск по способностям '~c'
не содержит пакетов.)
Дополнительные сведения из другой системы с той же проблемой:
$ sudo apt dist-upgrade && sudo apt autoremove && dpkg -l | grep ^ri | туалет -л
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Расчет обновления... Готово
Следующие пакеты были сохранены:
виртуальный бокс-6.0
0 обновлено, 0 установлено заново, 0 удалено и 1 не обновлено.
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
0 обновлено, 0 установлено заново, 0 удалено и 3 не обновлено.
171
Так dist-обновление
ни автоматическое удаление
не трогайте пакеты 171 с ри
положение дел.
Пример пакета с ри
положение дел:
$ dpkg -l ca-сертификаты-java
Желаемый=Неизвестно/Установить/Удалить/Очистить/Удерживать
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(нет)/Reinst-required (Статус,Err: верхний регистр=плохой)
||/ Имя Версия Архитектура Описание
+++-============================================= =-============================-=================== =========-======================================== ================================================== =========
ri ca-certificates-java 20160321ubuntu1 все сертификаты Common CA (хранилище ключей JKS)
и дополнительная информация для того же пакета:
$ aptitude показать ca-сертификаты-java
Пакет: ca-сертификаты-java
Состояние: установлено
Автоматически устанавливается: нет
Мультиархив: зарубежный
Версия: ...
$ aptitude, почему ca-сертификаты-java
i default-jre-безголовый Зависит от openjdk-8-jre-безголовый
iBA openjdk-8-jre-headless Зависит от ca-certificates-java
$ apt-mark демонстрация
виртуальный бокс-6.0
Дополнительная информация после прочтения о возможных причинах:
Как объяснено в ответе https://askubuntu.com/a/802612/50254 статус этих пакетов можно исправить, чтобы они соответствовали текущим установленным пакетам, запустив (обратите внимание, что перевод строки после ИФС
это не опечатка, но эта команда требует установки ИФС
на одиночный перевод строки):
экспорт IFS='
'
for i in $(dpkg -l |egrep '^[a-z]i.*' |awk '{print $2" install"}') ; выполнить эхо $i|dpkg --set-selections ; сделано
отключить IFS
Причина/причина этой проблемы до сих пор неизвестна. ри
статус должен означать, что двыбрать
(старый менеджер пакетов Debian в настоящее время полностью заменен на подходящий
) используется для пометки пакета для удаления из системы, и если вы действительно хотите применить эти состояния выбора, вы можете запустить apt-получить dselect-обновление
. Видеть мужчина дпкг
и раздел "ИНФОРМАЦИЯ О ПАКЕТАХ" для получения дополнительной информации.
apt install --reinstall имя-пакета
также хорошо, но это сделает больше, чем минимальное изменение в системе, чтобы решить проблему.