Для чего нужен dpkg?

Мой вопрос прост - я хочу узнать больше о dpkg - что он делает?

21
задан 9 August 2012 в 05:39

3 ответа

Как уже было сказано, 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 для просмотра списка установленных пакетов.

0
ответ дан 9 August 2012 в 05:39

Как всегда, команда man - отличное место для старта.
man dpkg могут предоставить вам все варианты:

dpkg - менеджер пакетов для систем на основе Debian. Он может устанавливать, удалять и создавать пакеты, но, в отличие от других систем управления пакетами, он не может автоматически загружать и устанавливать пакеты и их зависимости.

Так что в основном это apt-get без разрешения зависимостей, и он используется для установки файлов .deb.

Я предупреждаю вас: удаление пакетов с использованием dpkg в большинстве случаев НЕ рекомендуется. Лучше использовать менеджер пакетов, который обрабатывает зависимости, чтобы гарантировать, что система находится в согласованном состоянии.

Например, используя dpkg -r zip, вы можете удалить пакет zip, но все пакеты, которые зависят от него, все равно будут установлены и могут перестать работать правильно.

Подробнее об этом можно прочитать в руководстве по серверу и в другом месте .

0
ответ дан 9 August 2012 в 05:39

dpkg - это способ командной строки для установки из .deb или удаления уже установленных пакетов. Например, если в вашем домашнем каталоге был файл .deb, запуск dpkg -i yourpackage.deb установит этот пакет для вас. Я нахожу это полезным по крайней мере для меня, потому что иногда, нажимая на файл .deb, он загружает Ubuntu Software Center, но никогда не устанавливает его и не сталкивается с проблемами.

0
ответ дан 9 August 2012 в 05:39

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

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