Відповіді:
aptitude - це обгортка для dpkg так само, як apt-get / apt-cache, але це єдиний інструмент для пошуку / встановлення / видалення / запитів. Кілька прикладів, які може не надати:
$ 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.
aptitude
знають, що навіть новітні apt
не можуть зробити: aptitude search '~i linux'
пошук встановлених пакетів з linux
назвою чи описом; aptitude search '~o'
перелічує застарілі пакети (встановлені пакети, які більше не надаються жодним сховищем); aptitude search '!~M ~i'
показує пакети, які не позначені автоматично встановленими; aptitude search '~i lib.*-dev'
шоу встановлені бібліотеки розвитку , і ви можете замінити search
з markauto
або unmarkauto
позначити ці пакети , як автоматично або вручну встановити.
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.
Офіційним інструментом, який зараз використовується в інсталяторі Debian та рекомендований у примітках до випуску, є aptitude
.
Схильність пропонує інтерфейс прокляття (при запуску без параметрів) і інтерфейс командного рядка , яка може робити майже все , що apt-cache
/ apt-get
робить. Він також має кращий дозвіл на залежність, що дозволяє переглядати між різними рішеннями. Навіть використовуючи версію командного рядка, ви можете взаємодіяти із запропонованим рішенням та давати додаткові накази чи підказки (наприклад, встановити чи видалити пакет, який рекомендується іншим).
Але здатність базується на бібліотеці libapt (це не пряма обгортка dpkg), і як така вона залежить від apt
пакету, тому ви не можете встановити здатність без 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 / здатності, ви можете перевірити схему, зроблену Деніелом Берроусом (головним автором програми). Ще одна діаграма представляє інформацію, що зберігається різними інструментами управління пакетами: Карта файлів станів apt і dpkg .
Ви також можете прочитати мою статтю apt-get, здатність,… вибрати правильний менеджер пакунків для вас
aptitude
пам'ятає, які пакунки ви навмисно встановили та які були автоматично встановлені для задоволення залежностей. Після видалення пакету здатність видалити ці автоматично встановлені пакети, щоб зберегти вашу систему в порядку. apt-get
не така розумна.
aptitude
швидко стане незамінним інструментом після використання різних сховищ з різними версіями пакета. Уявіть, що ви працюєте з backports.org або неофіційними сховищами на зразок debian-multimedia.org . Потім aptitude
відобразиться (внизу сторінки деталей певного пакета) номер доступної версії та дозволить вибрати її.
Якщо ви потрапите в ситуацію, коли програми конфліктують через таке використання неофіційних сховищ, у верхній частині ви побачите дисплей "Зламано: ..." . Ви можете ввести l ~ b (ліміт / прапор / зламаний) і просто отримати список пакетів, які конфліктують між собою. Значно полегшує вирішення конфлікту вручну.
Крім того, ви можете використовувати " l
" обмеження списку пакунків. Уявіть, що ви шукаєте пакунки, які починаються з " openoffice ", потім натисніть " l
" і введіть " ^openoffice
" (це регулярний вираз), і ви побачите саме ці пакунки. Виберіть у меню "плоский список пакетів", і ви швидко досягнете своєї мети.
Повний довідник дуже великий, пропонує вам ще багато фільтрів та можливостей. Навіть якщо ви не знаєте їх aptitude
, це зручна заміна, apt-get
і ви можете використовувати її з загальними параметрами, такими як:
aptitude install ... (install or upgrade a package)
aptitude remove ... (remove the binary portions of a package but preserve your /etc configuration)
aptitude purge ... (remove the package completely including your configuration)
apt-get autoremove
тепер видаляє пакунки, які були встановлені як залежності пакету, який з тих пір був видалений.
apt
і це може зробити суміш матеріал , який apt-get
і apt-cache
використовується , щоб зробити. Наприклад, apt search foo
буде вказано пакунки, що містять foo
ім’я чи опис. apt install foo
встановить пакет під назвою foo
якщо такий є і apt policy foo
перерахує встановлену версію і всі доступні версії пакета foo
.
aptitude
ще можна зробити більше, apt
але звичайна apt
часто набагато швидша.
Окрім надання гарного консольного інтерфейсу, коли ви aptitude
не працюєте з аргументами, він поєднує різні apt-*
команди (та dselect
) в одну утиліту.
Для пошуку пакета та встановлення його за допомогою apt-get:
apt-cache search somepkg
apt-get install somepkg
..але з придатністю це та сама команда:
aptitude search somepkg
aptitude install somepkg
aptitude
має деякі додаткові функції, наприклад, такі aptitude changelog somepkg
як тримання пакетів (щоб зупинити їх оновлення) - нічого, чого не вдалося досягти за допомогою інших команд / методів, це просто більш уніфіковано і приємно використовувати.
як ви знаєте, коли ви встановлюєте пакет, якщо йому потрібні інші пакети (залежності), вони також будуть завантажені та встановлені. треків, що підлягають встановленню, на момент встановлення пакунки, які постачаються із встановленим, тому, коли ви видалите останню придатність, попросите вас усунути інші (зараз не використовувані) "осиротілі" залежності. apt-get збереже їх у вашій системі мовчки, якщо ви вилучите "основний" пакет.
схоже, останні версії apt-get мають подібний функціонал: http://www.psychocats.net/ubuntu/aptitude
aptitude
або apt
насправді не зберігає список пакунків, які були встановлені як залежності для будь-якого пакета. Він просто відстежує, чи встановлено пакет вручну або автоматично. І якщо пакет був позначений як автоматично встановлений, і жоден інший пакет не залежає або рекомендує його, він буде видалений за допомогою apt autoremove
або aptitude dist-upgrade
.
Найбільша відмінність полягає в тому, що здатність розроблена таким чином, щоб вона була інтерактивною там, де підходящі інструменти краще підходять для сценарівної роботи. Ви можете використовувати останні, тобто підхожі інструменти, просто чудово, значно більше зусиль, щоб отримати ті самі результати, які дає здатність. Якщо вам довелося зупинитися на одному або іншому інструменті з якихось причин, тоді вам потрібно вирішити, скільки зусиль ви хочете докласти до управління пакунками.
Однією з серйозних переваг здатності є її здатність обчислювати залежності. По-перше, він може впоратися зі складними взаємозалежностями без втручання самостійно, що часто вдається отримати невдачу. Але якщо вам не сподобається рішення, яке воно вам запропонувало (і воно набере власне рішення, щоб продемонструвати, наскільки воно добре вважає), ви можете попросити його піти і придумати інше рішення для вирішення конфлікту.
Це дійсно робить дивовижне управління пакетами.
Найбільша різниця полягає в тому, що: введіть "здатність" без будь-яких параметрів.
Це дає вам текстовий інтерфейс користувача, ви можете використовувати клавіатуру для пошуку / навігації і т.д.
Ви можете натиснути "g", щоб переглянути зміни, змінити доповнення та видалення пакетів, якщо це необхідно, та застосувати всі очікувані операції.
Чудовий візуальний спосіб управління пакетом через ssh-з'єднання або звичайний старий термінал.