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 #

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 #

Links zum Thema #

Tags:  Debian, APT

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-9) was last changed on 15-Jul-2017 11:15 by ThomasBayen