Мой вопрос прост - я хочу узнать больше о dpkg - что он делает?
Мой вопрос прост - я хочу узнать больше о dpkg - что он делает?
Ответы:
Как уже было сказано, dpkg
это низкоуровневый системный инструмент для извлечения, анализа, распаковки и установки или удаления файлов .deb. Однако лучше использовать Software Centre
или Gdebi
устанавливать или удалять файлы .deb, полученные из других источников, поскольку эти две программы имеют разрешение зависимостей.
Однако, что не было объяснено, это анатомия обновления с использованием dpkg
и apt-get
. Если, например, мы вызываем apt-get
установку cheese
, дерево зависимостей анализируется, и необходимые файлы выбираются apt-get
, а затем передает их dpkg
для извлечения, анализа и установки в правильные места и их настройки в соответствии со скриптами внутри них.
Сценарии, считываемые dpkg
внутри каждого файла .deb, важны, поскольку они дают программе информацию об установке, удалении и настройке пакетов. Следовательно, когда вы заглядываете /var/log/dpkg.log
внутрь, появляется много подробных сведений о «триггерах» и пакетах, проходящих различные этапы распаковки и настройки. В своем блоге Рафаэль Херцог (который является ключевым разработчиком и сопровождающим dpkg
пакета Debian ) объясняет больше о триггерах 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 Handbook , который является лучшим обсуждением доступно. Войдите man dpkg
в свой терминал или просмотрите онлайн- страницы Ubuntu, чтобы увидеть все доступные варианты, такие как использование dpkg -l
списка текущих установленных пакетов.
dpkg - это способ установки из .deb из командной строки или удаления уже установленных пакетов. Например, если у вас есть файл .deb в вашем домашнем каталоге, запуск dpkg -i yourpackage.deb
установит этот пакет для вас. Я нахожу это полезным по крайней мере для меня, потому что иногда, нажимая на файл .deb, он загружает Ubuntu Software Center, но никогда не устанавливает его и не сталкивается с проблемами.
Как всегда, man
команда - отличное место для старта.
man dpkg
тем не менее, может дать вам все варианты:
dpkg - менеджер пакетов для систем на основе Debian. Он может устанавливать, удалять и создавать пакеты, но, в отличие от других систем управления пакетами, он не может автоматически загружать и устанавливать пакеты и их зависимости.
Так что в основном это apt-get без разрешения зависимостей, и он используется для установки файлов .deb.
Я предупреждаю вас: удаление пакетов с использованием dpkg в большинстве случаев НЕ рекомендуется. Лучше использовать менеджер пакетов, который обрабатывает зависимости, чтобы гарантировать, что система находится в согласованном состоянии.
Например, используя dpkg -r zip
вы можете удалить пакет zip, но все пакеты, которые зависят от него, все равно будут установлены и могут перестать работать правильно.
Вы можете прочитать об этом больше в руководстве по серверу и в других местах .