| | {{.:apt.png}} 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 [[http://www.abclinuxu.cz/slovnik/linux|GNU/Linux systému]]. Při příchodu [[http://www.debian.org/|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 [[http://www.jobpilot.cz/profile/redhat/index.phtml|Red Hat]] rozhodl vytvořit vlastní balíkovací systém označován [[http://www.abclinuxu.cz/slovnik/rpm|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 ==== {{.:documentation.png}} Všechny níže uvedené příkazy vyžadují zadávání v [[Terminál| terminálu]] [[Root sudo| 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 === nainstaluje balík === apt-get install = === nainstaluje danou verzi balíku === apt-get remove === odstraní nainstalovaný balík (konfigurační soubory zůstanou) === apt-get purge === 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 === 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 [[http://www.abclinuxu.cz/slovnik/repozitar|zdrojů]] a porovnání verze balíků. Ekvivalent v [[Synaptic| 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%%. * :!: V [[Synaptic|Synapticu]] lze nastavit, aby se stažené balíky neukládaly, ale hned po instalaci smazaly. * :!: Velikost adresáře ''/var/cache/apt/archives'' zjistíte pomocí ''du -sh /var/cache/apt/archives'' === 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 === vyhledá balík obsahující ve svém názvu „vzor“. === apt-cache show === ukáže informace o balíku „název_balíku“. === apt-cache showpkg === Ukáže podrobnější informace o balíku. ==== dpkg ==== === dpkg -l === seznam instalovaných balíků odpovídající vzoru. Užitečné pokud neznáte správný název balíku. === dpkg -L === ukáže soubory, které má instalované balík „název_balíku“ v systému === dpkg -S === 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 === 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 === 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 === * ''echo "foo hold" | dpkg --set-selections'' - uzamkne balík "foo", to znamená, že daný balík se nebude aktualizovat na novou verzi. Stejné jako v Synapticu **Balík → Uzamknout verzi**. * Poznámka: %%apt-get dist-upgrade%% ignoruje toto nastavení, ale budete varováni. * ''echo "foo install" | dpkg --set-selections'' - odstraní zámek z balíku ===== Příklad použití APT ===== {{.:example.png}} 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 ===== {{.:IconHammer2.png}} %%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' {{.:warning.png}} 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 ===== {{.:IconGlobe.png}} 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í [[http://www.abclinuxu.cz/slovnik/shell|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/ Došlo k poškození uvedeného souboru. Náprava je jednoduchá * zkontrolujte, že ve výpisu chyby jde opravdu o adresář **/var/lib/apt/lists**, a ne jiný * zavřete všechny programy, které instaluji balíky nebo programy * otevřete [[Terminál]] a zadejte tyto dva příkazy 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í.