Obsah

Správa balíků pomocí apt-get jde ruku v ruce s zdrojem softwaru uloženým v /etc/apt/sources.list. Informace o správě zdrojů softwaru naleznete v Přidávání zdrojů.

Úvod

„ Na počátku byl .tar.gz. Uživatel musel kompilovat každý program, který chtěl použít na svůj GNU/Linux systému. Při příchodu Debianu bylo nezbytné vytvořit nějaký systém správy softwaru. Systém správy softwaru byl pojmenován dpkg. Tento slavný balíkovací systém přišel na GNU/Linux chvíli předtím, než se Red Hat rozhodl vytvořit vlastní balíkovací systém označován rpm.

Nové dilema přišlo na vývojáře GNU/Linux. Potřebovali rychlý, praktický a efektivní nástroj na instalaci balíků, který by spravoval závislosti knihoven automaticky a převzal starost o jejich aktualizace. To se opět povedlo vývojářům z Debian a na svět přišlo APT (the Advance Packaging Tool = Pokročilý balíkovací systém). Systém byl portován Conectivou pro použití s rpm balíky a je adoptován dalšími distribucemi.“

– převzato z Debian APT HOWTO

Příkazy

apt-get

Všechny níže uvedené příkazy vyžadují zadávání v terminálu s právy administrátora (tj. s příkazem sudo). Text název_balíku nahraďte názvem balíku, s kterým chcete pracovat, název_souboru nahraďte názvem Vámi hledaného souboru.

Kompletní aktualizaci Ubuntu z příkazové řádky provedou níže uvedené příkazy apt-get update a apt-get upgrade.

apt-get install <název_balíku>

nainstaluje balík

apt-get install <název_balíku>=<verze>

nainstaluje danou verzi balíku

apt-get remove <název_balíku>

odstraní nainstalovaný balík (konfigurační soubory zůstanou)

apt-get purge <název_balíku>

odstraní nainstalovaný balík i se systémovými konfiguračními soubory (vaše osobní zůstanou) Malý trik: když chcete odstranit balík foo a nainstalovat balík bar v jednom kroku: apt-get purge foo bar+

apt-get autoremove <název_balíku>

odstraní nainstalovaný balík i s jeho závislými balíky, které už nejsou jinde potřeba

apt-get update

Dojde k novému načtení balíků ze zdrojů a porovnání verze balíků. Ekvivalent v Synapticu je ikonka Obnovit, nebo “zkontrolovat aktualizace” ve Windows, nebo OS X. Spusťte vždy po změně /etc/apt/sources.list, nebo /etc/apt/preferences. Využívejte tohoto příkazu pravidelně, aby byl seznam balíků aktuální. (Pro kompletní aktualizaci samotný apt-get update nestačí - po něm je třeba ještě použít následující příkaz apt-get upgrade).

apt-get upgrade

aktualizuje všechny nainstalované balíky na nejnovější verzi. Před použitím je nutno nejprve zaktualizovat zdroje pomocí apt-get update. Neinstaluje balíky nové a žádné automaticky nemaže. Z toho také plyne, že pokud upgrade nějakého balíku na novější verzi by vyžadoval instalaci nebo odstranění nějakého jiného, k jeho upgradu nedojde - k tomu slouží příkaz apt-get dist-upgrade. Ekvivalent v Synapticu je Aktualizovat vše a následné kliknutí na Použít. (Příkaz upgrade po update dokončí kompletní aktualizaci Ubuntu).

apt-get dist-upgrade

upgraduje balíky i za cenu toho, že bude potřeba některé balíky odstranit nebo nainstalovat. Neznamená automaticky přechod na novou verzi systému. K té dojde jen tehdy, pokud si upravíte zdroje, např. změníte odkazy z karmic na lucid. Toto ale není vhodná cesta k přechodu na novější verzi Ubuntu viz: Přechod na novější verzi systému.

apt-get autoremove

odstraní všechny nepotřebné balíky, které byly staženy jen jako závislosti jiných balíků. Občas použijte pro uvolnění místa na disku.

apt-get autoclean

ve /var/cache/apt/archives/ se ukládají stažené balíky pro pozdější použití, tímto příkazem smažete všechny nepotřebné (nenainstalované) místo na disku zabírající balíky. Potřebujete-li zoufale uvolnit místo na disku, použijte apt-get clean.

apt-get clean

smaže balíky již nainstalovaného softwaru. Software zůstane nainstalován, balíky jsou pouze potřeba k samotné instalaci.

apt-get -f install

Stejné jako Akce → Odstranit balíky které jsou v konfliktu a klik na Použít v Synapticu. Dojde k odstranění balíků se špatnými závislostmi.

apt-cache

apt-cache search <vzor>

vyhledá balík obsahující ve svém názvu „vzor“.

apt-cache show <název_balíku>

ukáže informace o balíku „název_balíku“.

apt-cache showpkg <název_balíku>

Ukáže podrobnější informace o balíku.

dpkg

dpkg -l <vzor>

seznam instalovaných balíků odpovídající vzoru. Užitečné pokud neznáte správný název balíku.

dpkg -L <název_balíku>

ukáže soubory, které má instalované balík „název_balíku“ v systému

dpkg -S <název_souboru>

vyhledá balík, ze kterého pochází soubor „název_souboru“. Tento postup je inverzní oproti dpkg -L název_balíku, je užitečný jako odpověď na otázku „Z kterého balíku přišel tento soubor?“

dpkg -c <foo.deb>

jaké soubory obsahuje balík „foo.deb“. Zobrazí se to, co přibude ve Vašem systému po nainstalovaní balíku „foo.deb“, který jste si ručně stáhli.

dpkg-reconfigure <název_balíku>

přenastaví balík „název_balíku“. Pozor, při provedení tohoto příkazu u některých balíku můžete být dotazováni na upřesňující informace. Například: dpkg-reconfigure fontconfig-config zobrazí nabídku konfigurace fontů v Ubuntu.

dpkg --set-selections

Příklad použití APT

Chci cítit vítr ve vlasech, chci si užít adrenalin z rychlosti … nainstaluji si nějakou závodní automobilovou hru. Ale jaké hry závodní hry jsou k mání:

sudo apt-cache search racing game

Tento příkaz mi dá mnoho odpovědí. Bohužel velká část her je v angličtině a tak nemůžete vyhledávat frázi závodní hra, ale musíte si pojem přeložit: racing game. Ze seznamu mě zaujala hra s názvem torcs, tak se podívám na nějaké bližší informace o ní:

apt-cache show torcs

Hmm … to vypadá zajímavě. Ale nemám již tuto hru instalovanou na počítači? Jaká verze je vlastně dostupná? V kterém zdroji se nachází? Není nic snazšího než se optat:

sudo apt-cache policy torcs

Pěkné, chci to nainstalovat:

sudo apt-get install torcs

Jaký příkaz zadat do konzole ke spuštění hry? Mno dobře, v tomto případě je to docela zřejmé torcs. Ale ne vždy je to tak jasné. Jedna možnost jak to zjistit, je podívat se jaké soubory z balíku jsou nainstalovány v /usr/bin. Pro hry je dobré též se podívat do /usr/games. Administrativní programy hledat v /usr/sbin

dpkg -L torcs | grep /usr/games/

První část příkazu zobrazí instalované soubory balíkem torcs. Druhá část vyfiltruje jen názvy souborů obsahující /usr/games.

Hmm, hra je super. Možná by to chtělo nějaké další tratě?

apt-cache search torcs

Zobrazí se nám další dva balíky, které můžeme nainstalovat.

Ale ne, dochází mi volné místo na disku, musím promazat nepotřebné balíky:

apt-get clean

A jé, máma se ptá jestli bych mohl odstranit všechny hry z tohoto počítače. Vyhovím, ale nechám si schované konfigurační soubory na jindy:

apt-get remove torcs

Asi už to hrát nikdy nebudu, smažu i konfigurační soubory:

apt-get purge torcs

Pokud potřebujete nainstalovat starší verzi balíku, přidejte ji za název balíku, např.:

apt-get install firefox=3.0.7+nobinonly-0ubuntu0.8.10.1

Aktualizovat systém pomocí příkazové řádky (nepotřebujeme Správce aktualizací)

sudo apt-get update && sudo apt-get upgrade

případně ještě

sudo apt-get dist-upgrade

Dodatečné balíky

deborphan a debfoster jsou užitečné programy pro hledání osiřelých a nepotřebných balíků k odstranění.

Zrychlení práce v Terminálu

Pro zrychlení práce si lze vytvořit aliasy. Alias přestavuje zkratku pro příkaz, nebudeme muset vypisovat apt-get install, ale stačí jen napsat agi. Pro tvorbu aliasů si v textovém editoru otevřeme ~/.bashrc:

 gksudo gedit ~/.bashrc

Nalezneme řádku # some more ls aliases a pod ní můžeme například dopsat:

    alias acs='apt-cache search'
    alias agu='sudo apt-get update'
    alias agg='sudo apt-get upgrade'
    alias agd='sudo apt-get dist-upgrade'
    alias agi='sudo apt-get install'
    alias agr='sudo apt-get remove'

Pakliže s prací v Terminálu teprve začínáte, nepoužívejte hned aliasy. Je vhodné počkat než se vám příkazy dostanou trochu „pod kůži“ a až pak si nějaké aliasy vytvořit. Jinak nebudete své práci v terminálu moc rozumět! … Toto vše platí obecně pro jakoukoliv tvorbu aliasů (zkratek) v Terminálu.

Nastavení apt-get s využitím http-proxy

K využití apt-get s htttp-proxy využijte jednu z následujících tří variant nastavení. Každá se hodí pro trochu jiné využití, pečlivě si vyberte:

dočasné

Toto je varianta vhodná pro dočasné řešení. Ručně můžete nastavit http-proxy pokaždé když se Vám to hodí pro trvalé řešení jsou efektivnější jiné metody.

Vložte následující řádek do terminálu a výraz Vaše_proxy_adresa a Váš_proxy_port nahraďte vhodnými údaji:

export http_proxy=http://Váš_login:Vaše_heslo@Vaše_proxy_adresa:Váš_proxy_port

apt.conf

Tato varianta využívá nastavení v souboru /etc/apt/apt.conf. Tato metoda je užitečná, chcete-li apt-get (ne jiné aplikace) používat přes http-proxy trvale.

Otevřeme si v textovém editoru apt.conf:

gksudo gedit /etc/apt/apt.conf

A přidáme tuto řádku. Výrazy Váš_login, Vaše_heslo, Vaše_proxy_adresa a Váš_proxy_port nahraďte vhodnými údaji:

Acquire::http::Proxy "http://Váš_login:Vaše_heslo@Vaše_proxy_adresa:Váš_proxy_port";

Soubor uložíme a zavřeme.

bashrc

Tento postup přidá do nastavení Bashe dvě řádky. Postup je vhodný, chcete-li používat apt-get a další jiné aplikace jako výzvu k využití wgetu, s použitím http-proxy.

Nejprv si otevřeme v textovém editoru ~/.bashrc:

gedit ~/.bashrc

Přidáme následující řádky na konec souboru. Výrazy Váš_login, Vaše_heslo, Vaše_proxy_adresa a Váš_proxy_port nahraďte vhodnými údaji:

http_proxy=http://Váš_login:Vaše_heslo@Vaše_proxy_adresa:Váš_proxy_port
export http_proxy

Uložíme soubor a zavřeme.

Řešení problémů

E: Problem with MergeList

Chyba vypadá nějak takto

E: Problem with MergeList /var/lib/apt/lists/<nějaký_dlouhý_název_Packages>

Došlo k poškození uvedeného souboru. Náprava je jednoduchá

sudo rm /var/lib/apt/lists/*
sudo apt-get update

První příkaz vymaže všechny soubory v daném adresáři. Druhý je obnoví.