В чем разница между 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 для вас и в то же время есть механизм разрешения зависимостей внутри.