Как желаемое состояние в Диспетчере пакетов Debian определено?

Например, если я выполняю следующую команду dpkg -l ‘*compiz*’ вывод следующие:

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      Architecture Description
+++-==============-============-============-=================================
pi  compiz         1:0.9.12.2+1 all          OpenGL window and compositing man
ii  compiz-core    1:0.9.12.2+1 amd64        OpenGL window and compositing man
un  compiz-core-ab <none>       <none>       (no description available)
[more output deleted]

Вывод является немного загадочным. На askubuntu существует несколько подробных объяснений, которого, пример, тот. Аналогично, man dpkg и man dpkg-query дайте подобные объяснения.

Первый символ в первом поле, ‘p’, в нашем выводе в качестве примера выше, указывает на желаемое состояние пакета. Который является состоянием, что упаковочная система думает, что пакет должен быть в.

Что базовое означает желаемого состояния? Т.е. Почему упаковка, руководящая система имеет идею того, в чем должно быть состояние пакет? Я видел, что интеллектуальная система рекомендовала бы (или требование) пакету быть очищенным, если бы это только когда-либо использовалось в качестве зависимости к уже удаленному родительскому пакету. Однако дело обстоит не так в нашем примере.

В нашем примере пакет ‘compiz’ установлен, однако dpkg полагает, что это должно быть очищено, или по крайней мере что желательно, чтобы пакет был очищен, почему это? Кроме того, как делает эти конкретные полевые работы в целом? Т.е. как система выбирает ‘желаемое состояние’ для пакета и каковы базовые причины этой функциональности?

1
задан 17 August 2017 в 20:21

1 ответ

Я не знаю, использовали ли Вы когда-нибудь инструменты как aptitude или synaptic, еще более низкие уровни управляют как: dpkg, dpkg-purge и т.д.

Используя инструменты как aptitude, Я могу отметить много пакетов для удаления, некоторые для чистки и некоторые другие для установки, снижения, и т.д., затем я могу выполнить единственную команду, чтобы сделать весь необходимый материал для получения то, что я хочу (инициируйте иски на рассмотрении).

Желаемое поле используется для определения то, что должно я делать с пакетом.

Позволяет установке axel:

sudo apt install -y axel

Теперь позволяет, посмотрите его состояние:

$ dpkg -l axel
ii  axel               2.5-2

Я могу отметить его для purge:

$ echo axel purge | sudo dpkg --set-selections

Теперь желаемое действие:

$ dpkg -l axel
pi  axel               2.5-2  

Я мог отметить пакет для "чистки" с помощью других инструментов также:

sudo dpkg-purge axel

Теперь, если я работаю:

sudo aptitude install 

или

sudo apt-get dselect-upgrade

это спрашивает меня это, если я хочу удалить axel или нет...

Куда эти данные прибывают из:

/var/lib/dpkg/status
2
ответ дан 7 December 2019 в 13:31

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

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