Je lepší aptitude místo apt-get nebo je to jedno?

Petr Krčmář 29. 3. 2010

Uživatelé různých distribucí s balíčkovacím systémem deb mají možnost spravovat software pomocí utilit apt nebo aptitude. Ve fórech se objevují obě možnosti a také lidé obhajující tu či onu možnost. Jaké má vlastně aptitude reálné výhody proti apt? Který z těchto programů je lepší používat a proč?

Jak vypadá balíčkovací systém deb?

Z Debianu vychází téměř 50 % všech instalovaných linuxových systémů. Jeho balíčkovací systém tak naleznete v polovině distribucí. Jedná se o velmi sofistikovaný systém umožňující komplexní správu software v systému. Skládá se z několika samostatných částí, které na svou práci vzájemně navazují:

  • dpkg – Základní správce balíčků, umí instalovat balíčky z disku a hlídá závislosti. V případě, že závislosti nejsou splněny, jen na to umí upozornit a balíky nenainstaluje.
  • apt – Známá nadstavba nad dpkg, která dokáže sama řešit závislosti, stahovat balíčky z internetu, prohledávat repositáře a podobně. Při instalaci zjistí a stáhne vše potřebné a balíky předá k instalaci dpkg.
  • aptitude – Nadstavba nad apt, která přidává GUI a CLI rozhraní, vylepšuje řešení závislostních kolizí a zjednodušuje ovládání.
  • Synaptic – GUI náhrada za aptitude, která pracuje přímo nad apt. Používá se zejména v Ubuntu jako grafický správce balíčků.
  • a samozřejmě další nadstavby jako Adept, PackageKit, KPackage a další.

Historie balíčků

Abychom pochopili vztahy mezi těmito programy (především těmi nadstavbovými) musíme znát jejich historii: V Debianu byl původně program dselect, který vznikal kolem roku 1995 a byl dokonce součástí balíčku dpkg a byl tak nedílnou součástí samotného jádra balíčkovacího systému. Jeho algoritmy pro řešení závislostí ale nebyly ideální a proto se postupně začala hledat a vytvářet alternativa.

Na konci devadesátých let tak vznikl apt neboli Advanced Packaging Tool. Stal se součástí Debianu 2.1, který vyšel v březnu roku 1999. Postupně tak úplně vytlačil dselect a opustil textové ovládací rozhraní. Utilita apt je tak dnes čistě řádková. Dselect stále existuje, ale už není standardní součástí instalace a paradoxně se transformoval do nadstavby nad apt.

V roce 1999 pak začala vznikat další vrstva – nadstavba nad apt zvaná aptitude. Ta přinesla znovu textové rozhraní s roletkovým menu a později pak také grafické GTK rozhraní. První verze se objevila hned v dalším Debianu 2.2, který vyšel v srpnu 2000. Aptitude se postupně vylepšoval a čím dál více začleňoval do Debianu, až se v roce 2007 s vydáním Debianu 4.0 Etch stal Preferovanou aplikací pro správu balíčků z konzole pro instalaci i upgrade balíčků či systému.

Oficiálně je tedy vývojáři i dokumentací doporučováno používat aptitude. Přesto je v mnoha fórech stále ještě k vidění, že uživatelé při instalaci zůstávají u apt-get. Otázka tedy zní: proč používat aptitude a nezůstat u apt, když obojí skrze dpkg pracuje nad jednou databází balíčků?

Apt nebo aptitude?

Z čistě praktického hlediska má aptitude několik zásadních výhod. Uživatel apt běžně potřebuje několik činností: k instalaci využívá apt-get, k hledání balíčků apt-cache, k práci s klíči apt-key, pro hledání bugů pak apt-listbugs a podobně. Příkazů je samozřejmě mnohem víc: apt-cdrom, apt-config, apt-extracttemplates, apt-ftparchive, apt-mark, apt-sortpkgs, apt-listchanges, apt-rdepends a tak dále. Celkem tedy nejméně 12 příkazů pro práci s jedním balíčkovacím systémem. Aptitude tohle zvládá v jednom příkazu, vše obstarají parametry install, remove, search, show, clean a podobně.

Aptitude má také příjemnější výstup. Výsledky vyhledávání seřazuje automaticky abecedně a zobrazuje přehledně také informace o tom, které balíčky jsou nainstalované a které ne. Porovnejte:

$ apt-cache search gimp

abr2gbr - Converts PhotoShop brushes to GIMP
bleachbit - delete unnecessary files from the system
gimp-cbmplugs - plugins for The GIMP to import/export Commodore 64 files
create-resources - shared resources for use by creative applications
junior-art - Debian Jr. Art
gegl - Generic Graphics Library Test Program
libgegl-0.0-0 - Generic Graphics Library
libgegl-0.0-dev - Generic Graphics Library (development files)
libgegl-0.0-doc - Generic Graphics Library (documentation)
gimp-dcraw - GIMP plug-in for loading RAW digital photos
gimp-dds - DDS (DirectDraw Surface) plugin for the gimp
gimp-dimage-color - GIMP plugin to convert Minolta DiMAGE pictures to sRGB
gimp-help-es - Documentation for the GIMP (Spanish)
...

$ aptitude search gimp

i   gimp                            - GNU Image Manipulation Program (GNU
p   gimp-cbmplugs                   - plugins for The GIMP to import/export
i A gimp-data                       - Data files for GIMP
p   gimp-data-extras                - Extra množina štětců, palet a přechody
p   gimp-dbg                        - Debugging symbols for GIMP
p   gimp-dcraw                      - GIMP plug-in for loading RAW digital
p   gimp-dds                        - DDS (DirectDraw Surface) plugin for
p   gimp-dimage-color               - GIMP plugin to convert Minolta DiMAGE
p   gimp-gap                        - Balíček animací pro GIMP
...

Aptitude také lépe zachází s nepotřebnými balíčky. Pokud odinstalujete větší aplikaci, často vám v systému zůstanou balíčky s knihovnami, které již nejsou potřeba. Apt dříve neumožňoval takové balíčky vůbec odinstalovávat a bylo potřeba doinstalovat balík deborphan, který tuto funkčnost přidával. Od roku 2006 ale apt nabízí parametr autoremove, který prohledá databázi a nabídne k odstranění nadbytečné balíky. Aptitude tuto činnost provádí automaticky a vždy kontroluje, zda jsou všechny balíky odstraněny. V opačném případě sám nabídne jejich odinstalaci.

Velkou výhodou aptitude je také inteligentní řešení problémů se závislostmi. Program je schopen nabízet více možností, které vyřeší jeden problém. Porovnejte pokud o odinstalaci QT s apt-get a s aptitude:

# apt-get remove libqtcore4

Čtu seznamy balíků... Hotovo
Vytvářím strom závislostí
Čtu stavové informace... Hotovo
Následující balíky budou ODSTRANĚNY:
  libqca2 libqca2-plugin-ossl libqt4-assistant libqt4-dbus libqt4-designer
  libqt4-gui libqt4-network libqt4-opengl libqt4-qt3support libqt4-script
  libqt4-sql libqt4-sql-mysql libqt4-sql-sqlite libqt4-svg libqt4-xml
  libqtcore4 libqtgui4 psi python-qt4-dbus qt4-qtconfig qtpfsgui skype
  skype-call-recorder stellarium unetbootin virtualbox-3.1 vlc
0 aktualizováno, 0 nově instalováno, 27 k odstranění a 0 neaktualizováno.
Po této operaci bude na disku uvolněno 171MB.
Chcete pokračovat [Y/n]? n
Přerušeno.

# aptitude remove libqtcore4

Čtu seznamy balíků... Hotovo
Vytvářím strom závislostí
Čtu stavové informace... Hotovo
Čtu rozšířené stavové informace... Hotovo
Inicializuji stavy balíků... Hotovo
Načítám popisy úloh... Hotovo
Následující balíky budou ODSTRANĚNY:
  libqtcore4
0 balíků aktualizováno, 0 nově instalováno, 1 k odstranění a
0 neaktualizováno.
...
Následující akce vyřeší tyto závislosti:

      Odstranit následující balíky:
1)      libqca2
2)      libqca2-plugin-ossl
3)      libqt4-assistant
4)      libqt4-dbus
...

Úroveň: Bezpečné akce, Odstranění balíků (10000)

Přijmout toto řešení? [Y/n/q/?] n
Následující akce vyřeší tyto závislosti:

     Ponechat následující balíky v jejich aktuální verzi:
1)     libqtcore4 [4:4.5.3-4 (testing, now)]

Úroveň: Zrušení všech uživatelových akcí (20000)

Přijmout toto řešení? [Y/n/q/?]

Vidíte, že apt nabídl jen jednu možnost – potvrzení celé akce. Aptitude upozorní uživatele na to, že bude potřeba odstranit další balíky a pokud uživatel nesouhlasí, nabídne mu druhou možnost – ponechat balíky v původních verzích. V případě složitějších akcí dokáže aptitude automaticky navrhovat další a další možnosti.

Aptitude je také doporučován při upgrade systému na novější verzi. V takové situaci se obvykle objevuje řada problémů se závislostmi, některé balíky mění názvy nebo se třeba rozdělují do více balíčků. Algoritmus aptitude si v takto složité situaci vede lépe než starší apt.

Aptitude také standardně instaluje také doporučované balíky (je možné potlačit v konfiguraci), takže často přináší méně problémů začátečníkům. Doporučované balíky totiž bývají často velmi důležité pro konkrétní vlastnosti programů a pokud o nich nevíte, můžete se dlouho rozčilovat nad tím, proč ten či onen program nefunguje správně.

Pro mnoho uživatelů je také užitečné ncurses rozhraní aptitude. V některých případech může být jeho použití přehlednější než použití řádkového programu. Novější verze aptitude obsahují také GTK rozhraní, takže můžete změny v balíčcích jednoduše naklikat.

Tak aptitude nebo apt?

Shrnuli jsme si výhody použití aptitude proti sadě programů apt. Z uživatelského hlediska je pohodlnější a příjemnější používat aptitude. Nabízí především inteligentnější řešení problémů a všechny potřebné akce schovává do jediného příkazu. Na druhou stranu i aptitude nakonec volá apt, takže je možné oba přístupy kombinovat, přestože oficiální dokumentace upřednostňuje aptitude. Je s ním méně problémů. Co používáte vy?

Anketa

Používáte v deb distribucích apt nebo aptitude?

Ohodnoťte jako ve škole:

Průměrná známka 1,88

Našli jste v článku chybu?
Zasílat nově přidané názory e-mailem
DigiZone.cz: V RS7 ukončila vysílání Retro Music Television

V RS7 ukončila vysílání Retro Music Television

Vitalia.cz: Martin Kasa o byznysu s léky

Martin Kasa o byznysu s léky

Lupa.cz: Jak EET vidí ajťák aneb Drahá vražda UX

Jak EET vidí ajťák aneb Drahá vražda UX

Podnikatel.cz: Konečně vývar. Skoro jako od Steva Jobse

Konečně vývar. Skoro jako od Steva Jobse

120na80.cz: Tady se vaří padělané léky

Tady se vaří padělané léky

120na80.cz: Zjistěte, zda je vaše klíště infikované

Zjistěte, zda je vaše klíště infikované

Vitalia.cz: Tetanus v USA – i po odřeninách

Tetanus v USA – i po odřeninách

120na80.cz: Co jí dělá? Sklerotizaci

Co jí dělá? Sklerotizaci

DigiZone.cz: O2TV zve na souboj Ledecké s Myslivcovou

O2TV zve na souboj Ledecké s Myslivcovou

DigiZone.cz: Kolik lidí sleduje hokej na webu ČT?

Kolik lidí sleduje hokej na webu ČT?

Vitalia.cz: Mražené ryby z Makra byly falšované

Mražené ryby z Makra byly falšované

Vitalia.cz: Grilujte v parku i na loďce

Grilujte v parku i na loďce

120na80.cz: Poznáte, který z léků je pravý?

Poznáte, který z léků je pravý?

Podnikatel.cz: Různé podoby lahve Coca–Coly. Úchvatné

Různé podoby lahve Coca–Coly. Úchvatné

Lupa.cz: Válka e-shopů. Alza končí s Heurekou

Válka e-shopů. Alza končí s Heurekou

120na80.cz: 10 dezinfekcí: Vede „starý dobrý“ peroxid

10 dezinfekcí: Vede „starý dobrý“ peroxid

DigiZone.cz: Podzim přinese sport Viasat Ultra HD

Podzim přinese sport Viasat Ultra HD

Podnikatel.cz: Přechod z OSVČ na firmu? Totální šok!

Přechod z OSVČ na firmu? Totální šok!

DigiZone.cz: Panasonic v Praze uvedl TV pro rok 2016

Panasonic v Praze uvedl TV pro rok 2016

Podnikatel.cz: Internet věcí ušetří v podnikání peníze

Internet věcí ušetří v podnikání peníze