Apt

Z Wikiknih
(přesměrováno z Linux:apt-show-versions)

APT - advanced package tools - je sada nástrojů, která usnadňuje práci s instalačními balíky. Primárně byl vytvořen pro linuxovou distribuci Debian, která používá archívy s příponou .deb, ovšem v současné době existuje i APT4RPM který co do funkčnosti pracuje velmi podobně, ovšem s tím rozdílem že je určen pro archívy typu .rpm

Tabulka nejčastěji používaných příkazů a jejich kombinací[editovat | editovat zdroj]

Popis Příkaz
Výpis všech nainstalovaných balíků dpkg -l
Vyhledání balíčku ke kterému patří určitý soubor dpkg -S '/cesta/k/souboru'
Výpis obsahu balíčku dpkg -L <nainstalovaný balíček>
Výpis informací z nenainstalovaného lokálně uloženého balíčku dpkg -i /cesta/k/balíku/něco-1.2.3-i386.deb
Výpis obsahu nenainstalovaného lokálně uloženého balíčku dpkg -c /cesta/k/balíku/něco-1.2.3-i386.deb
Aktualizace databáze dostupných balíků apt-get update
Instalace nejnovejších dostupných verzí všech balíčků apt-get upgrade
Vyhledání balíčku z databáze dostupných balíků apt-cache search <regulární výraz pro hledaný řetězec>
U dotazů na databáze balíků si lze pomáhat použitím rour a filtrovacích příkazů grep bin

Jak nastavit APT[editovat | editovat zdroj]

Aby APT fungoval jak má, musí být správným způsobem nastaven. Základním konfiguračním souborem pro APT je /etc/apt/apt.conf

Většina uživatelů si vystačí s defaultním nastavením (daným parametry při kompilaci) a soubor apt.conf nemají vůbec, nebo je prázdný. Pokud však musí přistupovat na zdroje instalačních balíků přes proxy, nebo když chtějí generovat vlastní repository resp. v systému kombinovat souběžně více zdrojů, pak se bez jeho nastavení neobejdou.

Nastavení proxy lze obejít, nastavením proměnných http_proxy a ftp_proxy přímo na konzoli, ale některá jiná nastavení ne.

Syntaxe konfiguračního souboru apt.conf[editovat | editovat zdroj]

APT byl původně napsán v perlu, takže z perlovské syntaxe vychází i konfigurační soubor. Lze v něm používat i komentáře (což je veškerý text za sekvencí // až do konce řádku) a jeho struktura je stromová. Je tedy možný dvojí zápis. Buď jednořádkový, kdy jsou jednotlivé parametry odděleny dvojtečkami a volby v uvozovkách:

 APT::Get::Assume-Yes "true"
 APT::Get::Fix-Broken "true"

Nebo víceřádkový, který má ale stejný efekt:

 APT {
   Get {
     Assume-Yes "true";
     Fix-Broken "true";
     };
   };

Také lze do tohoto konfiguračního souboru vkládat další konfigurační nastavení v externích souborech přes volbu:

#include
#clear

Příklad takového konfiguračního souboru naleznete níže v oddíle Vytvoření zdroje pro APT

Nastavení přístupu (proxy)[editovat | editovat zdroj]

Lze provést rovněž nastavením v konfiguračním souboru /etc/apt/apt.conf. Obsah tohoto souboru vypadá zhruba takto:

 APT::Authentication::TrustCDROM "true";
 Acquire::http::Proxy "http://<login>:<password>@<IP proxy>:<port>/";

Nicméně má vlastní zkušenost je taková, že přes naši http proxy to ne vždy funguje jak má a tak raději vždy předtím než začnu na konzoli pracovat s APT vyexportuji nastavení proxy do proměnných http_proxy a ftp_proxy

Distribuce a verzování[editovat | editovat zdroj]

Ačkoliv i jiné distribuce používají balíčkovací systém DEB, neznamená to, že by musely nutně používat stejný systém verzování. Nejnápadnější je to asi u Ubuntu, které se pravděpodobně nechalo inspirovat vydávacím cyklem Mandrivy (každý rok jedna verze).

Debian má verzování jiné. Nezakládá se na nějakých pomyslných časomírách, ale balíčky jsou zařazovány do příslušné distribuční verze podle určitých pravidel.

V Debianu (na rozdíl od Ubuntu) mají kódová jména jiný význam. Instalovat verzi lenny není totéž co instalovat verzi testing, i když se to na první pohled může zdát.. Pokud si totiž nainstalujete (a ve zdrojích nastavíte) váš systém na unstable či sid, tak se vám budou instalační balíky neustále aktualizovat dál a dál.. Zatímco u lenny pouze do té doby, než bude prohlášen testing za stable. To nastane tehdy až budou balíky ve stávajícím testingu ustálené - viz podmínky které musí splňovat v níže uvedené tabulce.

Stable verze u Debianu nemá nic společného se stabilitou software, který balíky obsahují, což je tradiční omyl. Do stable jsou zařazovány balíky které neprodělaly po určitou dobu žádnou změnu v závislostech, aktualizaci, resp. opravu chyby. Logicky tak verze stable nemůže zastupovat špičku aktuálního software.

  • Kdo chce "být in" nebo mít aplikace u nichž jsou rychle opravované chyby, instaluje sid. Většinou to platí pro linux používaný na desktopu.
  • Vývojáři spíš upřednostní unstable nebo testing
  • Balíky z verze experimental používají věčně nespokojení zoufalci (ten však stejně není samostanou verzí distribuce) a vývojáři
  • Kdo chce mít svatý pokoj a potřebuje především stabilní a funkční systém instaluje etch nebo stable
  • A lenny si obvykle instaluje opatrný "pan zvědavý"

Pokud chcete instalovat verzi unstable, tak stejně (pokud neinstalujete přes debootstrap) se to většinou řeší tak, že nejprve nainstalujete z média verzi testing nebo stable a teprve pak, úpravou konfigurace pro APT zaktualizujete systém na unstable.

kódové jméno verze popis
woody oldstable Je verze kterou nahradil v její pozici stable sarge
sarge oldstable Je verze kterou nahradil v její pozici stable etch
etch stable Přestože by někoho mohlo mást označení stabilní i zde se mohou objevit závažné chyby. Nejsou však opravovány novým vydáním balíku, řeší je tzv. bezpečnostní aktualizace. Na rozdíl od verze testing tato verze distribuce je spravována lidmi co rozhodují o tom kdy bude "vydána" další stable verze podle různých kritérií.
Každému vydání předchází nejprve stav zmražení distribuce testing. Znamená to v praxi, že během tohoto období nejsou začleňovány jiné balíky než ty co opravují nějaké kritické chyby. Pak dojde k přesunu balíků z testing do stable a je vydána nová stable.
Až přesáhne množství přesouvaných balíků určitou procentuální hladinu, změní se stávající testing na stable ovšem kódové jméno zůstane zachováno
lenny testing Je automaticky generovaná distribuce, z toho důvodu nejsou pro něj vydávány žádné bezpečnostní aktualizace. Aby se balíček dostal z unstable do testing, musí splnit následující kritéria:
  • Musí být v unstable minimálně 2-10 dní (podle své váhy)
  • musí být úspěšně sestaven pro všechny nabízené architektury, pro které existovala předchozí verze
  • Musí opravovat přinejmenším několik kritických chyb verze která je zrovna součástí verze testing
  • Musí mít splněny všechny závislosti, tzn. buďto být sestaven s tím co je v distribuci k dispozici, nebo nahradit všechny závisející nebo závislé balíky novou verzí.
  • a jeho instalace nesmí vyvolat konflikt s žádným balíkem, který již je v testing.
sid unstable V této verzi jsou všechny balíky, které ještě nesplňují všechny podmínky pro zařazení do testing. Buďto jsou zcela nové, nebo nějak zásadněji aktualizované.
- experimental Obsahuje software na kterém se pracuje a zatím vůbec není určen pro produkční nasazení.

Zatím ostatní kódová označení vydání přecházejí postupně ze stavu testing do stavu stable a oldstable, sid zůstává stále unstable.

Ubuntu versus Debian[editovat | editovat zdroj]

Ubuntu byla distribuce zpočátku primárně zaměřená na desktop a vznikla jako tzv. derivát Debianu. Od samého počátku měla ambice na maximální záběr mezi laiky, proto se při jejím verzování a výběru software uplatňují poněkud jiná kritéria.

Zatímco u Debianu je při instalaci zcela v rukou uživatele co v systému bude a co ne, tak u Ubuntu dostane uživatel ihned základní sadu aplikací. Teprve pak může doinstalovat to co chce a vyházet zbytečnosti.

Do vydaných verzí se nepřidává žádný nový software maximálně backportuje ten co v nich již je. Pro řešení chyb lze vydávat stále platné postupy. A po určité předem deklarované době se dostávají starší verze na okraj zájmu a na uživatelé jsou vybízení k přeinstalování stroje na novější verzi,

Jelikož Ubuntu používá stejně jako Debian APT, je přechod na novou, aktualizovanou verzi je pochopitelně realizovatelný. Vyžaduje to však uživatele s jistou dávkou odvahy a zkušeností a tak se stejně většinou provádí nová instalace, místo pouhé aktualizace.

kódové jméno verze charakteristika
warty nepodporovaná verze
hoary nepodporovaná verze
breezy nepodporovaná verze
dapper podporovaná verze Řeší se jen chyby. Backportují se aplikace
edgy podporovaná verze Řeší se jen chyby. V podstatě se dá označit za stable - balíky se nemění.
feisty aktuální verze Debianím ekvivalentem by mohl být zmražený testing. Tj. žádné nové balíčky se nepřidávají, pouze se opravují chyby
herd připravovaná verze je plus mínus ekvivalentní vůči verzi unstable verzi Debianu, ovšem pouze do svého vydání
gutsy plánovaná verze zatím pouze ve stadiu návrhů na obsah

Ubuntu vydává každý rok novou verzi (podobně jako Mandriva). Z tohoto hlediska je tedy dobrou volbou pro lidi co sice chtějí moderní systém na desktop, ale nemají odvahu řešit nečekané problémy. Také je to docela dobrou volbou pro server, který by měl podporovat nové technologie a zároveň měl i výhody stable verze Debianu.

V posledních letech se stalo velmi módní záležitostí vytvářet "distribuce" na míru. Uvozovky jsou použity zcela záměrně. Protože řada z nich není nic než normální běžná distribuce očesaná na určitou specifickou sadu balíků. Debian má přitom prostředek jak instalovat vybranou sadu balíků - tzv. dummy packages což jsou balíky které neobsahují nic než seznam závislostí.

Nastavení výchozí verze distribuce[editovat | editovat zdroj]

Pro všechny distribuce používající APT platí, že podstatné je nastavení výchozí verze distribuce, kterou pak bude APT upřednostňovat. Provádí se to přidáním následujícího parametru do souboru apt.conf:

APT::Default-Release "stable";

Tento řádek zajistí že váš APT bude upřednostňovat balíky pro verzi stable. Pokud chcete používat balíky z jiné verze vaší distribuce, tak je musíte při použití apt-get upřednostnit. A to buď globálně pomocí parametru -t:

user@stroj:~$ apt-get -t unstable install balik_co_chci_instalovat

nebo přidáním verze distribuce rovnou za název balíku:

user@stroj:~$ apt-get install balik_co_chci_instalovat/unstable

Pochopitelně tyto zdroje musí být nastaveny v sources.list a databáze instalačních balíků aktualizovaná. Mám osobní zkušenost, že při mixování balíků z různých verzí je pro jejich upřednostňování lepší používat spíš druhý způsob.

Druhou možností jak zajistit upřednostnění balíků z jiné verze distribuce je nastavit pro APT politiku (policy)

Pro lepší orientaci v tom co vlastně lze a odkud nainstalovat existuje utilita apt-show-versions, kterou je však nutno doinstalovat (závisí na balíku libapt-pkg-perl) neboť není standardní součástí instalace APT. Příklad jejího použití:

user@stroj:~$ apt-show-versions -a | grep mono-mcs
mono-mcs 1.2.3.1-1 install ok installed
mono-mcs 1.2.2.1-2 unstable
mono-mcs 1.2.3.1-3 experimental
mono-mcs/experimental upgradeable from 1.2.3.1-1 to 1.2.3.1-3

Nastavení politiky[editovat | editovat zdroj]

Umožňuje například zajistit, aby nám při automatické aktualizaci nedocházelo k nežádoucímu přeinstalování životně důležitých balíků, nebo upřednostnit náš vlastní zdroj (repository) před distribučním. Politiku (Policy) lze nastavit pomocí konfiguračního souboru /etc/apt/preferences, který má poměrně jednoduchou syntaxi:

Package: balik
Pin: version 0.1.3*
Pin-Priority: 990

Oddělovačem jednotlivých záznamů je prázdný řádek.

Hodnota "Package"
Určuje název balíku, na který se mají aplikovat následující pravidla v záznamu. V případě že se má pravidlo aplikovat na všechny balíky obsahuje pouze znak "*"
Hodnota "Pin"
upřesňuje vůči které z informací o balíku má být pravidlo aplikováno
version - specifikuje verzi balíku (obvykle část názvu balíku za jeho jménem); u verze lze použít masku "*" pro zobecnění čísla verze
release - verze distribuce z níž balík pochází
maintainers - správce, či vydavatel balíku
origin - adresa zdroje balíků
Hodnota "Pin-Priority"
Nastavuje prostřednictvím číselné hodnoty pravidla, co se bude s balíkem, který vyhoví záznamu dít. Pro hodnoty u "Pin-Priority" výše uvedeného příkladu by pak platilo, že:
1001 APT balíček balik-0.1.3 nikdy nenahradí, a to i přesto, bude-li k dispozici balíček balik-0.1.4 V takovém případě provede downgrade na původní verzi 0.1.3
1000 Stejný efekt jako 1001, pouze s tím rozdílem, že APT neudělá downgrade z verze balik-0.1.4 na nižší verzi 0.1.3
999
990 Verze 0.1.3 bude nahrazena vyšší verzí balíku pouze z vydání určeného proměnnou "APT::Default-Release" v souboru apt.conf
500 Výchozí hodnota, APT upřednostní jakoukoliv vyšší verzi balíčku balik než 0.1.3 bez ohledu na vydání (release)
100 Jakákoliv vyšší verze balíčku balik z kteréhokoliv vydání, jakož i jakákoliv nainstalovaná vyšší verze bude mít přednost před verzí 0.1.3. Tuto prioritu mají nastavenu nainstalované balíčky
-1 Záporná priorita zcela zamezí instalaci verze 0.1.3

Aby nebylo nutné definovat záznam v preferences pro každý balík extra, lze nastavit výchozí hodnotu "Pin" v souboru apt.conf V preferences se potom nastavují pravidla pouze pro balíky u nichž chceme nějakým způsobem korigovat výchozí chování APT.

Jakou politiku zrovna váš APT používá můžete zjistit výpisem:

 user@stroj:~$ apt-cache policy
 Soubory balíku:
  100 /var/lib/dpkg/status
      release a=now
    1 http://ftp.cz.debian.org experimental/non-free Packages
      release o=Debian,a=experimental,l=Debian,c=non-free
      origin ftp.cz.debian.org
    1 http://ftp.cz.debian.org experimental/contrib Packages
      release o=Debian,a=experimental,l=Debian,c=contrib
      origin ftp.cz.debian.org
    1 http://ftp.cz.debian.org experimental/main Packages
      release o=Debian,a=experimental,l=Debian,c=main
      origin ftp.cz.debian.org
  500 http://ftp.cz.debian.org unstable/non-free Packages
      release o=Debian,a=unstable,l=Debian,c=non-free
      origin ftp.cz.debian.org
  500 http://ftp.cz.debian.org unstable/contrib Packages
      release o=Debian,a=unstable,l=Debian,c=contrib
      origin ftp.cz.debian.org
  500 http://ftp.cz.debian.org unstable/main Translation-cs
  500 http://ftp.cz.debian.org unstable/main Packages
      release o=Debian,a=unstable,l=Debian,c=main
      origin ftp.cz.debian.org
    1 http://ftp.debian.org experimental/contrib Packages
      release o=Debian,a=experimental,l=Debian,c=contrib
      origin ftp.debian.org
    1 http://ftp.debian.org experimental/main Packages
      release o=Debian,a=experimental,l=Debian,c=main
      origin ftp.debian.org
  500 http://ftp.debian.org unstable/non-free Packages
      release o=Debian,a=unstable,l=Debian,c=non-free
      origin ftp.debian.org
  500 http://ftp.debian.org unstable/contrib Packages
      release o=Debian,a=unstable,l=Debian,c=contrib
      origin ftp.debian.org
  500 http://ftp.debian.org unstable/main Packages
      release o=Debian,a=unstable,l=Debian,c=main
      origin ftp.debian.org
  500 http://www.debian-multimedia.org experimental/main Packages
      release o=Unofficial Multimedia Packages,a=experimental,l=Unofficial Multimedia Packages,c=main
      origin www.debian-multimedia.org
  500 http://www.debian-multimedia.org sid/main Packages
      release o=Unofficial Multimedia Packages,a=unstable,l=Unofficial Multimedia Packages,c=main
      origin www.debian-multimedia.org
 Vypíchnuté balíky:

Zdroje (repository)[editovat | editovat zdroj]

Zdroje pro APT se nastavují prostřednictvím souboru /etc/apt/sources.list

Syntaxe jednotlivých záznamů v tomto souboru je následující:

 typ_zdroje url_adresa_zdroje distribuce sekce1 sekce2 sekce3....

Jednotlivé položky jsou odděleny mezerami. Co řádek, to zdroj. Konkrétně řádek:

 deb-src http://ftp.debian.org/debian unstable main contrib

nastavuje zdroj pro rekompilace balíků, které jsou ve skupině main a contrib, unstable verze distribuce, která se nalézá na http adrese http://ftp.debian.org/debian

Typy zdrojů[editovat | editovat zdroj]

deb - zdroj pro binární balíky deb-src - zdroj pro zdrojové balíky, ze kterých lze kompilovat binární balíčky.

deb
deb-src
rpm
#rpm-src

http://ftp.debian.org/debian
http://ftp.debian.org/debian
ftp://ftp.tux.org/pub/java/debian
ftp://ftp.tux.org/pub/java/debian

 sid
 sid
 unstable
 unstable

 main
 main
 non-free
 non-free




  • První sloupec určuje o jaký typ zdroje balíků se jedná:
    • deb - pro debianovské binární balíky
    • deb-src - pro debianovské zdrojáky
    • rpm - pro binární rpm balíky (u aptu pro rpm)
    • rpm-src - pro rpm zdrojové balíky
  • V druhém sloupci je kořenová URL adresa zdroje.
  • Třetí sloupec obsahuje verzi distribuce:
    • stabilní - stable nebo sarge
    • testovací - testing nebo etch
    • nestabilní - unstable nebo sid
    • některé zdroje nabízejí i vývojovou experimental
  • Pak následuje výběr větve podle typu licence.
    • main - je hlavním zdrojem balíků, který obsahuje všechny nezbytné součásti systému a důležité utility
    • contrib - zahrnuje různé doplňkové balíky
    • non-free - obsahuje cestu k balíkům, k nimž nejsou k dispozici zdrojové kódy, nebo mají nějak omezenou licenci

Každá z těchto větví pak obsahuje soubor Release, v němž můžete najít informace o architektuře, komentář ke zdroji, atp.. a soubor se seznamem balíků (u zdrojů pro binární balíky se jmenuje Packages a u zdroje pro zdrojáky Sources).

"Deaktivaci" zdroje lze provést zakomentováním řádku (znakem #).

Struktura zdroje[editovat | editovat zdroj]

http://ftp.debian.org/debian/ -- dists/ -- sid/ -- main/ -- binary-amd64/  -- Packages
                             |                 |        |                 |-- Packages.bz2
                             |                 |        |                 |-- Packages.gz
                             |                 |        |                  -- Release
                             |                 |        |-- binary-i386/ -- Packages
                             |                 |        |               |-- Packages.bz2
                             |                 |        |               |-- Packages.gz
                             |                 |        |                -- Release
                             |                 |         -- source/ -- Sources
                             |                 |                   |-- Sources.bz2
                             |                 |                   |-- Sources.gz
                             |                 |                    -- Release
                             |                 |
                             |                  -- contrib/ -- binary-amd64/  -- Packages
                             |                             |                 |-- Packages.bz2
                             |                             |                 |-- Packages.gz
                             |                             |                  -- Release
                             |                             |-- binary-i386/ -- Packages
                             |                             |               |-- Packages.bz2
                             |                             |               |-- Packages.gz
                             |                             |                -- Release
                             |                              -- source/ -- Sources
                             |                                        |-- Sources.bz2
                             |                                        |-- Sources.gz
                             |                                         -- Release
                              -- pool/ -- a/ -- acidrip/ -- acidrip_0.14-0.0.diff.gz
                                      |     |           |-- acidrip_0.14-0.0.dsc
                                      |     |           |-- acidrip_0.14-0.0_i386.deb
                                      |     |           |-- acidrip_0.14-0.0_sparc.deb
                                      |     |           |-- acidrip_0.14-0.1.diff.gz
                                      |     |           |-- acidrip_0.14-0.1.dsc
                                      |     |           |-- acidrip_0.14-0.1_all.deb
                                      |     |            -- acidrip_0.14.orig.tar.gz
                                      |     |-- abalik/ -- ...
                                      |     |

Seznamy dostupných balíků pro příslušné distribuce jsou uloženy v podadresářích adresáře dists. Vlastní instalační balíky, a to jak zdrojové, tak binární jsou umístěny v podadresářích adresáře pool.

Vzhledem k tomu, že balíků je ohromné množství, může (ale nemusí) být adresář pool rozdělen do menších bloků, podle abecedy a názvu aplikací. Adresář s názvem aplikace obsahuje všechny binární a zdrojové balíky pro všechny aktuální distribuční verze.

Vytvoření zdroje pro APT[editovat | editovat zdroj]

Základní utilitou pro vytvoření nového zdroje je apt-ftparchive který je součástí balíku apt-utils.

Ověřovací klíče[editovat | editovat zdroj]

Pokud chcete, aby váš zdroj byl považován za důvěryhodný, je třeba:

  • vygenerovat pomocí nástroje gpg pár klíčů pro digitální podepisování a ověřování souborů.
  • vyexportovat veřejný klíč a ten umístit (třeba zapouzdřený ve formě textového souboru) někam, odkud si jej mohou stáhnout lidé co chtějí používat vaše balíčky, nebo ověřovat či dešifrovat vámi podepsané či šifrované soubory.

Bez by toho bude apt při instalaci vašich balíčků vždy vyžadovat manuální schválení. Předtím, než se do toho pustíte se důkladně seznamte s tím jak se vlastně vůbec s klíči pracuje.

Vytvoření zdroje (repository)[editovat | editovat zdroj]

Zdroj musí mít odpovídající strukturu

apt-show-versions - vypisuje verze balíků

apt-ftparchive - utilita pro tvorbu repository (součást balíku apt-utils)

Struktura adresářů

Obsah konfiguračního souboru apt.conf pro apt-ftparchive:

APT {
   FTPArchive {
      Release {
         Codename "snoopy";
         Origin "Keny Otter";
         Components "main";
         Label "Unofficial packages";
         Architectures "amd64 all";
         Suite "unstable";
         };
      };
   Authentication {
      TrustCDROM "true";
      };
   };

Acquire {
   http {
      Proxy "http://<login>:<password>@<IP proxy>:<port>/";
      };
   ftp {
      Proxy "http://<login>:<password>@<IP proxy>:<port>/";
      };
   };

Dir {
   ArchiveDir "/home/user/amd64/"; // adresář s balíkama
   CacheDir "/home/user/debian-amd64/"; // adresář pro ftp
   };

Default {
   Packages::Compress ". gzip bzip2";
   Sources::Compress ". gzip bzip2";
   Contents::Compress ". gzip bzip2";
   };

TreeDefault {
   BinCacheDB "packages-$(SECTION)-$(ARCH).db";
   Directory "pool/$(SECTION)";
   Packages "$(DIST)/$(SECTION)/binary-$(ARCH)/Packages";
   SrcDirectory "pool/$(SECTION)";
   Sources "$(DIST)/$(SECTION)/source/Sources";
   Contents "$(DIST)/Contents-$(ARCH)";
   };

Tree "dists/snoopy" {
   Sections "main"; // seznam adresářů v pool ze kterých se berou balíky
   Architectures "amd64 source";
  };

Vygenerování souboru Release[editovat | editovat zdroj]

user@stroj:~$ apt-ftparchive -c konfigurák_pro_apt-ftparchive Release /cesta_ke_zdroji_baliků/dists/unstable

Podepsání souboru Release[editovat | editovat zdroj]

user@stroj:~$ gpg --output Release.gpg -ba Release

Přidání nového zdroje pro APT[editovat | editovat zdroj]

Základní nástroje a práce s nimi[editovat | editovat zdroj]

cleanup-info[editovat | editovat zdroj]

dpkg[editovat | editovat zdroj]

Nástroj dpkg se používá u dotazů a operací, které se týkají již nainstalovaných balíků.

dpkg-deb[editovat | editovat zdroj]

dpkg-divert[editovat | editovat zdroj]

dpkg-query[editovat | editovat zdroj]

dpkg-split[editovat | editovat zdroj]

dpkg-statoverride[editovat | editovat zdroj]

install-info[editovat | editovat zdroj]

start-stop-daemon[editovat | editovat zdroj]

update-alternatives[editovat | editovat zdroj]

Nástroj pro správu alternatives .


apt-cache[editovat | editovat zdroj]

Nástroj apt-cache se používá pro dotazování zdroje všech dostupných balíků.

apt-cdrom[editovat | editovat zdroj]

Je nástroj, kterým lze přidat do seznamu repozitory také obsah repository uložené na CD

apt-config[editovat | editovat zdroj]

je nástroj kterým lze vypsat aktuální konfigurační nastavení pro APT. Ta lze ovlivňovat např. defaultním souborem /etc/apt/apt.conf, ale také lze u některých příkazů předávat operativně vlastní konfirační soubory.

user@stroj:~$ apt-config dump
APT "";
APT::Architecture "amd64";
APT::Build-Essential "";
APT::Build-Essential:: "build-essential";
APT::Install-Recommends "0";
APT::Install-Suggests "0";
APT::NeverAutoRemove "";
APT::NeverAutoRemove:: "^linux-image.*";
APT::NeverAutoRemove:: "^linux-restricted-modules.*";
APT::Acquire "";
APT::Acquire::Translation "environment";
Dir "/";
Dir::State "var/lib/apt/";
Dir::State::lists "lists/";
...

apt-get[editovat | editovat zdroj]

Nástroj apt-get se používá pro manipulace se zdroji a balíky. Řeší se přes něj instalace, závislosti, atd..

Aktualizace seznamu dostupných balíků[editovat | editovat zdroj]

Příkaz pro aktualizaci seznamu dostupných instalačních balíčků se spouští vždy se superuživatelskými právy, tedy buď jej spustíte jako root, nebo přes sudo (samozřejmě, podmínkou je že sudo musí být pro uživatele povoleno):

root@stroj:~# apt-get update

Co dělat když...

"Aktualizace neproběhne s tím že jsou zdroje nedostupné."

Zkontrolujte si nastavení pro APT. Jste-li za proxy, může být problém v tom, že nemáte na konzoli nastavené hodnoty pro vaši proxy. Vyžaduje-li proxy login a heslo, vypadá potřebný příkaz takto:
root@stroj:~# export http_proxy="http://<login>:<password>@<IP adresa proxy>:<port>"

"Aktualizace neproběhne úplně pro všechny zdroje a http_proxy je nastaveno"

Jste-li za proxy a používáte-li jak http tak ftp zdroje, pak je možné že máte nějak omezen průchod ftp protokolu. Řešení je jednoduché, totéž co pro proměnnou http_proxy nastavit i pro proměnnou ftp_proxy

"Aktualizace neproběhne, a za proxy nejsem"

Zkontrolujte si zda v systému máte soubor /etc/apt/apt.conf. Pokud máte přímé připojení, tak jej zazálohujte a smažte. pak už to mělo fungovat

Nezapomeňte...

Před každou operací s apt, zaktualizovat databázi dostupných balíků. Jednak díky tomu můžete včas odhalit že nemáte nastaveny potřebné proměnné pro přístup k instalačním balíkům (u síťových zdrojů), ale také se vyhnete tomu, že byste se snažili nainstalovat balík, který již dávno v repository není.

Úskalí...

Zcela běžně se stává, zvláště u zdrojů typu testing, unstable či experimental, že nějaký balíček nelze nainstalovat kvůli chybě v závislostech. A to tehdy když:

  • balík závisí na jiném, nově přidaném balíku, ale seznam dostupných balíků ve zdroji na serveru ještě nebyl zaktualizován. V takovém případě se můžete pokusit chybějící balík stáhnout přes www prohlížeč, pokud se již ve zdroji vyskytuje a doinstalovat ho pak z lokálního adresáře. Nebo si chybějící balík rekompilovat (viz níže). Ale pozor! tento problém nejčastěji nastává tehdy, obsahuje-li zdrojový balík chybu, která brání rekompilaci. A nalezení a oprava takové chyby nemusí být vůbec triviální záležitost.
  • balík má chybu v závislostech. Tj. balík na kterém závisí již byl nahrazen novější verzí. Tam pomůže pouze rekompilace balíku. Ovšem před ní je třeba upravit závislosti v souboru control, který najdete v podadresáři rozbaleného instalačního balíku debian

Instalace a odebírání binárních balíků[editovat | editovat zdroj]

Instalace balíku...

Veškeré operace spojené s instalací nebo odebíráním nainstalovaných balíků je třeba provádět vždy se superuživatelskými právy, tedy buď jako root, nebo přes sudo (samozřejmě, podmínkou je že sudo musí být pro uživatele povoleno):

root@stroj:~# apt-get install balik1 balik2 balik3 ...

Příkaz apt-get se používá pro instalaci balíků dostupných ve zdroji (srovnej s instalací a odebírání balíků přes dpkg). Jako parametr balik1 a další se používá pouze název balíku (žádné číslo verze či přípona!). Pokud chcete upřednostnit dejme tomu verzi balíku z verze stable tak musíte splnit následující podmínky:

  • v /etc/apt/sources.list mít nastavený zdroj pro distribuční verzi stable
  • a také mít aktualizovaný seznam dostupných balíků

Příkaz pak vypadá takto:

root@stroj:~# apt-get install balik1 balik2/stable balik3 ...

Apt defaultně upřednostňuje balíky z výchozí distribuce (unstable), resp. jejich novější verze přerazit toto nastavení můžete buď pro každý balík zvlášť, tak jak je uvedeno v předchozím příkladu, nebo pro všechny balíky použitím parametru -t. Viz příklad:

root@stroj:~# apt-get -t install balik1 balik2 balik3 ...

V případě že je instalace balíku podmíněna nějakými změnami (např. aktualizací jiných balíků), tak mám apt na konzoli vypíše jaké změny se chystá provést a počká určitý interval na váš souhlas. To je chvíle, kdy lze ještě operaci bez problému přerušit, proto je třeba opravdu věnovat pozornost tomu co navrhuje.

Co dělat když...

"Odklepnete souhlas s realizací změn a uvědomíte si nějakou botu"

Tak raději nic. Nechat operaci proběhnout. V případě problému totiž stejně nemusí dojít k instalaci, nebo nakonfiguraci problémového balíku. V tom osobně spatřuji výhodu DEB systému oproti RPM. Viz rozdíl mezi DEB a RPM .

Odebrání balíku...

root@stroj:~# apt-get remove balik

Aktualizace balíku...

root@stroj:~# apt-get upgrade balik

Stažení zdrojových balíků[editovat | editovat zdroj]

Řešení závislostí[editovat | editovat zdroj]

apt-key[editovat | editovat zdroj]

Nástroj pro údržbu podpisů pro ověření balíčků

apt-mark[editovat | editovat zdroj]

Pozn.: Bez balíku apt-python si neškrtnete


Sada nástrojů pro přípravu zdroje instalačních balíčků

apt-extracttemplates[editovat | editovat zdroj]

Utilita pro extrakci config souboru z deb balíčku

apt-ftparchive[editovat | editovat zdroj]

Generuje indexové soubory pro zdroje (repository) balíčků

apt-sortpkgs[editovat | editovat zdroj]

Nástroj pro setřídění indexových souborů zdroje (repository) balíčků

Nadstavby pro APT[editovat | editovat zdroj]

Nástroje APT jsou určeny pro příkazovou řádku, ale existují pro ně různé nadstavby:

dselect - (Ncurses) konzolová aplikace
aptitude - (Ncurses) konzolová aplikace
synaptic - (GTK2) využívá GTK knihoven
kpackage - (Qt) závislý na instalaci KDE
ara
xara - (GTK2) grafické GUI aplikace ara, které využívá GTK2 knihoven

Prakticky vše co nabízejí tyto aplikace lze udělat i čistě s nástroji které poskytuje holý APT