Что такое dpkg?

18

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

задан Ten-Coin 08.08.2012 в 17:31
источник

3 ответа

15

Как уже было сказано, 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 Handbook , который является лучшим обсуждением. Введите man dpkg в свой терминал или просмотрите man-файлы Ubuntu в Интернете, чтобы увидеть все множество доступных параметров, например, с помощью dpkg -l для отображения установленных пакетов.     

ответ дан user76204 19.08.2012 в 02:09
источник
4

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

    
ответ дан unknownone 09.08.2012 в 20:49
4

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

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

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

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

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

Вы можете прочитать еще об этом в сервере , а в других местах     

ответ дан LnxSlck 08.08.2012 в 17:54