Malá kuchařka APTu

Co APT znamená?

APT je zkratka pro Advanced Packaging Tool (pokročilý balíčkovací nástroj) a jedná se o kolekci programů a sktriptů, které pomáhají sysadminu (ve vašém případě root) s instalací a správou deb-souborů, ale stejně tak pomáhá systému samotnému v tom, aby věděl, co je nainstalováno.

Seznam zdrojů

Systém "APT" potřebuje konfigurační soubor, který by obsahoval informace o umístěních instalovatelných a aktualizovatelných balíčcích a je běžně označován jako sources.list

Zdroje jsou uchovávány v adresáři se jménem
/etc/apt/sources.list.d/

Uvnitř adresáře jsou dva soubory nazvané:
/etc/apt/sources.list.d/debian.list a
/etc/apt/sources.list.d/aptosid.list

To má vyhodu v jednodušším (automatickém) přepínání zrcadel a také je tak bezpěčnější nahrazování seznamů.

Také můžete přida vlastní soubory/etc/apt/sources.list.d/*.list

Všechny ISO aptosid používájí v základy následující zrcadla:

#aptosid
# Free University Berlin/ spline (Student Project LInux NEtwork), Germany
deb ftp://ftp.spline.de/pub/aptosid/debian/ sid main fix.main
#deb-src ftp://ftp.spline.de/pub/aptosid/debian/ sid main fix.main

Další položky pro nesvobodné ovladače mohou být k nalezení v našich neustále aktualizovanýchaptosid.list a debian.list:

#Debian
# Unstable
deb http://ftp.us.debian.org/debian/ unstable main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ unstable main contrib non-free

# Testing
#deb http://ftp.us.debian.org/debian/ testing main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ testing main contrib non-free

# Experimental
#deb http://ftp.us.debian.org/debian/ experimental main contrib non-free
#deb-src http://ftp.us.debian.org/debian/ experimental main contrib non-free

POZNÁMKA: V tomto příkladu ftp.us naznačuje, že používá repozitář v USA. Jako root tento soubor můžete upravit, aby obsahoval repozitář, který je vám nejblíž, jednodušše změnou země, takže to změňte například na ftp.nl nebo ftp.uk. Většina zemí má vlastní zrcadla, průtok je zachován; rychlost lepší.

Seznam serverů Debianu a aktuální stav zrcadel.

Pro možnost obdžet informace o balíčcíh používá APT databázi. Tato databáze obsahuje balíčky, ale také které balíčky jsou potřeba pro daný balíček, aby fungoval (nazvané závislosti). Program apt-get používá tuto databázi, když instalujete vybraný balíček, aby vyřešil všechy závislosti, a tak zaručil, že zvolený balíček bude fungovat. Aktualizace této databáze se učiní příkazem apt-get update.

# apt-get update
	(což vrátí)
Get:1 http://aptosid.com sid Release.gpg [189B]
Get:2 http://aptosid.com sid Release.gpg [189B]
Get:3 http://aptosid.com sid Release.gpg [189B]
Get:4 http://ftp.de.debian.org unstable Release.gpg [189B]
Get:5 http://aptosid.com sid Release [34.1kB]
Get:6 http://ftp.de.debian.org unstable Release [79.6kB]

Instalace nového balíčku

Upgrading packages and installing new packages without stopping X can cause problems. Any method of installing packages under X has this problem.

As long as any package you want to install will not upgrade additional packages then it is safe to install it without stopping X. However if installing the package will cause other packages to upgrade, extreme caution should be taken and unless you are certain the packages which will be upgraded are not currently in use, you should stop X before installing the package.

If you are in any doubt ensure you leave X as per the dist-upgrade instructions before installing any packages. Upgrade an Installed System - dist-upgrade - The Steps .

Presuming the Apt-database is updated and the name of the package is known, then the following command will install a package called qemu, for example, and all its dependencies: (further on you will see how to search and find packages.)

-->

Pokud je apt-databáze aktualizovaná a název balíčku znám, tak následující příkaz nainistaluje balíček nazvaný qemu, například, a všechny jeho závislosti: (dále se podíváme na to, jak balíček vyhledat)

# apt-get install qemu
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  bochsbios openhackware proll vgabios
Recommended packages:
  debootstrap vde
The following NEW packages will be installed:
  bochsbios openhackware proll qemu vgabios
0 upgraded, 5 newly installed, 0 to remove and 20 not upgraded.
Need to get 4152kB of archives.
After unpacking 11.9MB of additional disk space will be used.
Do you want to continue [Y/n]? n

Smazání balíčku

Není překvapením, že velmi podobně dojde následujícím příkazem k odstranění balíčku, ačkoliv ale nebudou odstraněny závislosti:

apt-get remove gaim
Reading package lists... Done
Building dependency tree... Done
The following packages will be REMOVED:
  gaim gaim-irchelper
0 upgraded, 0 newly installed, 2 to remove and 310 not upgraded.
Need to get 0B of archives.
After unpacking 4743kB disk space will be freed.
Do you want to continue [Y/n]?
(Reading database ... 174409 files and directories currently installed.)
Removing gaim-irchelper ...
Removing gaim ...

V tomto poslední případě nebyly konfigurační soubory balíčku 'gaim' (vlastně jak je nastaven) odstraněny ze systému. Můžete je použít při další instalaci toho samého balíčku a bude tedy mít stejné nastavení.

Pokud chcete smazat i konfigurační soubory, spusťte příkaz:

apt-get --purge remove gaim
Reading package lists... Done
Building dependency tree... Done
The following packages will be REMOVED:
  gaim*
0 upgraded, 0 newly installed, 1 to remove and 309 not upgraded.
Need to get 0B of archives.
After unpacking 4678kB disk space will be freed.
Do you want to continue [Y/n]? Y
(Reading database ... 174405 files and directories currently installed.)
Removing gaim ...
Purging configuration files for gaim ...

Všimněte si * za jménem balíčku ve výstupu aptu. Hvězdička ve výstupu aptu značí, že budou smazány i konfigurační soubory.

Podržení a/nebo snížení verze (downgrade) balíčku

Někdy může být nutné se vrátit k předchozí verzi balíčku nebo jeho verzi pozdržet, třeba kvůli významnému bugu v poslední verzi, kterou jste nainstalovali.

Pozdržení (hold)

echo balíček hold|dpkg --set-selections

Pro vyjmutí balíčku z pozdržení

echo balíček install|dpkg --set-selections

K vypsání pozdržených balíčků:

dpkg --get-selections | grep hold

Snižení verze (downgrading)

Debian nepodporuje downgrage balíčků. Přestože to může fungovat v jednoduchých případech, mohlo by vše také příkladně havarovat u ostatních balíčků. Prosím odkažte se na Nouzové snížení verze.

Přesto, že to není podporované, tak je známo, že pro některé jednoduché balíčky downgrade funguje. Kroky pro downgrade jednoduchých balíčků pomocí příkladu kmahjongg:

  1. Okomentuje zdroje unstable v /etc/apt/sources.list.d/debian.list with a #
  2. Přidejte zdroje testing do /etc/apt/sources.list.d/debian.list , například:
    deb http://ftp.nl.debian.org/debian/ testing main contrib non-free
    
  3. apt-get update
    
  4. apt-get install kmahjongg/testing
    
  5. Pozdržte nově nainstalovaný balíček:
    echo kmahjongg hold|dpkg --set-selections
    
  6. Okomentuje <#>zdroje testing v /etc/apt/sources.list.d/debian.list a odkomentuje zdroje unstabe, tak abyste je mohli znova používat:
  7. apt-get update
    
-->

Když chcete získat poslední verze balíčku, stačí provést:

echo kmahjongg install|dpkg --set-selections
apt-get update
apt-get install kmahjongg

apt-mark

apt-mark is a useful tool that shows you which packages are automatically or manually installed and offers the system administrator the opportunity to mark and hold packages that are not to be removed automatically. Read:

man apt-mark

Povýšení nainstalovaného systému (upgrade) - dist-upgrade - Přehled

Jestli má být celý systém povýšen, je toho docíleno pomocí dist-upgrade. Vždy byste měli zkontrolovat aktuální upozornění na hlavních stránkách aptosid a porovnat varování vzhledem k balíčkům, které chce váš systém pomocí dist-upgrade povýšit. Jestli potřebujete pozdržet balíček, odkažte se na Snížení verze a pozdržení balíčku.

Pouze 'upgrade' 'dabianu sid' není doporučován.

Frekvence dist-upgradů

Provádějte dist-upgrade tak často, jak můžete, ideálně jednou za jeden nebo dva týdny, alespoň ale jednou za měsíc, pro jistotu. Bezpečná hranice by měla být jednou za 2 až 3 měsíce. Pro nestandardní balíčku, nebo vlastnoručně kompilované, si musíte být více jisti při upgradu, jelikož můžou váš systém jednodušše kdykoliv zbortit kvůli nekomptatibilitě.

Po tom, co je databáze aktualizovaná s apt-get update, se můžete podívat, jaké balíčky mají nové/novější verze: (napřed nainstalujte apt-show-versions)

apt-show-versions -u
libpam-runtime/unstable upgradeable from 0.79-1 to 0.79-3
passwd/unstable upgradeable from 1:4.0.12-5 to 1:4.0.12-6
teclasat/unstable upgradeable from 0.7m02-1 to 0.7n01-1
libpam-modules/unstable upgradeable from 0.79-1 to 0.79-3.........

Aktualizace jedíného balíčku včetně závislostní může být provedena pomocí (příklad s gcc-4.0):

apt-get install gcc-4.0
Reading package lists... Done
Building dependency tree... Done
gcc-4.0 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and xxx not upgraded

Pouze stahování

Málo známá, ale skvělá volba, jak zkontrolovat, které balíčky jsou v dist-upgrage je vlajka -d:

apt-get update && apt-get dist-upgrade -d

-d vám umožňuje provést dist-upgrade bez instalace a zároveň v X prostředí prostřednictví konzole a tak vám umožňuje provést samotný dist-upgrade v init 3 později. Také vám to dává možnost zkontrolovat varování, jelikož je vám umožněno proces jednoduše ukončit nebo pokračovat dál:

apt-get dist-upgrade -d
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  elinks-data
The following packages have been kept back:
  git-core git-gui git-svn gitk icedove libmpich1.0ldbl
The following packages will be upgraded:
  alsa-base bsdutils ceni configure-ndiswrapper debhelper
  discover1-data elinks file fuse-utils gnucash.........
35 upgraded, 1 newly installed, 0 to remove and 6 not upgraded.
Need to get 23.4MB of archives.
After this operation, 594kB of additional disk space will be used.
Do you want to continue [Y/n]?Y 

Y stáhne povýšené balíčky bez toho, aby byly nainstalovány.

Poté, co 'dist-upgrade -d' stáhnul vše, a vy si přejete dokončit dist-upgrade, tak okamžitě nebo kdykoliv později proveďte prosím následující:

dist-upgrade - jednotlivé kroky

VŮBEC NIKDY neprovádějte dist-upgrade, ani upgrade, když jste v X.
Vždy zkontrolujte varování na hlavní stránkceaptosid. Varování jsou zde kvůli samotné podstatě nestabilního repozitáře (Debian sid), který sám je aktualizován čtyřikrát denně.
## Log out of KDE.  
## Go to Textmode by doing Ctrl+Alt+F1
## logon as root, and then type:
service kdm stop  ##If using another window manager replace kdm, for example with gdm
apt-get update
apt-get dist-upgrade
apt-get clean
service kdm start ##If using another window manager replace kdm, for example with gdm
NIKDY NEPROVÁDĚJTE DIST-UPGRADE [nebo UPGRADE] pomocí adept, synaptic nebo aptitude.

Jestli se vám nechce jít do init 3, tak vaše smůla, byli jste varování.

Důvody, proč NEpoužívat nic jiného než apt-get pro dist-upgrade

Správci balíčků jako adept, synaptic, aptitude a kpackage nejsou vždy schopni vzít v potaz takové velké množství změn, které nastávají v sidu (změny závislostí, jmen, skriptů ...).

Toto ale není chyba vývojářů těchto nástorjů. Píší skvělé utility, které jsou úžasné pro stabilní větev Debianu, ale prostě a jednodušše se nehodí pro tak zvláštní požadavky, jaké má Debian sid.

Používejte cokoliv chcete pro hledání balíčků, ale držte se používání apt-get pro vlastní instalaci/odstranění/dist-upgrade.

Správci balíčků jako adept, aptitude, synaptic a kpackagge jsou minimálně nedeterministcké (pro komplexní výběr balíčků). Spojte to s rychle se měnící zdrojem jako sid, či ještě hůře s externím řepozitářem pochybné kvality (ty nedoporučujeme, ale na vašem uživatelské systému budou nejspíš realitou) a zaděláváte si na pěkný malér.

The other item to note is that all of these types of GUI package managers need to run in in X, and in doing a dist-upgrade in X, (or even an 'upgrade' which is not recommended), you will end up damaging up your system beyond repair, maybe not today or tomorrow, however in time you will.

apt-get na druhé straně striktně dělá, co je po něm žádáno. Pokud je zde nějáká chyba, můžete na ni poukázat a debugovat/opravit příčinu. Pokud chce apt-get odebrat polovinu systému (kvůli změně knihoven), tak je to znamení pro administrátora (to jste vy), aby se na to alespoň vážně podíval

To je důvod, proč buildy debianu používají apt-get, ne jiné správce balíčků.

Hledání balíčku s apt-cache

Další velmi užitečný příkaz v systému APT je apt-cache; prohledává databázi APTu a ukáže informace o balíčcích; například seznam všech balíčků, které obsahují nebo odakzují na "aptosid" a "manuál", může být zobrazen takto:

$ apt-cache search aptosid manual
.......
aptosid-manual-common - the official aptosid manual - common files
aptosid-manual-es - the official Spanish aptosid manual
aptosid-manual-de - the official German aptosid manual
aptosid-manual-el - the official Greek aptosid manual
aptosid-manual - the official aptosid manual - all languages
aptosid-manual-pt-br - the official Brazilian Portuguese aptosid manual
aptosid-manual-en - the official English aptosid manual
aptosid-manual-reader - aptosid manual reader

Pokud chcete více informací o určitém balíčku, použijte:

$ apt-cache show aptosid-manual-en
Package: aptosid-manual-en
Priority: optional
Section: doc
Installed-Size: 1088
Maintainer: Kel Modderman <kel@otaku42.de>
Architecture: all
Source: aptosid-manual
Version: 01.12.2007.06.03-1
Depends: aptosid-manual-common
Filename: pool/main/s/aptosid-manual/aptosid-manual-en_01.12.2007.06.03-1_all.deb
Size: 391222
MD5sum: 60f2175c3c5709745a4b4256ccc3c49d
SHA1: e275a0b27628b6aa210a4ced48d3646b438e78b8
SHA256: 2792580c7a091521301064180a1d0d8901f0a4af407b90432b9f8d8b6b3603ca
Description: the official en aptosid manual
 This manual is divided into common sections, for example, .......

Všechny instalovatelné verze balíčku (závisí na vašem sources.list) může být vyčteny takto:

$ apt-cache policy aptosid-manual-cz
aptosid-manual-cz:
  Installed: (none)
  Candidate: 01.92.2009.09.14-1
  Version table:
01.92.2009.09.14-1 0
        500 http://aptosid.com sid/main Packages

Kompletní popis systému APT může být nalezen v APT-HOWTO

Když poprvé spustíte Debian Package Search, musítě nejprve upravit Packagesearch>Preferences, aby bylo použito apt-get.

Please do not use Packagesearch to install packages, use it only as a GUI search engine. Upgrading packages and installing new packages without stopping X can cause problems. Please read Installing a new package.

On initial use you may be prompted to install deborphan. Please use with care.

-->

Při prvním použití můžete být vyzvání k instalaci deborphanu. Používejte jej prosím obezřetně.

Vyhledávání může být učiněno dle

Dodatečně je zobrazeno velké množství informací o balíčcích, včetně souborů, které k nim patří. Prosím přečtěte si Help>Contents pro úplné vysvětlení, jako používát aplikaci s grafický rozhraním Debian Package Search. Momentálně je grafické rozhraní pouze v angličtině.

-->

Kompletní popis systému APT může být nalezen v APT-HOWTO

Obsah naposledy revidován 31/12/2014 1540 UTC