Мой вопрос прост - я хочу узнать больше о dpkg - что он делает?
Как уже было сказано, dpkg
- это низкоуровневый системный инструмент для извлечения, анализа, распаковки и установки или удаления файлов .deb. Однако лучше использовать Software Centre
или Gdebi
для установки или удаления файлов .deb, полученных из других источников, поскольку эти две программы имеют разрешение зависимостей.
Однако, что не было объяснено, это анатомия обновления с использованием dpkg
и apt-get
. Если, например, мы вызываем apt-get
для установки cheese
, дерево зависимостей анализируется и необходимые файлы выбираются apt-get
, который затем передает их в dpkg
для извлечения, анализа и установки в правильные места и настройте их в соответствии со сценариями внутри них.
Сценарии, прочитанные dpkg
внутри каждого файла .deb, важны, так как они предоставляют программе информацию об установке, удалении и настройке пакетов. Следовательно, когда вы смотрите в /var/log/dpkg.log
, есть много подробных подробностей о «триггерах» и пакетах, проходящих различные этапы распаковки и конфигурации. В своем блоге Рафаэль Херцог (который является ключевым разработчиком Debian и сопровождающим пакета dpkg
) объясняет больше о триггерах dpkg и о том, как dpkg
проверяет и конфигурирует пакеты.
Теперь мы переходим к сути того, что dpkg
делает; он мастерски обрабатывает пакеты Debian, а не их зависимости. Например, с помощью dpkg-deb
вы можете выполнять различные действия при анализе и извлечении файлов из архивов .deb вручную; см. man dpkg-deb
для получения дополнительной информации.
Статус каждого пакета указан в /var/lib/dpkg/status
, который можно использовать с grep
для проверки конкретного пакета. Dpkg
также может вызываться для переконфигурирования определенных пакетов, которые были сконфигурированы (см. man dpkg-reconfigure
):
sudo dpkg-reconfigure <package>
Или для конфигурирования всех ненастроенных пакетов, если возникла проблема с обновлением и Конфигурация некоторых пакетов все еще находится на рассмотрении:
sudo dpkg --configure -a
Для большого учебника, который фокусируется на dpkg
и apt-get
, смотрите главы 5 и 6 Справочник Debian , который лучшее обсуждение доступно. Введите man dpkg
в своем терминале или просмотрите справочные страницы Ubuntu онлайн, чтобы увидеть все многие доступные опции, например, использовать dpkg -l
для просмотра списка установленных пакетов.
Как всегда, команда man
- отличное место для старта.
man dpkg
могут предоставить вам все варианты:
dpkg - менеджер пакетов для систем на основе Debian. Он может устанавливать, удалять и создавать пакеты, но, в отличие от других систем управления пакетами, он не может автоматически загружать и устанавливать пакеты и их зависимости.
Так что в основном это apt-get без разрешения зависимостей, и он используется для установки файлов .deb.
Я предупреждаю вас: удаление пакетов с использованием dpkg в большинстве случаев НЕ рекомендуется. Лучше использовать менеджер пакетов, который обрабатывает зависимости, чтобы гарантировать, что система находится в согласованном состоянии.
Например, используя dpkg -r zip
, вы можете удалить пакет zip, но все пакеты, которые зависят от него, все равно будут установлены и могут перестать работать правильно.
Подробнее об этом можно прочитать в руководстве по серверу и в другом месте .
dpkg - это способ командной строки для установки из .deb или удаления уже установленных пакетов. Например, если в вашем домашнем каталоге был файл .deb, запуск dpkg -i yourpackage.deb
установит этот пакет для вас. Я нахожу это полезным по крайней мере для меня, потому что иногда, нажимая на файл .deb, он загружает Ubuntu Software Center, но никогда не устанавливает его и не сталкивается с проблемами.