Ein kleines APT-Kochbuch
Was bedeutet APT?
APT ist eine Abkürzung für Advanced Packaging Tool und stellt eine Sammlung von Programmen und Skripten, welche root bei der Installation und Verwaltung von Deb- Packete unterstützen.
Das "APT"-System benötigt dafür eine Konfigurationsdatei /etc/apt/sources.list, diese enthält die Information, aus welchen Quellen die zu installierenden Pakete geholt werden sollen. Ein Beispiel einer solchen Datei aus einer typischen sidux Installation wird nachfolgend präsentiert.
ZUR BEACHTUNG: in diesem Beispiel wird der deutsche Debian-Mirrorserver beginnend mit ftp.de verwendet. Diese Einstellung kann als Root geändert werden, indem der Landes-Code angepasst wird wie ftp.us, ftp.uk. Die meisten Länder haben lokale Debian-Mirrors zur Verfügung. Dies bietet für den Anwender eine höhere Anbindungsgeschwindigkeit und spart auch Bandbreite.
# See sources.list(5) for more information, especialy # Remember that you can only use http, ftp or file URIs # CDROMs are managed through the apt-cdrom tool. deb http://ftp.debian.org/debian/ sid main #deb-src http://ftp.debian.org/debian/ sid main #deb http://ftp.debian.org/debian/ testing main #deb-src http://ftp.debian.org/debian/ testing main #deb http://ftp.debian.org/debian/ experimental main #deb-src http://ftp.debian.org/debian/ experimental main deb http://sidux.com/debian/ sid main fix.main #deb-src http://sidux.com/debian/ sid main fix.main
Um aktualisierte Informationen über die Pakete zu erhalten, wird eine Datenbank mit den benötigten Einträgen vorgehalten. Das Programm apt-get benutzt sie bei der Installation eines Paketes, um alle Abhängigkeiten aufzulösen und somit zu garantieren, dass die ausgewählten Pakete funktionieren. Die Erneuerung bzw. Aktualisierung dieser Datenbank wird durch das Kommando apt-get update durchgeführt.
# apt-get update Get:1 http://sidux.com sid Release.gpg [189B] Get:2 http://sidux.com sid Release.gpg [189B] Get:3 http://sidux.com sid Release.gpg [189B] Get:4 http://ftp.de.debian.org unstable Release.gpg [189B] Get:5 http://sidux.com sid Release [34.1kB] Get:6 http://ftp.de.debian.org unstable Release [79.6kB]
Wie Installiere ich eine neues Paket?
Vorausgesetzt, dass die APT-Datenbank aktualisiert ist und der Name des Paketes bekannt ist, dann reicht folgendes Kommando (weiter unten wird gezeigt, wie man ein Paket finden kann):
# apt-get install gaim Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden zusätzlichen Pakete werden installiert: libavahi-compat-howl0 libgstreamer0.10-0 Vorgeschlagene Pakete: libgadu3 libmeanwhile1 libzephyr3 gstreamer0.10-tools gstreamer0.10-plugins Empfohlene Pakete: gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-alsa gstreamer0.10-esd Die folgenden NEUEN Pakete werden installiert: gaim libavahi-compat-howl0 libgstreamer0.10-0 0 aktualisiert, 3 neu installiert, 0 zu entfernen und 1 nicht aktualisiert. Es müssen 2365kB Archive geholt werden. Nach dem Auspacken werden 6578kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren [J/n]? Hole:1 http://ftp.de.debian.org unstable/main libavahi-compat-howl0 0.6.15-2 [35,4kB] Hole:2 http://ftp.de.debian.org unstable/main libgstreamer0.10-0 0.10.10-2 [651kB] Hole:3 http://ftp.de.debian.org unstable/main gaim 1:2.0.0+beta5-8 [1679kB] Es wurden 2365kB in 4s geholt (518kB/s) Wähle vormals abgewähltes Paket libavahi-compat-howl0. (Lese Datenbank ... 138649 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke libavahi-compat-howl0 (aus .../libavahi-compat-howl0_0.6.15-2_i386.deb) ... Wähle vormals abgewähltes Paket libgstreamer0.10-0. Entpacke libgstreamer0.10-0 (aus .../libgstreamer0.10-0_0.10.10-2_i386.deb) ... Wähle vormals abgewähltes Paket gaim. Entpacke gaim (aus .../gaim_1%3a2.0.0+beta5-8_i386.deb) ... Richte libavahi-compat-howl0 ein (0.6.15-2) ... Richte libgstreamer0.10-0 ein (0.10.10-2) ... Richte gaim ein (2.0.0+beta5-8) ...
Entfernen eines Paketes:
Ähnlich ist der Befehl zum Deinstallieren eines Programmpaketes. Beachtet muss werden, dass abhängige Programmpakete nicht mit entfernt werden. Dies wird später unter deb-orphan behandelt.
# apt-get remove gaim Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden Pakete werden ENTFERNT: gaim 0 aktualisiert, 0 neu installiert, 1 zu entfernen und 1 nicht aktualisiert. Es müssen 0B Archive geholt werden. Nach dem Auspacken werden 4678kB Plattenplatz freigegeben worden sein. Möchten Sie fortfahren [J/n]? (Lese Datenbank ... 138763 Dateien und Verzeichnisse sind derzeit installiert.) Entferne gaim ...
In dem letzten Fall werden die Konfigurationsdateien nicht vom System entfernt, sie können bei einer späteren Neuinstallation des Programmpakets (im Beispielfall gaim) wieder verwendet werden. Sollen auch die Konfigurationsdateien entfernt werden, dann wird folgender Aufruf benötigt:
# apt-get remove --purge gaim Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden Pakete werden ENTFERNT: gaim* 0 aktualisiert, 0 neu installiert, 1 zu entfernen und 1 nicht aktualisiert. Es müssen 0B Archive geholt werden. Nach dem Auspacken werden 4678kB Plattenplatz freigegeben worden sein. Möchten Sie fortfahren [J/n]? (Lese Datenbank ... 138763 Dateien und Verzeichnisse sind derzeit installiert.) Entferne gaim ... Lösche Konfigurationsdateien von gaim ...
In diesem Fall wurden die Konfigurationseinstellungen mit dem Programmpaket gaim gelöscht, jedoch nicht die Programmpakete, von denen gaim abhängig ist.
Nachdem die interne Datenbank aktualisiert wurde, kann man herausfinden, für welche Pakete eine neuere Version existiert:
# apt-show-versions -u |grep upgrade 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 fonts-ttf-west-european/unstable upgradeable from 1.3-9 to 1.3-1-1 fonts-ttf-decoratives/unstable upgradeable from 1.3-1 to 1.3-1-1 sysv-rc/unstable upgradeable from 2.86.ds1-3 to 2.86.ds1-4 libpam0g/unstable upgradeable from 0.79-1 to 0.79-3 unionfs-utils/unstable upgradeable from 1.0.14+cvs2005092318w-M1 to 1.0.14+cvs2005092908w-�2
Die Aktualisierung eines einzelnes Paketes (hier z. B. debtags-1.6.6.0) kann unter Berücksichtigung der Abhängigkeiten vorgenommen werden mit:
# apt-get install debtags-1.6.6.0 Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Die folgenden Pakete werden ENTFERNT: apt-index-watcher Die folgenden Pakete werden aktualisiert: debtags 1 aktualisiert, 0 neu installiert, 1 zu entfernen und 0 nicht aktualisiert. Es müssen 660kB Archive geholt werden. Nach dem Auspacken werden 1991kB Plattenplatz freigegeben worden sein. Möchten Sie fortfahren [J/n]? Hole:1 http://ftp.de.debian.org unstable/main debtags 1.6.6 [660kB] Es wurden 660kB in 1s geholt (513kB/s) (Lese Datenbank ... 138695 Dateien und Verzeichnisse sind derzeit installiert.) Entferne apt-index-watcher ... (Lese Datenbank ... 138692 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereiten zum Ersetzen von debtags 1.6.2 (durch .../debtags_1.6.6_i386.deb) ... Entpacke Ersatz für debtags ... Richte debtags ein (1.6.6) ... Installiere neue Version der Konfigurationsdatei /etc/debtags/sources.list ...
Aktualisierung des installierten Systems:
Wenn das Gesamtsystem aktualisiert werden soll, dann ist dies durch ein "dist-upgrade" zu machen. Bitte immer genau beachten, welche Programmpakete ein Upgrade erfahren.
Für Upgrades soll grundsätzlich die graphische Oberfläche verlassen und die Aktualisierung in einer Textkonsole durchgeführt werden. Es ist möglich, die Pakete zuerst herunterzuladen und im Anschluss in die TextKonsole zu wechseln). Diese kleine Vorsichtsmaßnahme kann unter Umständen Stunden an Rekonfigurationsarbeit ersparen.
(Nur) Downloaden:
# apt-get dist-upgrade -d
Diese Option ist wenig bekannt, hat aber den Vorteil, dass man diesen Prozess stoppen und weiterführen kann:
apt-get dist-upgrade -d xxx upgraded, 30 newly installed, 25 to remove and 2 not upgraded. Need to get 342MB of archives. After unpacking 3916kB of additional disk space will be used. Do you want to continue [Y/n]? Y (Y will download the upgraded packages without touching the installed system)
Nach "dist-upgrade -d" gehen Sie bitte wie im folgenden Punkt beschrieben vor.
Downloaden und installieren:
# apt-get dist-upgrade Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut... Fertig Berechne Upgrade...Fertig Die folgenden Pakete sind zurückgehalten worden: debtags Die folgenden Pakete werden aktualisiert: configure-dsl infobash sshstart-sidux 3 aktualisiert, 0 neu installiert, 0 zu entfernen und 1 nicht aktualisiert. Es müssen 33,9kB Archive geholt werden. Nach dem Auspacken werden 4096B Plattenplatz freigegeben worden sein. Möchten Sie fortfahren [J/n]? Hole:1 http://sidux.com sid/main configure-dsl 0.4.12 [10,2kB] Hole:2 http://sidux.com sid/main sshstart-sidux 0.5.13 [9608B] Hole:3 http://sidux.com sid/main infobash 2.53 [14,1kB] Es wurden 33,9kB in 0s geholt (161kB/s) (Lese Datenbank ... 138649 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereiten zum Ersetzen von configure-dsl 0.4.11 (durch .../configure-dsl_0.4.12_all.deb) ... Entpacke Ersatz für configure-dsl ... Vorbereiten zum Ersetzen von sshstart-sidux 0.5.12 (durch .../sshstart-sidux_0.5.13_all.deb) ... Entpacke Ersatz für sshstart-sidux ... Vorbereiten zum Ersetzen von infobash 2.52 (durch .../archives/infobash_2.53_all.deb) ... Entpacke Ersatz für infobash ... Richte configure-dsl ein (0.4.12) ... Richte sshstart-sidux ein (0.5.13) ... Richte infobash ein (2.53) ...
Bitte NIEMALS "apt-get dist-upgrade" oder "apt-get upgrade" in der graphischen Umgebung X durchführen.
Besuchen Sie vor einem Upgrade die sidux-Homepage, um eventuelle Upgradewarnungen in Erfahrung zu bringen. Diese Warnungensind wegen der Struktur von Debian sid/unstable notwendig, welches täglich neue Programmpakete in seine Repositorien aufnimmt.
Vorgehen: Abmeldung aus der KDE Desktop-Umgebung und mit Ctrl+Alt+F1 in den Textmodus wechseln; anmelden als root, im Anschluss Eingabe von "init 3" (ohne Anführungszeichen); die weiteren Befehle sind: apt-get update; apt-get dist-upgrade; fix-fonts. Schließlich können die Skripte zur Installation von 3D-Grafiktreibern angewendet werden (nach einem Update von xorg und bei Verwendung dieser Treiber ist die Neuinstallation der Grafiktreiber sehr empfohlen). Abschluss des Upgrades bildet "init 5 && exit".
Und nochmal unsere Warnung: Bitte NIEMALS ein dist-upgrade oder upgrade mit einem graphischen Programm wie synaptic, adept oder kpackage durchführen!
Mit apt-cache nach Programmpaketen suchen
Ein sehr nützlicher Befehl im APT-System ist apt-cache, damit werden die APT-Datenbank durchsucht und Informationen über die Pakete ausgegeben; z. B. die Liste aller Pakete, die einen "screensaver" enthalten oder ansprechen, erhält man durch folgenden Befehl:
# apt-cache search screensaver brightside - Add reactivity to the corners and edges of your GNOME desktop chbg - tool for changing the desktop background image in X11 cmatrix - Console Matrix simulates the display from "The Matrix" electricsheep - screensaver showing collective dream of sleeping computers epplets - The Epplets for the Enlightenment Window Manager gkrellshoot - Plugin for gkrellm to lock the screen and make screenshots kscreensaver - additional screen savers released with KDE kscreensaver-xsavers - KDE hooks for standard xscreensavers ktux - Tux screensaver for KDE lg-issue24 - Issue 24 of the Linux Gazette. lockvc - screensaver to lock your Linux console(s) rss-glx - Really Slick Screensavers GLX Port shermans-aquarium - Sherman's aquarium applet for GNOME 2 wmmatrix - View The Matrix in a Window Maker dock application xscreensaver - Automatic screensaver for X xscreensaver-gl - GL(Mesa) screen hacks for xscreensaver ksetisaver - SETI screensaver for KDE
Möchte man mehr Informationen über die aktuellen Versionen eines Paketes, dann benutzt man:
# apt-cache show xscreensaver Package: xscreensaver Priority: optional Section: x11 Installed-Size: 9728 Maintainer: Ralf Hildebrandt;ralf.hildebrandt@charite.de Architecture: i386 Version: 4.21-7 Depends: libatk1.0-0 (>= 1.9.0), libc6 (>= 2.3.5-1), libglade2-0 (>= 1:2.5.1), libglib2.0-0 (>= 2.8.0), libgtk2.0-0 (>= 2.6.0), libice6 | xlibs (>> 4.1.0), libjpeg62, libpam0g (>= 0.76), libpango1.0-0 (>= 1.8.2), libsm6 | xlibs (>> 4.1.0), libx11-6 | xlibs (>> 4.1.0), libxext6 | xlibs (>> 4.1.0), libxinerama1, libxml2 (>= 2.6.21), libxmu6 | xlibs (>> 4.1.0), libxpm4 | xlibs (>> 4.1.0), libxrandr2 | xlibs (>> 4.3.0), libxrender1 (>> 1:0.9.0-1), libxt6 | xlibs (>> 4.1.0), libxxf86misc1, libxxf86vm1, zlib1g (>= 1:1.2.1) Recommends: xli | xloadimage, libjpeg-progs, perl5, miscfiles | wordlist Suggests: netpbm, xdaliclock, xscreensaver-gl, fortune, www-browser, qcam | streamer Conflicts: funny-manpages ( 1.3-1), suidmanager ( 0.50), xscreensaver-gnome ( 4.09-2), xscreensaver-nognome ( 4.09-2), gnome-control-center ( 1:2) Filename: pool/main/x/xscreensaver/xscreensaver_4.21-7_i386.deb Size: 3747878 MD5sum: ae0650bafe4834f9c6459d75544d1ddb Description: Automatic screensaver for X The purpose of xscreensaver is to display pretty pictures on your screen when it is not in use, in keeping with the philosophy that unattended monitors should always be doing something interesting, just like they do in the movies.
The benefit that this program has over the combination of the xlock and xautolock programs is the ease with which new graphics hacks can be installed: you don't need to recompile this program to add a new display mode, you just change some resource settings. Any program which can be invoked in such a way that it draws on the root window of the screen can now be used as a screensaver without modification. The programs that are being run as screensavers don't need to have any special knowledge about what it means to be a screensaver.
Tag: interface::x11, uitoolkit::gtk, x11::screensaver Task: gnome-desktop Package: xscreensaver Priority: optional Section: x11 Installed-Size: 10032 Maintainer: Ralf Hildebrandt ralf.hildebrandt@charite.de Architecture: i386 Version: 4.21-5 Depends: libatk1.0-0 (>= 1.9.0), libc6 (>= 2.3.2.ds1-21), libglade2-0 (>= 1:2.5.1), libglib2.0-0 (>= 2.6.0), libgtk2.0-0 (>= 2.6.0), libice6 | xlibs (>> 4.1.0), libjpeg62, libpam0g (>= 0.76), libpango1.0-0 (>= 1.8.1), libsm6 | xlibs (>> 4.1.0), libx11-6 | xlibs (>> 4.1.0), libxext6 | xlibs (>> 4.1.0), libxml2 (>= 2.6.16), libxmu6 | xlibs (>> 4.1.0), libxpm4 | xlibs (>> 4.1.0), libxrandr2 | xlibs (>> 4.3.0), libxrender1, libxt6 | xlibs (>> 4.1.0), zlib1g (>= 1:1.2.1) Recommends: xli | xloadimage, netpbm, libjpeg-progs, perl5, miscfiles | wordlist Suggests: xdaliclock, xscreensaver-gl, fortune, www-browser, qcam | streamer Conflicts: xscreensaver-gnome ( 4.09-2), xscreensaver-nognome ( 4.09-2), gnome-control-center ( 1:2) Filename: pool/main/x/xscreensaver/xscreensaver_4.21-5_i386.deb Size: 3850212 MD5sum: 4c4d20ef312359cf836f3164a6eac293
Description: Automatic screensaver for X The purpose of xscreensaver is to display pretty pictures on your screen when it is not in use, in keeping with the philosophy that unattended monitors should always be doing something interesting, just like they do in the movies.
The benefit that this program has over the combination of the xlock and xautolock programs is the ease with which new graphics hacks can be installed: you don't need to recompile this program to add a new display mode, you just change some resource settings. Any program which can be invoked in such a way that it draws on the root window of the screen can now be used as a screensaver without modification. The programs that are being run as screensavers don't need to have any special knowledge about what it means to be a screensaver.
Tag: interface::x11, uitoolkit::gtk, x11::screensaver Task: gnome-desktop
Eine vollständige Beschreibung des APT-Systems findet man im APT-HOWTO

