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ě.

widgety

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?
DigiZone.cz: Parlamentní listy: kde končí PR...

Parlamentní listy: kde končí PR...

Vitalia.cz: Tohle jsou nejlepší česká piva podle odborníků

Tohle jsou nejlepší česká piva podle odborníků

Vitalia.cz: Dostal malý pivovar ze Slovenska do Tesca

Dostal malý pivovar ze Slovenska do Tesca

120na80.cz: Co je padesátkrát sladší než cukr?

Co je padesátkrát sladší než cukr?

Podnikatel.cz: EET pro e-shopy? Postavené na hlavu

EET pro e-shopy? Postavené na hlavu

DigiZone.cz: Wimbledon na Nova Sport až do 2019

Wimbledon na Nova Sport až do 2019

DigiZone.cz: Test: brýle pro virtuální realitu Exos Urban

Test: brýle pro virtuální realitu Exos Urban

Lupa.cz: Jak se prodává firma za miliardu?

Jak se prodává firma za miliardu?

Podnikatel.cz: Instalatér, malíř a elektrikář. "Vymřou"?

Instalatér, malíř a elektrikář. "Vymřou"?

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

DigiZone.cz: Rapl: seriál, který vás smíří s ČT

Rapl: seriál, který vás smíří s ČT

Vitalia.cz: Voda z Vltavy před a po úpravě na pitnou

Voda z Vltavy před a po úpravě na pitnou

Vitalia.cz: Tahák, jak vyzrát nad zápachem z úst

Tahák, jak vyzrát nad zápachem z úst

120na80.cz: Hrbatá prsa aneb mýty o implantátech

Hrbatá prsa aneb mýty o implantátech

Podnikatel.cz: Babišovi se nedá věřit, stěžovali si hospodští

Babišovi se nedá věřit, stěžovali si hospodští

Lupa.cz: Hackeři mají data z půlmiliardy účtů Yahoo

Hackeři mají data z půlmiliardy účtů Yahoo

Vitalia.cz: 5 pravidel proti infekci močových cest

5 pravidel proti infekci močových cest

DigiZone.cz: Ginx TV: pořad o počítačových hráčích

Ginx TV: pořad o počítačových hráčích

DigiZone.cz: Koncesionářské poplatky pro RTVS

Koncesionářské poplatky pro RTVS

DigiZone.cz: Funbox 4K v DVB-T2 má ostrý provoz

Funbox 4K v DVB-T2 má ostrý provoz