Вопрос В чем разница между dpkg и aptitude / apt-get?


При установке программного обеспечения через dpkg -i packageA.deb, будут ли зависимости, требуемые packageA загружаться и устанавливаться автоматически? Как это отличается от использования apt-get или aptitude?


116
2018-06-17 07:08


происхождения


Связанные (особенно в отношении зависимостей): askubuntu.com/q/40779/250300 - Melebius


ответы:


Нет, dpkg только устанавливает пакет, так что dpkg -i packageName.deb будет устанавливать этот пакет Deb только и будет уведомлять вас о любых зависимостях, которые необходимо установить, но это будет не установите их, и это будет не настроить packageName.deb потому что хорошо ... зависимостей там нет.

apt-get это Система управления пакетами который обрабатывает установку пакетов Deb на Debian-дистрибутивы Linux, Система управления пакетами - это набор инструментов, которые помогут вам легко установить, удалить и изменить пакеты. Так apt-get как умный dpkg,

Мне нравится думать о временной шкале таким образом (вот только я говорю из опыта. Это означает только дать вам представление обо всем этом):

  • Они придумали способ «хранить» файлы приложения в «пакете», чтобы его можно было легко установить. Итак, пакет Deb (.deb файл расширения) родился.

    .deb файл содержит файлы, необходимые для запуска приложения, а также (Я хотел бы назвать это) «метаданные», содержащие другую информацию, такую ​​как имена зависимостей, которые требуют приложения. Если вы хотите увидеть содержимое .deb файла, вы можете использовать команду dpkg -c packageName.deb, и если вы хотите увидеть эту информацию «метаданные», используйте команду dpkg -I pacakgeName.deb (и если вы хотите видеть только зависимости, do 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 не обладает сверхспособностями коров.

EDIT: По-видимому, это так. aptitude -v[v[v[v[v]]]] moo,

aptitude возможно, не будет установлен по умолчанию. Чтобы установить его, выполните sudo apt-get install aptitude или нажмите здесь: уместность Install aptitude,


дополнительный

Следующая информация на самом деле не отвечает напрямую "В чем разница между dpkg и aptitude / apt-get?«но это способствует большой картине.


Из Карлос Кэмпэррос' комментарий ниже:

gdebi является еще одним инструментом, который является разновидностью смеси между apt-get а также aptitude, Когда вы используете его для установки .deb пакет (gdebi packageName.deb), он будет идентифицировать недостающие зависимости, установить их, используя apt-get, а затем, наконец, установите и настройте пакет, используя dpkg, Он даже имеет простой и аккуратный графический интерфейс, который дает вам информацию о .deb пакет, файлы, входящие в пакет, и какие зависимости необходимо установить. Чтобы увидеть этот GUI, вы бы сделали gdebi-gtk packageName.deb, Вы можете дать gdebi попробуйте установить его с помощью sudo apt-get install gdebi или нажмите здесь: Gdebi Install gdebi,


Я не хочу никого путать, но для того, чтобы дать вам еще одну часть изображения, есть еще один популярный пакет Linux, называемый RPM, и его файлы имеют .rpm расширение. Этот формат пакета используется для RPM основе Распределения Linux (например, Red Hat, CentOS и Fedora). Они используют команду rpm установить пакет и yum это интерфейс для него, он умный. Поэтому их .rpm файлы являются нашими .deb файлы, их rpm инструмент - наш dpkg инструмента и их yum наше apt-get,

Из Падди Ландау«s комментарий ниже:

alien это инструмент, который преобразует .rpm а также .deb пакеты. Поэтому, если вы когда-нибудь попадаете в ситуацию, когда у вас есть .rpm пакет, и вы хотите установить его на свой Ubuntu (или любой другой дистрибутив на основе Debian), вы можете использовать команду alien rpm_packageName.rpm преобразовать его в .deb, а затем установите его, используя dpkg, Вы можете сделать обратный (конвертировать .deb в .rpm) с помощью alien -r packageName.deb,


156
2018-06-17 07:30



Это было очень полезно и именно то, что я искал. Tx! - Aniket Thakur
Кроме того, вы можете использовать gdebi (apt-get install gdebi-core), который смешивает apt-get/aptitude с dpkg, Вы называете это gdebi some_package.deb и он будет анализировать свои зависимости, называть apt-get для установки отсутствующих и когда все зависимости выполнены, тогда позвоните dpkg чтобы окончательно установить ваш пакет. - Carlos Campderrós
@ CarlosCampderrós, я добавил gdebi в моем ответе. - Alaa Ali
@Alaa Under дополнительный, вы также можете упомянуть, что alien конвертирует пакеты между .rpm а также .deb, Это полезно для пакетов, доступных для RPM, но не для DEB (или наоборот). Например, alien packagename.rpm чтобы использовать его для Ubuntu. - Paddy Landau
@AlaaAli aptitude не является интерфейсом для apt-get, Обе программы являются libapt-pkg библиотека. - Eliah Kagan


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 в окно терминала.

руководства

можно найти руководство по управлению файлами Вот


5
2018-06-17 07:29





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

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

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


0
2017-08-16 19:24