В чем разница между dpkg и aptitude/apt-get?
При установке программного обеспечения через dpkg -i packageA.deb
Будут ли зависимости, требуемые packageA
быть загружен и установлен автоматически? Чем это отличается от использования apt-get
или же aptitude
?
3 ответа
Нет, dpkg
только устанавливает пакет, так что делает dpkg -i packageName.deb
установит только этот пакет Deb и уведомит вас о любых зависимостях, которые необходимо установить, но не установит их и не настроит packageName.deb
потому что хорошо... зависимости не существует.
apt-get
система управления пакетами, которая управляет установкой пакетов Deb в дистрибутивах Linux на основе Debian Система управления пакетами - это набор инструментов, которые помогут вам легко устанавливать, удалять и изменять пакеты. Так apt-get
это как умный dpkg
,
Мне нравится думать о графике времени таким образом (ниже я просто говорю из опыта. Он предназначен только для того, чтобы дать вам представление обо всем этом):
Они придумали способ "хранить" файлы приложения в "пакете", чтобы его можно было легко установить. Итак, пакет Deb (
.deb
расширение файла) родился..deb
Файл содержит файлы, необходимые приложению для запуска, а также (я люблю называть это) "метаданные", которые содержат другую информацию, такую как имена зависимостей, в которых нуждается приложение. Если вы хотите увидеть содержимое.deb
файл, вы можете использовать командуdpkg -c packageName.deb
и, если вы хотите увидеть эту информацию "метаданных", используйте командуdpkg -I pacakgeName.deb
(и если вы хотите видеть только зависимости, сделайтеdpkg -I packageName.deb | grep Depends
).Им нужен инструмент для установки этих
.deb
файлы, поэтому они придумалиdpkg
инструмент. Этот инструмент, однако, просто установит.deb
файл, но не будет устанавливать его зависимости, потому что у него нет этих файлов, и у него нет доступа к "хранилищам", из которых можно извлечь зависимости.- Затем они придумали
apt-get
, что автоматизирует задачи в предыдущем пункте. Под капотом,apt-get
в основномdpkg
(Мне нравится думать об этом какapt-get
будучи фронт-эндом дляdpkg
), но умный, который будет искать зависимости и устанавливать их. Он даже просматривает установленные на данный момент зависимости и определяет те, которые не используются никакими другими пакетами, и сообщит вам, что вы можете удалить их.
aptitude
затем пришли вместе. Он использует библиотеки apt-get
использует и фактически имеет интерактивный интерфейс пользователя (пользовательский интерфейс). Если вы хотите увидеть этот интерфейс, просто введите aptitude
в терминале. Это aptitude
, Он использует библиотеки, чтобы предоставить больше возможностей и преимуществ, чем apt-get
, Например, aptitude
автоматически удалит соответствующие пакеты, а apt-get
для этого нужна отдельная команда. Но, в конце концов, делая sudo aptitude install packageName.deb
должно быть как минимум таким же sudo apt-get install packageName.deb
, Там и там могут быть тонкие различия, о которых я не знаю, но они оба будут искать зависимости и делать все эти вещи. Вы можете прочитать ответ здесь для получения дополнительной информации о различиях между aptitude
а также apt-get
,
Также, aptitude
не имеет супер коровы.
РЕДАКТИРОВАТЬ: Видимо, это так.
aptitude -v[v[v[v[v]]]] moo
,
aptitude
может быть не установлен по умолчанию. Чтобы установить его, сделайте sudo apt-get install aptitude
или нажмите это: aptitude ,
дополнительный
Следующая информация на самом деле не дает прямого ответа на вопрос: "В чем разница между dpkg и aptitude / apt-get? ", Но способствует общей картине.
Из комментария Carlos Campderrós ниже:
gdebi
это еще один инструмент, который является своего рода смесью apt-get
а также aptitude
, Когда вы используете его для установки .deb
пакет (gdebi packageName.deb
), он определит отсутствующие зависимости, установит их с помощью apt-get
и, наконец, установите и настройте пакет, используя dpkg
, Он даже имеет простой и удобный графический интерфейс, который дает вам информацию о .deb
пакет, файлы, включенные в пакет, и какие зависимости должны быть установлены. Чтобы увидеть этот графический интерфейс, вы должны сделать gdebi-gtk packageName.deb
, Вы можете дать gdebi
попробуйте установить его с sudo apt-get install gdebi
или нажмите на это: gdebi ,
Я не хочу никого вводить в заблуждение, но просто чтобы дать вам другую часть картины, есть еще один популярный формат пакетов Linux, называемый RPM, и его файлы имеют .rpm
расширение. Этот формат пакета используется в дистрибутивах Linux на основе RPM (таких как Red Hat, CentOS и Fedora). Они используют команду rpm
установить пакет и yum
это интерфейс для него, это умный. Так их .rpm
наши файлы .deb
файлы, их rpm
инструмент наш dpkg
инструмент, и их yum
наше apt-get
,
Из комментария Paddy Landau ниже:
alien
это инструмент, который преобразует между .rpm
а также .deb
пакеты. Так что если вы когда-нибудь попадете в ситуацию, когда у вас есть .rpm
пакет, и вы хотите установить его на вашем Ubuntu (или любом другом дистрибутиве на основе Debian), вы можете использовать команду alien rpm_packageName.rpm
преобразовать его в .deb
, а затем установите его, используя dpkg
, Вы можете сделать обратное (конвертировать .deb
в .rpm
) с помощью alien -r packageName.deb
,
APT-получить
Управление пакетами через apt-get
работает рука об руку с /etc/apt/sources.list
файл.
apt-get install <package_name>
устанавливает новый пакет на ваш компьютер.
apt-get build-dep <package_name>
Эта команда выполняет поиск в репозиториях и устанавливает зависимости для сборки. Если пакет отсутствует в репозиториях, он вернет ошибку.
apt-get install <package1_name> <package2_name> <package3_name>
apt-get позволяет установку нескольких пакетов. разделите пакеты пробелом.
auto-apt run <command_string>
При вызове команда auto-apt автоматически устанавливает пакеты при отсутствии доступа к файлам. Если программа пытается получить доступ к файлу, который, как известно, принадлежит к неустановленному пакету, auto-apt установит этот пакет, используя apt-get
, Эта функция требует apt и sudo для работы.
Посетите страницу инструкций apt-get
уместность
aptitude
обеспечивает функциональность dselect
а также apt-get
а также многие дополнительные функции, которых нет ни в одной программе.
aptitude
имеет собственную оболочку, которая активируется клавиатурой или мышью и работает в окне терминала
aptitude build-dep <package>
- Установите зависимости пакетов от пакетов - это означает, что пакеты необходимы для компиляции (или сборки) пакета с исходным кодом. Например, много пакетов нужно debhelper
или же autotools
чтобы быть построенным, но не нужно, чтобы они бежали.
Посетите страницу инструкции aptitude
Dpkg
это инструмент для установки, сборки, удаления и управления пакетами Debian. ссылка на сайт
dpkg -i <package.deb>
устанавливает пакет Debian на ваш компьютер. Он не устанавливает никаких зависимостей, насколько я могу узнать из файлов справки.
Для деталей типа dpkg --help
в окно терминала.
руководства
руководство по управлению файлами можно найти здесь
Хотя на этот вопрос есть отличные ответы, я хочу сказать кое-что более подробно.
dpkg
(или жеrpm
в семействе Fedora) - это инструмент низкого уровня, который устанавливает и удаляет файлы пакетов, он не устанавливает зависимости и не ищет их в репозиториях.apt
,apt-get
иaptitude
(или жеyum
иdnf
в семье Fedora) являются высокого уровня- или как это упоминалось в первом ответефронтального изdpkg
! - инструменты, которые выполняют поиск метаданных и разрешение зависимостей.
Мне нравится объяснять их различия в задачах управления пакетами в Linux:
- Для установки, удаления или обновления пакета из репозиториев я использую высокоуровневые (
apt-get install
,apt-get update
,apt-get remove
), но для установки и обновления из файла пакета я использую низкоуровневые (dpkg -i package_file
,). - Для поиска в репозиториях использую высокоуровневый инструмент (
apt-cache search search_str
) - Для проверки установленных пакетов и файлов использую низкоуровневые (
dpkg -l
или же-s
или же-S
для получения дополнительной информации проверьте руководствоman dpkg | less
) - Для метаданных пакета я использую высокоуровневые, например
apt-cache show dpkg
.
Я думаю, что самое важное, а также разница заключается в том, что вы должны использовать apt-get
инструмент для установки пакетов. (apt
или же aptitude
тоже хорошо).
Это потому что dpkg
предназначен для установки пакетов без установки зависимых пакетов. Из-за этого просто установка пакета с dpkg
, может привести к более поздней проблеме, когда разрешение зависимостей может привести к поломке системы.
Вы должны использовать командную строку apt-get
или же apt
(с 14.04) инструмент для установки пакетов. Эти инструменты используют dpkg
для вас и в то же время есть механизм разрешения зависимостей внутри.