Например, если я выполняю следующую команду 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
полагает, что это должно быть очищено, или по крайней мере что желательно, чтобы пакет был очищен, почему это? Кроме того, как делает эти конкретные полевые работы в целом? Т.е. как система выбирает ‘желаемое состояние’ для пакета и каковы базовые причины этой функциональности?
Я не знаю, использовали ли Вы когда-нибудь инструменты как 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