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?

Našli jste v článku chybu?
Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

120na80.cz: Jaké plavecké pomůcky vaše dítě ochrání?

Jaké plavecké pomůcky vaše dítě ochrání?

120na80.cz: Bonbon si schovejte na přistání

Bonbon si schovejte na přistání

Měšec.cz: Nový sazebník mBank radost nedělá

Nový sazebník mBank radost nedělá

DigiZone.cz: Sat novinky: Tec Time TV vysílá i v HD

Sat novinky: Tec Time TV vysílá i v HD

Lupa.cz: Největší torrentový web KickassTorrents padl

Největší torrentový web KickassTorrents padl

Podnikatel.cz: Nereaguje na výzvu ČOIky, zaplatí milion

Nereaguje na výzvu ČOIky, zaplatí milion

Vitalia.cz: Sobotní masakr žrádla, chlastu a zábavy

Sobotní masakr žrádla, chlastu a zábavy

Lupa.cz: Vodafone umí volání přes Wi-Fi. Z ciziny jako v ČR

Vodafone umí volání přes Wi-Fi. Z ciziny jako v ČR

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

Podnikatel.cz: Fotogalerie: Jesenka už má skoro 50 let

Fotogalerie: Jesenka už má skoro 50 let

Měšec.cz: Banky umí platby na kartu, jen to neříkají

Banky umí platby na kartu, jen to neříkají

Měšec.cz: Platíme NFC mobilem. Konečně to funguje!

Platíme NFC mobilem. Konečně to funguje!

DigiZone.cz: Markíza HD a Dajto? U Digi TV asi minulost

Markíza HD a Dajto? U Digi TV asi minulost

Lupa.cz: IT scéna po brexitu: přijde exodus vývojářů?

IT scéna po brexitu: přijde exodus vývojářů?

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

Vitalia.cz: Za zánět močových cest mohou plavky

Za zánět močových cest mohou plavky

Měšec.cz: Investice do drahých kovů - znáte základní chyby?

Investice do drahých kovů - znáte základní chyby?

Měšec.cz: Do ostravské MHD bez jízdenky. Stačí vaše karta

Do ostravské MHD bez jízdenky. Stačí vaše karta

Podnikatel.cz: Výsledek akce Bez Heureky? Terno se nekoná

Výsledek akce Bez Heureky? Terno se nekoná