Paketverwaltung mit apt und dpkg #
Bei diesen beiden Programmen (und einigen anderen Verwandten derselben) handelt es sich um die Imlementation des Debian-Paketverwaltungssystems. Der zugrundeliegende Paketmanager des Debian-Betriebssystems ist dpkg. Es ist vergleichbar mit rpm, das bei einigen anderen Distributionen benutzt wird.
Zusätzlich gibt es noch apt, das eine Verbindung zu einem Debian-Mirror herstellt und damit die Pakete verwaltet, die gar nicht installiert sind. Ein solcher Mirror kann im einfachsten Fall eine CD sein, ein lokaler DebianMirror, kann aber auch ftp://ftp.debian.org sein, womit man sein System immer automatisch auf dem aktuellen Stand halten kann. Es ist so möglich, immer "State of the Art" zu sein, oder aber auch nur wichtige Security-Fixes automatisch einzuspielen.
/etc/apt/sources.list #
In dieser Datei sind die Quellen aufgeführt, aus denen apt seine Pakete holt. Als Beispiel hier mal meine Datei:
deb http://ftp.freenet.de/debian/ woody main non-free contrib deb http://ftp.freenet.de/debian-non-US/ woody non-US/main non-US/contrib non-US/non-free deb http://security.debian.org/debian-security woody/updates main contrib non-free
Debian-Pakete selber erstellen #
- http://www.kclee.com/clemens/unix/HowToCreateYourOwnDebianPackage.html - Sehr einfach gehaltene Einführung in das Thema
- http://www.debian.org/doc/maint-guide/ - Die offizielle Bibel zum Thema (auch in deutscher Übersetzung)
- http://www-106.ibm.com/developerworks/linux/library/l-debpkg.html - gute Einführung von IBM
- http://linuxdevices.com/articles/AT8047723203.html - gutes HOWTO zum Thema
- http://women.alioth.debian.org/wiki/index.php/English/BuildingWithoutHelper - Pakete ganz ohne Hilfsprogramme
Pinning #
Wenn man mehrere Quellen in der sources.list angibt, kann man Prioritäten vergeben, welche Pakete denn nun wirklich installiert werden. Am einfachsten geht das (siehe z.B. UnstablePaketeNutzen) mit der -t-Option von apt-get, also z.B. mit
apt-get -t stable
Wer diese Einstellung fest vorgeben will, kann in die Datei /etc/apt/apt.conf folgendes schreiben:
APT { Default-Release "testing"; };
Dann werden alle Pakete, die durch diesen Befehl installiert werden, aus der angegebenen Distribution genommen. Gibt man hingegen als Paketnamen meinpaket/unstable an, so wird nur dieses eine Paket aus unstable geholt.
Darüberhinaus kann man per sogenanntem "pinning" Prioritäten für verschiedene Pakete und Paketgruppen vergeben. Dazu sollte man man apt_preferences lesen. Wer sich damit auskennt, kann aber Erfahrungen auch gerne hier niederschreiben...
Mehrere Releases gleichezeitig verwenden #
In diesem Artikel ist eine Methode erklärt, wie man mehrere Releases gleichzeitig angeben kann. Die Pakete werden jeweils mit Prioritäten versehen, so das man normalerweise immer die stabilen Pakete bekommt, ausser man installiert etwas explizit aus einer anderen Release oder man installiert ein Paket, das nur in einer neueren Release enthalten ist. (ICh brauchte das z.B., um in Debian Stretch den calendarserver zu installieren, der zwar im älteren Wheezy (in einer veralteten Version) drin war, aber auf Grund einiger Probleme in Stretch nicht drin ist, aber in sid.
Downgrading einzelner Pakete #
Ich habe bemerkt, daß das Programm DosEmu in der Version 1.4.0 nicht richtig funktioniert (der Netzwerkzugriff ist stark gestört). Da ich ansonsten seit Jahren mit dem Programm (in Version 1.2.2) zufrieden bin, nun aber mein System auf Debian Lenny upgegraded (schönes Wort) habe, möchte ich eigentlich nur dieses eine Paket in einer älteren Version benutzen. Das geht ganz leicht! Ich muss in der sources.list beide Distributionen angeben (die veraltete "etch", die dosemu 1.2.2 enthält und die aktuelle "lenny", die dosemu 1.4.0 enthält). Sicherheitshalber kann ich mit obiger Methode in apt.conf lenny als "Default-Release" angeben. Das sollte jedoch nicht nötig sein, da automatisch immer die Pakete mit der aktuelleren Versionsnummer genommen werden.
Der Trick kommt jetzt in die Datei /etc/apt/preferences. Hier schreibe ich folgendes hinein:
Package: dosemu Pin: version 1.2.2* Pin-Priority: 1001
Nun mache ich ein aptitude upgrade und dann ein aptitude install. Das war's auch schon. In Zukunft bleibt die von mir bevorzugte Version auch bei späteren Upgrades immer erhalten. Wer genaueres dazu wissen möchte, sollte man apt_preferences lesen.
Super-Kuh-Kräfte #
Jeder, der bis hierher mitgelesen hat, kennt sicher die Hilfe von apt-get. Wenn ihr in der Hilfe zum Ende gekommen seid, wißt ihr: APT hat Super-Kuh-Kräfte!
$ apt-get --help apt 0.5.28.6 für linux i386 kompiliert am Mar 22 2005 07:17:03 Aufruf: apt-get [Optionen] Befehl apt-get [Optionen] install|remove pkg1 [pkg2 ...] [...] Siehe auch die Man-Seiten apt-get(8), sources.list(5) und apt.conf(5) für weitergehende Informationen und Optionen. '''Dieses APT hat Super-Kuh-Kräfte.'''
Probiert es aus!
$ apt-get moo
Jetzt haben wir Debian Sarge und benutzen aptitude -- leider ohne Super-Kuh-Kräfte
$ aptitude --help aptitude 0.2.15.9 Verwendung: aptitude [-S dname] [-u|-i] aptitude [Optionen] <Aktion> ... [...] '''Dieses Aptitude hat keine Super-Kuh-Kräfte.'''
$ aptitude moo $ aptitude -v moo $ aptitude -vv moo [...]
Paket-Abhängigkeit umgehen #
Den Artikel, um Apt Abhaengigkeiten Umgehen zu können habe ich auf eine eigene Seite geschrieben.
Weitere Seiten zum Thema #
AptAufZweitePartition
AptFile
AptPaketverwaltung
AptProxy
DeBootstrapBasisSystem
DebianMirror.AptMove
InstallationenAbgleichen
UnstablePaketeNutzen
Links zum Thema #
- http://www.schlittermann.de/deb-intern/dpkg - Gut geschriebene APT-Erläuterung auf deutsch
- LinuxWiki:apt - Kurze Einführung ins Thema auf deutsch
- debianplanet article part 1 - Interessante Einführung auf www.debianplanet.org (englisch)
- debianplanet article part 2 - ...zweiter Teil
- UnstablePaketeNutzen
- DebianKernelKompilieren
- http://www.debian.org/doc/manuals/apt-howto/index.de.html - Das ist die originale Doku, in der eigentlich alles steht, also RTFM!
- http://www.apt-get.org - Liste von unoffiziellen Debian-Paketsammlungen (sehr umfangreich)
- http://checkinstall.izto.org/index.php - Programm, das automatisch Pakete verschiedener Formate (dpkg, rpm, slackware) erzeugt
- http://www.linux-magazin.de/Artikel/ausgabe/2002/11/apt/apt.html - sehr guter (deutscher) Artikel zum Pinning