В чем разница между 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 Установите 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:

  1. Для установки, удаления или обновления пакета из репозиториев я использую высокоуровневые (apt-get install, apt-get update, apt-get remove), но для установки и обновления из файла пакета я использую низкоуровневые (dpkg -i package_file,).
  2. Для поиска в репозиториях использую высокоуровневый инструмент (apt-cache search search_str)
  3. Для проверки установленных пакетов и файлов использую низкоуровневые (dpkg -l или же -s или же -S для получения дополнительной информации проверьте руководство man dpkg | less)
  4. Для метаданных пакета я использую высокоуровневые, например apt-cache show dpkg.

Я думаю, что самое важное, а также разница заключается в том, что вы должны использовать apt-get инструмент для установки пакетов. (apt или же aptitude тоже хорошо).

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

Вы должны использовать командную строку apt-get или же apt (с 14.04) инструмент для установки пакетов. Эти инструменты используют dpkg для вас и в то же время есть механизм разрешения зависимостей внутри.

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