= 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.debian.org/doc/manuals/maint-guide/index.de.html])
* 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.

https://serverfault.com/questions/22414/how-can-i-run-debian-stable-but-install-some-packages-from-testing

== 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 =

[{HasTagOf APT}]

= 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
*
[http://www.debianplanet.org/article.php?sid=167&mode=thread&order=0
debianplanet article part 1] - Interessante Einführung auf
www.debianplanet.org (englisch)
* [http://www.debianplanet.org/article.php?sid=168&mode=thread&order=0 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

[{Tag Debian APT}]