Как установить статус выбора пакета на текущий статус?
Я сделал dpkg --clear-selections Команда и обнаружил, что все мои пакеты выбраны для удаления. Как говорится на страницах руководства
--clear-selections: установить запрашиваемое состояние каждого несущественного пакета для удаления.
и позже я знал, если я сделаю sudo apt-get dselect-upgrade все пакеты будут удалены.
Я проверил этот вопрос в Ask Ubuntu и прочитал значение каждого из флагов в dpkg -l команда. Там написано: "Первый столбец показывает" желаемое состояние пакета "или состояние выбора, а второй столбец показывает" текущее состояние ".
Поскольку у меня нет проблем с зависимостями, я хочу установить состояние выбора в качестве желаемого состояния в базе данных dpkg. Как я могу это сделать?
Я не дал вывод dpkg -l из-за большого объема производства. На выходе все ri колонны.
Также, когда я сделал команду sudo apt-get dselect-upgrade, это дало мне это сообщение,
......... После длинного списка имен пакетов, которые будут удалены... ВНИМАНИЕ: Следующие необходимые пакеты будут удалены. Это НЕ должно быть сделано, если вы точно не знаете, что делаете! apt ubuntu-keyring (из-за apt) libapt-pkg4.12 (из-за apt) libstdC++6 (из-за apt) gnupg (из-за apt) bash-файлов bash 4 обновлены, 0 вновь установлены, 1764 для удаления и 1 не обновлены. Нужно получить 0 B/1359 кБ архивов. После этой операции будет освобождено 3078 МБ дискового пространства. Вы собираетесь сделать что-то потенциально опасное. Для продолжения введите фразу "Да, делай, как я говорю!"?]
Есть ли способ сбросить состояние выбора пакетов в текущее установленное состояние?
2 ответа
Попробуйте эту команду, чтобы изменить статус пакета -
echo "<package-name> <status>" | sudo dpkg --set-selections
Скажем, вы установили статус пакета zip в deinstall, Откат к исходному состоянию install запустить эту команду
echo "zip install" | sudo dpkg --set-selections
Чтобы изменить больше пакетов одновременно, используйте эту команду
dpkg --get-selections | sed -n 's/\<<current-status>$/<status>/p' | sudo dpkg --set-selections
например, чтобы изменить все пакеты со статусом deinstall для установки use -
dpkg --get-selections | sed -n 's/\<deinstall$/install/p' | sudo dpkg --set-selections
Хорошо, мне просто нужно было сделать это. Спасибо @sarowar за команду. Шаги, чтобы сделать скрипт для всех установленных пакетов:
export IFS='
'
for i in $(dpkg -l |egrep '^[a-z]i.*' |awk '{print $2" install"}') ; do echo $i|dpkg --set-selections ; done
unset IFS