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


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


54
2018-06-06 12:25


Источник




Ответы:


aptitude - это оболочка для dpkg, такая же, как apt-get / apt-cache, но это универсальный инструмент для поиска / установки / удаления / запроса. Несколько примеров, которые apt могут не поставлять:

$ aptitude why libc6
i   w64codecs Depends libc6 (>= 2.3.2)
$ aptitude why-not libc6
Unable to find a reason to remove libc6.

$ aptitude show libc6
Package: libc6
State: installed
Automatically installed: no
Version: 2.9-4ubuntu6
Priority: required
Section: libs
Maintainer: Ubuntu Core developers <ubuntu-devel-discuss@lists.ubuntu.com>
Uncompressed Size: 12.1M
Depends: libgcc1, findutils (>= 4.4.0-2ubuntu2)
Suggests: locales, glibc-doc
Conflicts: libterm-readline-gnu-perl (< 1.15-2), 
tzdata (< 2007k-1), tzdata-etch, nscd (< 2.9)
Replaces: belocs-locales-bin
Provides: glibc-2.9-1
Description: GNU C Library: Shared libraries
 Contains the standard libraries that are used by nearly all programs 
 on the system. This package includes shared versions of the standard 
 C library and the standard math library, as well as many others.

47
2018-06-06 12:34



не говоря уже: $ aptitude changelog bash - pgs


mikeage@linode ~$ aptitude -h | tail -n 1
              This aptitude does not have Super Cow Powers.
mikeage@linode ~$ apt-get -h | tail -n 1
                   This APT has Super Cow Powers.
mikeage@linode ~$ aptitude moo
    There are no Easter Eggs in this program.
mikeage@linode ~$ apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...
mikeage@linode ~$ aptitude -v moo
There really are no Easter Eggs in this program.
mikeage@linode ~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
mikeage@linode ~$ aptitude -vvv moo
Stop it!
mikeage@linode ~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
mikeage@linode ~$ aptitude -vvvvv moo
All right, you win.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
mikeage@linode ~$ aptitude -vvvvvv moo
What is it?  It's an elephant being eaten by a snake, of course. 

44
2018-06-07 18:27





Официальный инструмент, который в настоящее время используется в установщике Debian и рекомендуется в примечаниях к выпуску является aptitude,

Aptitude предлагает интерфейс curses (при запуске без каких-либо параметров) и интерфейс командной строки, который может выполнять почти все, что apt-cache/apt-get делает. Он также имеет улучшенный преобразователь зависимостей, который позволяет просматривать различные решения. Даже при использовании версии командной строки вы можете взаимодействовать с предлагаемым решением и давать дополнительные приказы или подсказки (например, устанавливать или удалять пакет, рекомендованный другим).

Но aptitude основана на библиотеке libapt (это не прямая оболочка dpkg), и поэтому она зависит от apt чтобы вы не могли установить aptitude без apt-get (который также находится в apt-пакете).

$ dpkg --status aptitude| grep Depends
Depends: libapt-pkg-libc6.9-6-4.7, [...]
$ dpkg --status apt|grep Provides
Provides: libapt-pkg-libc6.9-6-4.7
$ dpkg --search /usr/lib/libapt-pkg-libc6.9-6.so.4.7 /usr/bin/apt-get
apt: /usr/lib/libapt-pkg-libc6.9-6.so.4.7
apt: /usr/bin/apt-get

Чтобы узнать больше о взаимодействии apt / dpkg / aptitude, вы можете проверить диаграмма, сделанная Дэниелом Берроузом (главный автор aptitude). На другой диаграмме представлена ​​информация, хранящаяся в различных инструментах управления пакетами: Карта файлов состояний apt и dpkg,

Вы также можете прочитать мою статью apt-get, aptitude, ... выберите подходящего менеджера пакетов для вас


17
2018-06-07 14:19



Отличные ссылки Рафаэль - спасибо! - icyrock.com


aptitude remebers, которые вы намеренно устанавливали и которые автоматически устанавливались для удовлетворения зависимостей. При удалении пакета aptitude удалит эти автоматически установленные пакеты, чтобы ваша система была аккуратной. apt-get не такой умный.

aptitude быстро станет незаменимым инструментом, если вы используете разные репозитории с разными версиями пакета. Представьте, что вы работаете с backports.org или неофициальными репозиториями, такими как debian-multimedia.org. Затем aptitude покажет (внизу страницы деталей определенного пакета) номер доступной версии и позволит вам выбрать ее.

Если вы столкнетесь с ситуацией, когда программы конфликтуют из-за такого использования неофициальных репозиториев, вы увидите надпись «Broken: ...» наверху. Вы можете ввести l ~ b (limit / flag / broken) и просто получить список пакетов, которые конфликтуют друг с другом. Это значительно облегчает разрешение конфликта вручную.

Кроме того, вы можете использовать «l», чтобы ограничить список пакетов. Представьте, что вы ищете пакеты, начинающиеся с «openoffice», затем нажмите «l» и введите «^ openoffice» (это регулярное выражение), и вы увидите только эти пакеты. Выберите «список плоских пакетов» в меню, и вы быстро достигнете своей цели.

Полный справочник очень большой, предлагая вам множество других фильтров и возможностей. Даже если вы не знаете, что aptitude - удобная замена apt-get, и вы можете использовать ее с общими параметрами, такими как

aptitude install ... (установить или обновить пакет) aptitude remove ... (удалите двоичные части пакета, но сохраните конфигурацию / etc) очистка аптитида ... (полностью удалите упаковку, включая вашу конфигурацию)


7
2018-06-07 20:22



Фактически, с Lenny, apt-get также отслеживает пакеты, установленные только как зависимости от того, что вы явно просили. Я сам использую aptitude, но apt-get autoremoveтеперь удаляет пакеты, которые были установлены как зависимости пакета, который был удален. - Telemachus


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

похоже, что последние версии apt-get имеют аналогичную функциональность: http://www.psychocats.net/ubuntu/aptitude


4
2018-06-06 12:35





Помимо предоставления довольно консольного интерфейса, когда вы запускаете aptitude без аргументов, он объединяет различные apt-* команд (и dselect) в одну утилиту.

Чтобы найти пакет и установить его, используя apt-get:

apt-cache search somepkg
apt-get install somepkg

.. но с aptitude это одна и та же команда:

aptitude search somepkg
aptitude install somepkg

aptitude имеет некоторые дополнительные функции, например aptitude changelog somepkg и такие вещи, как удержание пакетов (чтобы остановить их обновление) - ничего не удалось достичь с помощью других команд / методов, это просто более унифицировано и приятно использовать.


4
2018-06-06 15:08



слишком плохо, что у него нет эквивалента «политика кэш-кэша». - hayalci


Самое большое различие заключается в том, что aptitude разработан как интерактивный, где apt-инструменты лучше подходят для работы с скриптами. Вы можете использовать последние, т. Е. Инструменты apt, в интерактивном режиме просто отлично с гораздо большим усилием, чтобы получить те же результаты, что и aptitude. Если вам почему-то нужно было решить только один инструмент или другой, то вам нужно решить, сколько усилий вы хотите внести в управление пакетами.


3
2018-06-06 12:56





Одним из серьезных преимуществ aptitude является его способность вычислять зависимости. Во-первых, он может обрабатывать сложные взаимозависимости без вмешательства самого себя, что часто происходит с ошибкой apt-get. Но если вам не нравится решение, которое оно представило вам (и оно заработает собственное решение, чтобы продемонстрировать, насколько оно хорошо оно себя представляет), вы можете попросить его уйти и придумать другое решение для разрешения конфликта.

Это действительно делает некоторые удивительные управления пакетами.


1
2018-06-06 12:55





Самое большое различие заключается в следующем: введите «aptitude» без каких-либо параметров.

Он дает вам текстовый пользовательский интерфейс, вы можете использовать keybord для поиска / навигации и т. Д. См. Информацию о зависимостях, обратных зависимостях, всех доступных версиях пакета, и вы можете делать с ними любой диспетчер пакетов с этого экрана.

Вы можете нажать «g», чтобы просмотреть изменения, изменить дополнения и удаления пакетов, если это необходимо, и применить все ожидающие операции операции.

Отличный визуальный способ управления пакетами через соединение ssh или простой старый терминал.


1
2018-06-06 13:52