Разница между `dpkg -i` и` apt-get install`

16

Из всех других вопросов и ответов (таких как: В чем разница между dpkg и aptitude / apt-get? ) Я понимаю, что apt-getэто оболочка dpkgи обеспечивает управление зависимостями.

Предполагая, что я устанавливаю что-то, что не имеет каких-либо зависимостей (или они также установлены одновременно), будет ли разница между установкой с использованием apt-getvsdpkg

Например (я ищу конкретные различия)

  • скажем dpkgне могу скачать pkg откуда-то, я должен скачать перед началом установки, тогда как apt-getсделаю это от моего имени.
  • dpkgне будет настраивать pkg, он будет только копировать файлы. apt-getнастрою тоже.

...

Kashyap
источник

Ответы:

16

dpkg -iустанавливает *.debпакеты, то есть пакеты, которые вы уже скачали откуда-то. Он также настраивает их, но не загружает / устанавливает зависимости. Вам необходимо скачать откуда-нибудь двоичные файлы пакета вручную. Также могут быть опасности при загрузке пакетов из мест, которые не являются репозиториями, которые ваш дистрибутив включил / включил по умолчанию, поскольку сторонние пакеты могут быть вредоносными по своей природе.


apt-get/aptitude install автоматически получает доступ к репозиториям и индексам PPA, которые вы включили, ищет лучшего кандидата, загружает его и все его зависимости, а также устанавливает и настраивает их автоматически.

Используя apt-get install -f, вы можете автоматически устанавливать недостающие зависимости пакетов, например, через dpkg -i.

Byte Commander
источник
5
Краткое замечание, apt-getможно установить зависимости от пакетов, установленных с dpkg -i. Беги, apt-get install -fчтобы достичь этого.
noirscape
1
@ Ev1l0rd Правильно, я добавил это к своему ответу.
Byte Commander
2
Другое важное различие, а также случай использования apt-getили aptitude, заключается в том, что они помнят, был ли пакет установлен вручную (специально запрошен) или был ли он установлен для выполнения зависимости. Таким образом, когда вы позже удаляете пакет, они могут автоматически удалять (или, по крайней мере, сообщать вам) о пакетах, которые были «автоматически установлены и больше не требуются». Если вы установили каждый пакет вместе с ним, dpkgвам нужно будет запомнить и вручную удалить не только ваш пакет, но и все его зависимости (при условии, что от них больше ничего не зависит).
Бенджамин Статон
1
@BenjaminStaton Ну, так как dpkg -iне заботится о зависимостях, все, что установлено с ним, конечно, устанавливается "вручную".
Byte Commander