Рейтинг:4

Почему установленные пакеты имеют статус «Удалить»?

флаг cn

Выполняя другие задачи по техническому обслуживанию, я заметил, что дпкг -л перечислено около 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 имя-пакета также хорошо, но это сделает больше, чем минимальное изменение в системе, чтобы решить проблему.

Terrance avatar
флаг id
Я не уверен на 100%, но мне кажется, что пакеты, помеченные `ri`, могли зависеть от другого пакета, который был удален, но они не были удалены, как, возможно, переключатель `--autoremove` для `apt ` не использовался. Но я не рекомендую использовать `--autoremove`, так как вы можете удалить другие необходимые пакеты. Я бы хотел, чтобы эта часть управления пакетами была идеальной, но это не так. Я случайно убил системы, потому что приложение установило для них автоматическое удаление.
флаг cn
Это было хорошее предложение, но это не было причиной. Я добавил информацию о том, что ни `dist-upgrade`, ни `autoremove` ничего не делают с этими пакетами.
Terrance avatar
флаг id
Хмммм, да, извините, у меня закончились предложения по этому поводу. +1 и, надеюсь, кто-то еще наткнулся на это. Запуск `dpkg -l | grep -w "ri"` ничего не дает в моей системе, но `dpkg -l | grep -w "rc"` делает, но это для конфигурации и совершенно другого сценария. Надеюсь, вы найдете ответ!
Terrance avatar
флаг id
Я немного глубже изучил вашу ситуацию, и хотя я действительно не нахожу внятных ответов о том, что на самом деле вызывает это, возможно, некоторые подсказки, которые можно исправить, можно найти в https://askubuntu.com/posts/1352232. /edit, https://askubuntu.com/a/165961/231142 и https://askubuntu.com/a/166254/231142
флаг cn
@Terrance: кажется, что пакеты с пометкой `ri` соответствуют этому списку: `dpkg --get-selections | awk '$2 == "удалить" {print $1}'`. Итак, вопрос в том, какой процесс может случайно пометить `deinstall` для `dselect`, когда я ни для чего не использую `dselect`?
Terrance avatar
флаг id
Ой, я только что понял, что в моем комментарии выше первая ссылка - это та, которая была в моем буфере. Виноват. Посмотрим, смогу ли я найти там правильную ссылку. В нем была достойная информация.
Terrance avatar
флаг id
К сожалению, я не знаю, что именно вызывает это. Я думаю, вы можете просмотреть журналы в `/var/log/dpkg.log` или, может быть, что-то вроде `journalctl -xe`. Я действительно хотел бы, чтобы у меня была такая же проблема, так как это действительно помогло бы иметь вторую пару глаз. Еще одна ссылка, которую я нашел, заключалась в том, что команда --clear-selections запускалась и вызывала нечто подобное. Трудно сказать, было ли это запущено. https://askubuntu.com/questions/687272/revert-accidental-dpkg-clear-selections?rq=1
флаг cn
Да, я тоже читал о `dpkg --clear-selections`, но я определенно не запускал его. И *я не буду запускать его после прочтения того, что он делает*. Я также обнаружил, что `deinstall` исторически используется для сигнала `dpkg` с помощью `dselect`, что пакет должен быть удален. Тем не менее, я только что проверил, и у меня даже не установлен `dselect`, поэтому он не должен устанавливать неправильные флаги. Действительно очень интересная проблема. В настоящее время я предполагаю, что пакет VirtualBox выполнил несколько неправильных команд, потому что в обеих этих системах установлен VirtualBox, и эта проблема в целом кажется довольно редкой.
флаг cn
Я также проверил `journalctl`, и он не упоминает проблемный пакет за последние 1,5 года, которые у меня есть в журналах. Система была установлена ​​примерно 11 месяцев назад, поэтому ошибка, должно быть, произошла в то время или по какой-то другой причине она вообще не регистрируется в `journalctl`.
Рейтинг:2
флаг de

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

пролог

на старой машине Ubuntu у меня есть один пакет со статусом ри, который libllvm5.0 (и куча других нормальных II-пакеты, такие как libllvm4.0 и libllvm6.0). пакеты <= libllvm5.0 отмечены как установленные вручную, но libllvm6.0 помечен как автоматически устанавливаемый.
поэтому я предполагаю, что это была зависимость, и эфир стал устаревшим при обновлении или удалении зависимого пакета.

объяснение

просматривая ваши аргументы/условия один за другим:

  • я использую только --no-install-рекомендует:
    Ну, нужные зависимости все же установлены, иначе программа бы не работала.
  • автоматическое удаление ничего не делает с этими пакетами:
    ну, типа... я почти уверен, что все ри-пакеты, оставленные в покое автоматическое удаление отмечены как вручную установлен, хотя вы никогда не устанавливали его "отдельно". это связано с тем, что после первоначальной установки очень немногие (если вообще есть?) пакеты помечаются как автоматически устанавливаемые из-за того, что на самом деле невозможно определить, какие пакеты ты был бы установлен намеренно, потому что это будет варьироваться от пользователя к пользователю. (так что... своего рода "вы вручную установили свою ОС".)
  • мог sudo apt dist-upgrade причина этого?:
    нет и да... sudo apt dist-upgrade сам по себе не вызывает этого, но при обновлении всей системы гораздо более вероятно, что куча (изначально установленных) пакетов устареет.

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

флаг cn
Это звучит разумно. Все пакеты со статусом «ri» также имеют статус «Автоматически установлено: нет» при запросе с помощью «aptitude show packagename». Однако я ожидаю, что *все* установленные вручную пакеты всегда будут оставаться в статусе `ii`, а не помечаться для удаления со статусом `ri`.

Ответить или комментировать

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