Как установить статус выбора пакета на текущий статус?

Я сделал команду dpkg --clear-selections и обнаружил, что все мои пакеты выбраны для удаления. Как написано в , на страницах руководства написано

- clear-selection: установить запрашиваемое состояние каждого несущественного пакета для удаления.

, и я позже узнал: если я сделаю sudo apt-get dselect-upgrade, все пакеты будут удалены.

Я проверил этот вопрос в Ask Ubuntu и прочитал значение каждого из флагов в команде dpkg -l. Там написано: «Первый столбец показывает« желаемое состояние пакета »или состояние выбора, а второй столбец показывает« текущее состояние ».

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

Я не дал вывод dpkg -l из-за большого выхода. Выходными данными являются все ri столбцы.

Также, когда я выполнил команду sudo apt-get dselect-upgrade, она выдала мне это сообщение,

......... After a long list of package names to be removed...
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt ubuntu-keyring (due to apt) libapt-pkg4.12 (due to apt) libstdc++6 (due
  to apt) gnupg (due to apt) base-files bash
4 upgraded, 0 newly installed, 1764 to remove and 1 not upgraded.
Need to get 0 B/1,359 kB of archives.
After this operation, 3,078 MB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
 ?] 

Можно ли каким-либо образом сбросить состояние выбора пакетов до текущего установленного состояния?

4
задан 13 April 2017 в 15:24

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 на установить использование -

dpkg --get-selections | sed -n 's/\<deinstall$/install/p' | sudo dpkg --set-selections
0
ответ дан 13 April 2017 в 15:24

Хорошо, мне просто нужно было это сделать. Спасибо @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
0
ответ дан 13 April 2017 в 15:24

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

Похожие вопросы: