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

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

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 список текущих установленных пакетов.

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

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

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

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

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

Вы можете прочитать об этом больше в руководстве по серверу и в других местах.

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

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