Apt
Aus
6.7 APT und Verwandte Datei Packages.gz vom deb Server holen(info über Pakete)
6.7 APT und Verwandte
- 6.7.1 APT konfigurieren;6.7.2 apt-setup;6.7.3 apt-cdrom;6.7.4 apt-get;6.7.5 apt - Offline nutzen;6.7.6 apt-rdepends;6.7.7 apt-cache;6.7.8 apt-cacher;6.7.9 apt-proxy;6.7.10 apt-move;6.7.11 apt-ftparchive;6.7.12 apt-show-source;6.7.13 apt-show-versions;6.7.14 auto-apt;6.7.15 apt-listchanges;6.7.16 apt-listbugs;6.7.17 apt-config;6.7.18 apt-spy;6.7.19 aptitude;[http://en.wikipedia.org/apt.html#gnome-apt 6.7.20
gnome-apt];6.7.21 Synaptic
APT („A Package Tool“) stellt die nächste Generation der Debian GNU/Linux-Paketverwaltung dar.
In diesem Abschnitt wird zunächst auf die Konfiguration und Benutzung von Kommandozeilentools wie apt und dpkg sowie deren Verwandten eingegangen. Später werden dann auch grafische Frontends zur Paketverwaltung beschrieben.
Wenn Sie APT bereits über das Programm dselect
als Installationsmethode benutzt haben, so haben Sie wahrscheinlich bereits APT auf Ihre Bedürfnisse angepasst. Hier noch einige weitergehende Informationen zu APT:
APT steht für „A Package Tool“, ein Programm also, welches den Systemadministrator bei der Installation und Verwaltung von Programmen unterstützen soll. Der erste Schritt zur Benutzung von APT ist die Anpassung der Konfigurationsdatei /etc/apt/sources.list . In dieser Datei befinden sich die Informationen, von welcher Quelle die Pakete geholt werden sollen. APT unterstützt eine große Zahl verschiedener Installationsquellen. Momentan sind dies: cdrom, file, http und ftp. Jede dieser Quellen wird in einer einzelnen Zeile in der Datei beschrieben. Dabei wird auch die Reihenfolge berücksichtigt; Weiter oben stehende Einträge haben eine höhere Priorität.
Das Format der Einträge läßt sich wie folgt beschreiben:
deb uri distribution [component1] [component2] [...]
Ein Eintrag könnte also wie folgt aussehen:
deb ftp://ftp.debian.org/debian stable main
In der ersten Spalte findet sich der Hinweis auf die Art der Quelle. Mögliche Werte sind hier deb für Debian-Pakete im Binärformat (dies ist der gebräuchliste Wert) oder aber deb-src für Pakete, die im Quellcode vorliegen. Einträge der letzteren Art benötigt man beispielsweise, um ein Paket aus den Quellpaketen neu zu übersetzen.
Das Feld uri beschreibt die Installationsquelle und den Pfad zum „root“-Verzeichnis der Debian-Distribution. Auf einer CD-ROM und auf vielen Debian-FTP-Servern ist der Pfad im Normalfall das Verzeichnis /debian .
Mit dem Feld distribution stellen Sie die gewünschte Version ein, die Sie installieren möchten. Normalerweise wird man sich zwischen stable für die aktuelle, stabile Version oder für unstable, die Entwicklerversion, sowie testing, die nächste zu veröffentlichende Version, entscheiden. Wie schon am Anfang dieses Buches beschrieben, bekommt jede Debian-Version einen Namen. Sie können auch diesen Namen hier einsetzen, also woody für die Version 3.0 oder sarge für die Version 3.1 bzw.
sid für die immer in der Entwicklung befindlichen, aktuellsten Pakete.
Die Felder „component“ werden mit den einzelnen Bereichen der Distribution gefüllt. Hier können beispielsweise main, contrib, non-free, non-US stehen. Zulässig sind ein oder mehrere Einträge, die durch Leerzeichen voneinander getrennt werden.
Nun noch einige genauere Informationen zu den Installationsquellen:
- file
dient zur Benutzung eines Verzeichnisses als Quelle für die Pakete. Dies kann ein lokales oder ein per NFS gemountetes Verzeichnis sein.
- cdrom
benutzt ein lokal installiertes CD-ROM-Laufwerk als Installationsquelle. Wenn die Distribution auf mehreren CDs vorliegt, wird auch dies unterstützt. Benutzen Sie das Programm apt-cdrom, um die nötigen Einträge in der Datei /etc/apt/sources.list vorzunehmen, oder benutzen Sie das Programm apt-setup.
- http
benutzt einen HTTP-Server als Installationsquelle. Wenn die Shell-Umgebungsvariable $http_proxy gesetzt ist (im Format: http://server:port/ ), so wird dieser anstelle einer direkten Verbindung zum Server benutzt. Sie können auch Proxy-Server, die eine Authentifizierung verlangen, benutzen. Hierzu ist der Proxy im Format: http://user:pass@server:port/ anzugeben. Bitte beachten Sie, dass die Benutzernamen und Passwörter auf diesem Wege unverschlüsselt übertragen werden.
- ftp
stellt sicher die am häufigsten verwendete Methode für APT dar. Die Daten werden per FTP (File Transfer Protocol) auf den Rechner übertragen. Ein Beispiel finden Sie weiter unten.
- copy
Diese Methode ist identisch mit der Methode „file“, mit dem Unterschied, dass die Pakete vor der Installation in das Verzeichnis /var/apt/cache/archives/ kopiert werden. Dies kann zum Beispiel auf Systemen Sinn machen, die keine Verbindung zum Netz haben und per ZIP-Medium aktualisiert werden sollen.
Hier nun einige Beispiele. Denken Sie daran, dass Sie durchaus mehrere dieser Einträge in der Konfigurationsdatei gleichzeitig verwenden können.
deb http://www.debian.org/archive stable main contrib
Ein solcher Eintrag benutzt das Archiv auf http://www.debian.org
mit den Bereichen stable/main und stable/contrib.
Folgender Eintrag holt die Dateien via FTP aus dem Verzeichnis /debian. Es wird die noch nicht fertige („unstable“) Version von Debian GNU/Linux benutzt und auf die Bereiche main, contrib und non-free zugegriffen:
deb ftp://ftp.debian.org/debian unstable main contrib non-free
Nochmal ein ähnlicher Eintrag, diesmal für die stabile Version und lediglich den Bereich main.
deb ftp://ftp.debian.org/debian stable main
Wenn Sie die beiden vorhergehenden Zeilen in Ihrer Konfiguration einsetzen, werden beide Zeilen in einem FTP-Zugriff bearbeitet.
deb file:/home/fr/debian stable main contrib non-free
Ein solcher Eintrag benutzt eine lokale Kopie der Daten auf der Festplatte. Dies kann auch ein per NFS gemountetes Verzeichnis sein.
Mit apt-setup können über eine Benutzeroberfläche die Einträge in der Datei /etc/apt/sources.list ergänzt werden. apt-setup kann hierzu die Methoden „http“, „ftp“ und „filesystem“ benutzen, für die Methode „cdrom“ wird auf das Programm apt-cdrom
zurückgegriffen. Ein weiterer Menüpunkt („edit sources list by hand“) ruft einen Editor (vi) auf; Sie können dann weitere Einträge von Hand aufnehmen. Nach Verlassen des Editors wird versucht, von den angegebenen Quellen die Packages-Dateien zu lesen.
Abbildung 6.4. apt-setup
Als einzige Option kann beim Starten der Wert „probe“ übergeben werden. Dies führt dazu, dass eine eingelegte CD-ROM sofort eingelesen wird.
Dieses Kommando wird von
apt-setup zur Integration von neuen CD-ROMs verwendet, kann aber auch eigenständig auf der Kommandozeile eingesetzt werden.
Im einfachsten Fall führt das Kommando apt-cdrom add dazu, dass die eingelegte CD durchsucht und mit den entsprechenden Werten in die Datei sources.list aufgenommen wird. Hierzu ist ein entsprechender Eintrag für das CD-ROM-Laufwerk in der Datei /etc/fstab notwendig. Ein solcher Eintrag wird bereits bei der Installation angelegt und muss normalerweise nur bei Veränderungen an der Hardware angepasst werden.
Wird apt-cdrom ohne weitere Angaben aufgerufen, so werden Informationen über weitere Optionen ausgegeben.
apt 0.5.9 for linux i386 compiled on Aug 10 2003 19:58:08 Usage: apt-cdrom [options] command apt-cdrom is a tool to add CDROM's to APT's source list. The CDROM mount point and device information is taken from apt.conf and /etc/fstab. Commands: add - Add a CDROM ident - Report the identity of a CDROM Options: -h This help text -d CD-ROM mount point -r Rename a recognized CD-ROM -m No mounting -f Fast mode, don't check package files -a Thorough scan mode -c=? Read this configuration file -o=? Set an arbitary configuration option, eg -o dir::cache=/tmp See fstab(5)
apt-get ist die zeitgemäße Benutzerschnittstelle zur Verwaltung von Paketen auf einem Debian-System. Während es mit dpkg möglich ist, jedes beliebige Debian-Paket zu installieren (wenn es zuvor auf die lokale Festplatte kopiert wurde), so ist
apt-get zwingend auf eine Paketliste und damit auch eine sinnvolle sources.list angewiesen. Somit ist immer gewährleistet, dass das System in einem stabilen und fest definierten Zustand verbleibt. Mit apt-get wird dem Administrator ein ebenso elegantes wie auch mächtiges Werkzeug gegeben. Dies haben auch viel andere Distributionshersteller erkannt und haben apt-get in die eigenen Distributionen aufgenommen. apt-get ist somit auch auf RPM-basierten Systemen zuhause. Es ist eben immer gut, wenn man auf der richtigen Seite kämpft ;-).
Dieses Programm ohne grafische Benutzeroberfläche ist recht einfach zu benutzen. Grafische Frontends zu apt sind mit aptitude und gnome-apt verfügbar.
Bevor apt-get die gewünschten Aktionen, wie zum Beispiel das Löschen oder Installieren einzelner Pakete, ausführt die das System verändern, werden Sie über den zukünftigen Zustand des Systems informiert. Es werden folgende Informationen angezeigt: die Anzahl der Pakete, die aktualisiert werden (neuere Version), die Anzahl der Pakete, die nicht verändert werden (kept back), die Anzahl der zu löschenden Pakete sowie die Anzahl der neu zu installierenden Pakete.
Zusätzlich werden, wenn Sie die Option
install benutzen, die Pakete ausgewählt und angezeigt, die aufgrund der Abhängigkeiten der zu installierenden Pakete benötigt werden. Hier ein Beispiel:
The following extra packages will be installed: libdbd-mysql-perl xlib6 zlib1 xzx libreadline2 libdbd-msql-perl mailpgp xdpkg fileutils pinepgp zlib1g xlib6g perl-base bin86 libgdbm1 libgdbmg1 quake-lib gmp2 bcc xbuffy squake pgp-i python-base debmake ldso perl libreadlineg2 ssh
Sollte es notwendig sein, Pakete zu löschen, oder es wurden Pakete zum Entfernen ausgewählt, so werden auch diese gesondert angezeigt.
The following packages will be REMOVED: xlib6-dev xpat2 tk40-dev xkeycaps xbattle xonix xdaliclock tk40 tk41 xforms0.86 ghostview xloadimage xcolorsel xadmin xboard perl-debug tkined xtetris libreadline2-dev perl-suid nas xpilot xfig
Diese Liste sollte aufmerksam geprüft werden um sicherzugehen, dass nicht versehentlich Pakete entfernt werden.
Wenn Pakete neu installiert werden, so wird auch darüber informiert:
The following NEW packages will installed: zlib1g xlib6g perl-base libgdbmg1 quake-lib gmp2 pgp-i python-base
Dies dient nur zur Information; diese Pakete sind bisher nicht auf Ihrem System installiert.
Bei der Auswahl der Pakete kann es passieren, dass auf Grund von nicht erfüllten Abhängigkeiten einzelne Pakete in der aktuellen Version behalten werden. Da nicht alle benötigten Komponenten installiert werden können, werden diese Pakete nicht aktualisiert (kept back).
The following packages have been kept back compface man-db tetex-base msql libpaper svgalib1 gs snmp arena lynx xpat2 groff xscreensaver
Immer wenn ein System mit der Option upgrade
aktualisiert wird, kann es passieren, dass einzelne Pakete nicht aktualisiert werden können, weil diese auf Paketen basieren, die noch nicht in der benötigten Version verfügbar sind, oder aber es bestehen Konflikte mit bereits installierten Paketen. In diesem Fall werden die Pakete im aktuellen Zustand gehalten. Sie können apt-get install benutzen, um diese Pakete trotzdem zu aktualisieren.
The following held packages will be changed: cvs
Wenn Sie ein auf „hold“ gesetztes Paket aktualisieren, bekommen Sie die Meldung, dass dieses Paket verändert (changed) wird. Außer bei apt-get install
kann diese Meldung auch bei apt-get dist-upgrade auftreten.
Abschließend findet sich noch eine Zusammenfassung über die Anzahl der betroffenen Pakete. Weiterhin wird angezeigt, welches Datenvolumen übertragen werden muß und wieviel Festplattenplatz zusätzlich benötigt wird (oder auch frei wird).
206 packages upgraded, 8 newly installed, 23 to remove and 51 not upgraded. 12 packages not fully installed or removed. Need to get 65.7M/66.7M of archives. After unpacking 26.5M will be used.
Die erste Zeile ist eine knappe Zusammenfassung in Zahlen zu den bereits vorher ausgegebenen Informationen. In der zweiten Zeile finden Sie die nicht installierten Pakete, die bereits entpackt, aber nicht konfiguriert wurden („N packages not fully installed or removed“). In der dritten Zeile finden Sie die Informationen über den benötigten Platz und die zu übertragenden Daten. Hierbei steht die erste Zahl für die tatsächlich noch zu übertragenden Daten und die zweite für den Gesamtwert. Wenn bereits Pakete bei einer vorherigen Installation (möglicherweise auch nur teilweise) übertragen wurden, aber nicht installiert werden konnten, so werden diese gespeichert und nicht noch einmal übertragen.
Wenn Sie nun mit der Installation beginnen (dies müssen Sie bei apt-get install mit einem y anstoßen), werden die Pakete von dem ausgewählten Medium gelesen und installiert.
Während des Herunterladens von Archiven und Paketdateien zeigt apt-get eine Reihe von Informationen an:
sushi:/root# apt-get update Get:1 ftp://linux frozen/main Packages [833kB] Get:2 ftp://linux frozen/main Release [93B] Get:3 ftp://linux frozen/contrib Packages [33.4kB] Get:4 ftp://linux frozen/contrib Release [96B] Get:5 ftp://linux frozen/non-free Packages [78.1kB] Get:6 ftp://linux frozen/non-free Release [97B] Get:7 ftp://linux stable/non-US Packages [8880B] Get:8 ftp://linux stable/non-US Release [95B] Fetched 953kB in 12s (74.1kB/s) Reading Package Lists... Done Building Dependency Tree... Done
Unmittelbar während des Downloads wird auch der Fortschritt angezeigt, inklusive der voraussichtlich noch benötigten Zeit für die Übertragung:
11% [5 frozen/non-free `Waiting for file' 0/32.1k 0%] 2203b/s 1m52s
In den mit Get: beginnenden Zeilen steht die benutzte Methode (hier ftp) und der benutzte Server. Den Servernamen können Sie in einem lokalen Netz auch verkürzt angeben, wie hier mit linux
gezeigt. Weiterhin wird der Bereich (frozen und stable) angezeigt sowie die Verzeichnisse (main, contrib usw.) und die Dateinamen mit der Dateigröße.
Bei der Installation von Paketen sieht der Vorgang ähnlich aus:
sushi:/root# apt-get install aptitude Reading Package Lists... Done Building Dependency Tree... Done The following NEW packages will be installed: aptitude 0 packages upgraded, 1 newly installed, 0 to remove and 3 not upgraded. Need to get 148kB of archives. After unpacking 471kB will be used. Get:1 ftp://ftp.debian.de potato/main aptitude 0.0.4a-3 [148kB] Fetched 148kB in 5s (25.3kB/s) Selecting previously deselected package aptitude. (Reading database ... 22625 files and directories currently installed.) Unpacking aptitude (from .../aptitude_0.0.4a-3_i386.deb) ... Setting up aptitude (0.0.4a-3) ...
Hier wird, in der Zeile „Get:“, der Paketname der zu installierenden Software angezeigt und danach das Paket entpackt und installiert.
apt-get benutzt folgende Syntax:
apt-get [options] [command] [package ...]
Die Optionen werden Sie sicher seltener benötigen, daher zuerst einige Worte zu den einzelnen Kommandos:
- check
Bei jedem Start von apt (mit der Ausnahme, wenn Sie die Option update benutzen) wird eine Reihe von Prüfungen durchgeführt, um sicherzustellen, dass apt funktionsfähig und Ihr System in einem guten Zustand ist. Sie können diese Prüfungen auch zu jeder Zeit selber anstoßen:
sushi:/root# apt-get check Reading Package Lists... Done Building Dependency Tree... Done
Als erstes werden die Paketdateien anhand der Informationen in /etc/apt/sources.list eingelesen. Wenn Sie diesen Vorgang noch einmal wiederholen, werden Sie feststellen, dass der zweite Test deutlich schneller beendet ist, die Informationen werden von apt zwischengespeichert. Für Paketdateien, die nicht gefunden werden, wird ggf. eine Warnung ausgegeben; diese Pakete werden dann ignoriert.
Im zweiten Schritt wird eine detaillierte Analyse des Systems durchgeführt, inklusive aller Abhängigkeiten. Es werden von jedem installierten oder bereits entpackten, aber noch nicht konfigurierten Paket die Abhängigkeiten geprüft. Wenn dabei ein Problem auftaucht, wird dies angezeigt und apt-get bricht die weitere Bearbeitung ab.
sushi:/root# apt-get check Reading Package Lists... Done Building Dependancy Tree... Done You might want to run apt-get -f install' to correct these. Sorry, but the following packages have unmet dependencies: 9fonts: Depends: xlib6g but it is not installed uucp: Depends: mailx but it is not installed blast: Depends: xlib6g (>= 3.3-5) but it is not installed adduser: Depends: perl-base but it is not installed aumix: Depends: libgpmg1 but it is not installed debiandoc-sgml: Depends: sgml-base but it is not installed bash-builtins: Depends: bash (>= 2.01) but 2.0-3 is installed cthugha: Depends: svgalibg1 but it is not installed Depends: xlib6g (>= 3.3-5) but it is not installed libreadlineg2: Conflicts:libreadline2 (<< 2.1-2.1)
In diesem Beispiel gibt es eine ganze Reihe Probleme: Einige Pakete sind gar nicht installiert, bei anderen Paketen sind falsche Versionen installiert. Für jedes einzelne Paket, bei dem ein Problem festgestellt wurde, wird eine Zeile ausgegeben, mit den Informationen, um welches Paket es sich handelt und welches Problem festgestellt wurde.
Es gibt zwei Möglichkeiten, wie es zu solchen Problemen kommen kann: Bei einem „Upgrade“ kann es passieren, dass ein benötigtes Paket fehlt, oder aber während der Installation eines Paketes ist ein Problem aufgetreten. Wenn letzteres der Fall ist, dann wurde das Paket zwar entpackt, aber nicht korrekt konfiguriert.
Beide Situationen können von apt in den meisten Fällen mit der Option -f selbst behoben werden. Wenn Sie dselect mit der Methode apt benutzen, wird immer die Option
-f verwendet, um eine einfache Verwendung zu gewährleisten.
Trotzdem kann es passieren, dass bei einem schweren Problem apt nicht in der Lage ist, das Problem zu beheben. In diesem Fall müssen Sie von Hand mit dem Programm dpkg den Konflikt beseitigen. Sie können danach mit apt-get fortfahren.
- update
aktualisiert die Übersicht der verfügbaren Pakete, liest also die Informationen aus den Dateien Packages.gz der jeweiligen Distribution ein. Sie sollten update immer ausführen, wenn Sie wissen, dass sich die Inhalte der Paketdateien beziehungsweise die verfügbaren Pakete auf dem Server geändert haben. Auf jeden Fall sollten Sie update vor dem Aufruf von
upgrade oder dist-upgrade aufrufen.
- upgrade
Um alle auf dem System installierten Pakete auf die aktuelle Version zu bringen, können Sie upgrade benutzen. Alle bereits installierten Pakete, von denen eine neuere Version verfügbar ist, werden aktualisiert. Es werden keine Pakete gelöscht, die bereits installiert sind (und in den neuen Paketdateien nicht mehr enthalten sind), oder Pakete installiert, die noch nicht auf dem System vorhanden sind. Pakete, die bereits installiert sind und es bei einem Upgrade erforderlich machen, den Status anderer Pakete zu verändern, werden nicht aktualisiert. apt-get update muss vorab ausgeführt werden, so dass sichergestellt ist, dass die Paketinformationen auf dem neuesten Stand sind.
- dist-upgrade
ist eigentlich eine Ergänzung oder Erweiterung zu upgrade. Es wird hierbei dafür Sorge getragen, dass für das System wichtigere Pakete zuerst installiert werden. Hierbei werden in engen Grenzen auch Abhängigkeiten verändert, um ein Paket installieren zu können. Dies ist dann notwendig, wenn ein System komplett auf eine neue Version umgestellt werden soll und kein „sanfter“ Übergang gewährleistet werden kann.
- dselect-upgrade
Mit dieser Option werden auch die Paketinformationen „recommends“ und „suggests“ ausgewertet. dies ist sonst nur mittels dselect möglich. Diese Vorschläge für weitere Pakete sind zur Funktion des gewünschten Paketes nicht zwingend erforderlich, können aber durchaus sinnvoll sein.
- install
Diese Option benötigt noch einen oder mehrere Paketnamen. Jedes dieser Pakete (der Paketname, also beispielsweise sendmail, reicht hierbei aus) sowie die noch benötigten Pakete (diese werden automatisch ermittelt) werden auf Basis der Informationen in
/etc/apt/sources.list geholt und installiert. Wenn Sie hinter den Namen des Paketes ein Minuszeichen (-) setzen, wird das Paket aus dem System entfernt, wenn es bereits installiert ist. Achten Sie darauf, dass das Minuszeichen unmittelbar nach dem Paketnamen steht, ohne ein Leerzeichen dazwischen. Diese Funktion kann auch bei Konflikten bei der Installation einzelner Pakete sehr nützlich sein: Sie können so Pakete in einem Vorgang löschen und installieren. Die Option „install“ wählt immer die aktuellste verfügbare Version eines Paketes aus. Es kann jedoch sinnvoll sein, auch Zugriff auf ältere Programmversionen zu haben. Hierzu kann ab der Version 0.5.3 von apt folgende Syntax verwendet werden: apt-get install sane/unstable. Durch einen Slash (/) getrennt kann hinter dem Paketnamen die gewünschte Release eines Paketes angegeben werden.
Eine weitere Möglichkeit ist es, falls verschiedene Versionen eines Paketes verfügbar sind, direkt die gewünschte Versionsnummer anzugeben. Zunächst sollte man mittels apt-cache prüfen, welche Versionen eines Paketes verfügbar sind. Mittels apt-get install vim=6.0.093-2 kann dann ganz gezielt die gewünschte Version installiert werden.
- --reinstall
Diese Option installiert das gewünschte Paket komplett neu, auch wenn es bereits installiert ist.
- remove
Diese Funktion ist analog zu „install“, nur mit dem Unterschied, dass die Pakete standardmäßig entfernt werden, statt sie zu installieren. Analog zu dem eben Beschriebenen können Sie hier ein Pluszeichen (+) verwenden, um Pakete zu installieren.
- check
dient lediglich zur Diagnose. Es wird überprüft, ob sich irgendwelche Unstimmigkeiten in den Paketen finden.
- --purge remove
Löscht das gewünschte Paket und alle weiteren Pakete, die direkt von diesem Paket abhängig sind. Weiterhin werden alle zu den Paketen gehörenden Konfigurationsdateien gelöscht.
- clean
Dies löscht das lokale Verzeichnis, in dem sich die zu installierenden Pakete befinden. Alles, mit Ausnahme der lock-Datei, wird aus /var/cache/apt/archives/ und /var/cache/apt/archives/partial/ gelöscht.
- source
Dieses Kommando holt die notwendigen Dateien zur Erzeugung eines Binärpaketes. Es können so angepasste Pakete erzeugt werden oder aber Pakete auf einer anderen Architektur übersetzt werden. Wichtig ist hier bei ein entsprechender „deb-src“-Eintrag in der Datei sources.list. Um alle zu einem Paket gehörenden Dateien von einem Server zu holen, reicht das Kommando apt-get source paketname. Es werden die aktuellen Versionen der Dateien paketname.orig.tar.gz,
paketname.dsc und paketname.diff.gz im aktuellen Verzeichnis gespeichert.
Um aus den Quellen direkt ein Binärpaket zu erzeugen, kann die Option -b angegeben werden. Das komplette Kommando lautet dann apt-get source -b paketname. Wenn die benötigten Source Pakete bereits vorliegen, kann das Binärpaket auch direkt mit dem Kommando dpkg-buildpackage -rfakeroot -us -uc erzeugt werden.
- build-dep
Die meisten Softwarepakete benötigen bei der Übersetzung aus den Quellpaketen weitere Entwicklungspakete wie Librarys und Header-Dateien. Diese werden häufig nicht mitgeliefert und liegen in gesonderten Paketen vor. Das Debian-Paketsystem sieht sogenannte „build dependencies“ vor, in denen alle Abhängigkeiten zur Erzeugung eines Paketes beschrieben sind.
Das Kommando apt-get build-dep paketname sorgt dafür, dass alle zur Übersetzung eines Paketes benötigten Dateien auf dem System vorhanden sind.
- moo
Als kleine versteckte Option haben die Entwickler auch noch noch ein sogenanntes „Easter-Egg“ eingebaut:
fr@nigiri:~$ apt-get moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ...."Have you mooed today?"...
Soweit zu den Parametern. Sie können noch folgende Optionen benutzen um apt-get
zu steuern.
- -h
Zeigt die Hilfe zu apt-get an.
- -m
Ignoriere eventuell fehlende Pakete.
- -d
Holt die gewünschten Pakete vom Server, ohne diese zu installieren.
- -f
Behebt die defekten Abhängigkeiten zwischen den Paketen. apt-get -f install versucht, diese automatisch zu reparieren.
- -s
Simulation, führt keine Aktionen aus.
- -u
Zeigt auch die zu aktualisierenden Pakete an.
- -y
Aktualisiert alle Pakete automatisch, indem alle Fragen mit „Yes“ beantwortet werden.
Hier nun ein Beispiel aus der Praxis zur Benutzung von APT:
Beachten Sie bitte, dass Pakete nur mit Superuser-Rechten (root) installiert werden können.
Zuallererst muß apt die Informationen über die verfügbaren Pakete erhalten; hierzu dient das Kommando apt-get update.
sushi:/root # apt-get update Hit ftp://192.168.0.5 potato/main Packages Hit ftp://192.168.0.5 potato/main Release Get:1 ftp://192.168.0.5 potato/non-free Packages [78.6kB] Get:2 ftp://192.168.0.5 potato/non-free Release [99B] Fetched 68.5kB in 0s (104kB/s) Reading Package Lists... Done Building Dependency Tree... Done
Nachdem das System nun über den aktuellen Stand der Pakete informiert ist, können Sie weitere Pakete mittels apt installieren, hier gezeigt am Beispiel von sane:
sushi:/root# apt-get install sane Reading Package Lists... Done Building Dependency Tree... Done The following extra packages will be installed: libgimp1 libsane The following NEW packages will be installed: libgimp1 libsane sane 0 packages upgraded, 3 newly installed, 0 to remove and 3 not upgraded. Need to get 703kB of archives. After unpacking 1729kB will be used. Do you want to continue? [Y/n]
Beachten Sie hierbei, dass automatisch die benötigten Pakete libgimp1 und
libsane ausgewählt wurden. Insgesamt werden also drei Pakete installiert. Weiter unten erhalten Sie noch Informationen über den später benötigten Festplattenplatz der Pakete sowie über die Größe der Pakete, die ja eventuell via FTP erst übertragen werden müssen. Wenn Sie mit den Angaben so einverstanden sind, bestätigen Sie dies mit der Eingabetaste, oder drücken Sie die Taste n und danach die Eingabetaste, um den Vorgang abzubrechen.
Wenn mehrere Pakete gleichzeitig installiert werden sollen, so können diese einfach hintereinander auf der Kommandozeile angegeben werden.
Download aller installierten Pakete
Manchmal kann es wünschenswert sein alle bereits installierten Pakete eines Systems erneut auf den Rechner zu kopieren, beispielsweise um eine Sicherungskopie zu haben oder um ein System zu duplizieren. Natürlich können die Pakete auch auf eine CD-ROM/DVD gebrannt oder in einen Mirror eingefügt werden. Vorteilhaft bei dieser Methode ist es, dass ein in sich konsistentes System entsteht in dem alle Abhängigkeiten erfüllt sind.
Ein Download der gewünschten Pakete kann mit folgenden Kommendos erzeugt werden:
# COLUMNS=200 dpkg -l | grep '^ii' | awk '{ print $2 }' > /tmp/pkgliste # cat /tmp/pkgliste | xargs apt-get --download-only --reinstall -y install
Die erste Zeile listet via dpkg alle Pakete auf und filtert mittels grep nur die installierten heraus. Danach wird die zweite Spalte in die Datei /tmp/pkgliste geschrieben.
Die zweite Zeile gibt via cat die Liste der Dateien aus. Mittels xargs wird jede Zeile an das Kommando apt-get
weitergegeben. Die Kombination der apt-get Optionen --reinstall und --download-only sowie -y führt dazu das auch bereits installierte Pakete aus dem Netz geholt werden, aber keine Installation durchgeführt wird.
Die Debian Pakete sind nach dem Download im Verzeichnis /var/cache/apt/archives/ zu finden und können mittels apt-move in eine Verzeichnisstruktur wie auf einem Debian Mirror verschoben werden. apt-move ist auch in der Lage die entsprechenden
Packages.gz Dateien zu erzeugen.
Normalerweise wird apt mit einem direkten Zugriff zu einem Archiv benutzt, sei es dass die Daten auf einer lokalen Festplatte liegen oder von einer CD-ROM kommen oder über ein Netzwerk installiert werden sollen. Trotzdem kann es sinnvoll sein, wenn Sie keine aktuellen CDs zur Hand haben oder Ihnen der Download der Dateien zu langwierig ist, die Daten auf einem anderen Medium, zum Beispiel ein ZIP, von einem Rechner mit den aktuellen Paketen zu kopieren und zu installieren.
Problematisch ist dabei, dass ein solches Medium nicht ausreicht, um eine komplette Debian-Distribution aufzunehmen. Aber es reicht ja auch aus, nur die benötigten Pakete zu kopieren. Sie müssen also mittels apt eine Liste der benötigten Pakete erstellen und diese auf dem Rechner mit einer schnellen Anbindung ans Netz herunterzuladen. Hierzu ist das Programm wget gut geeignet.
Weiterhin müssen Sie apt dazu bringen, die Paketdateien von dem neuen Medium zu lesen. Dieses sollte mit einem Dateisystem formatiert sein, welches mit langen Dateinamen umgehen kann; dies wären zum Beispiel: ext2, vfat oder fat32.
Wenn apt auf beiden Rechnern installiert ist, können Sie über die Statusdatei (status) feststellen lassen, welche Pakete auf dem Zielrechner fehlen. Die Verzeichnisstruktur auf dem Medium sollte wie folgt aussehen:
/medium/ archives/ partial/ lists/ partial/ status sources.list apt.conf
In der Konfigurationsdatei teilen Sie apt mit, dass die Debian-Pakete auf dem Medium zu speichern sind und dass dort auch die Konfigurationsdateien zu finden sind. Die Datei sources.list sollte den Server enthalten, von dem die Pakete geholt werden sollen. Die Datei status ist eine Kopie der Datei
/var/lib/dpkg/status von Ihrem Zielrechner.
Die Datei apt.conf enthält die nötigen Informationen, um das Medium zu benutzen:
APT { /* nur notwendig, wenn die beiden Rechner nicht die gleiche Architektur haben */ Architecture "i386"; Get::Download-Only "true"; }; Dir { /* die status-Datei auf dem Medium nutzen. */ State "/medium/"; State::status "status"; /* auf dem Medium cachen */ Cache::archives "/medium/archives/"; /* da ist auch die Datei sources.list */ Etc "/medium/"; };
Auf Ihrem Zielrechner mounten Sie zuerst das Medium und kopieren die Datei /var/lib/dpkg/status dorthin. Erzeugen Sie dann die Verzeichnisse, die oben in der Struktur gezeigt sind (archives/partial/ und lists/partial/).
Die weiteren Schritte können Sie auf dem zweiten Rechner durchführen. Passen Sie die Datei sources.list an. Dann führen Sie folgendes auf diesem Rechner aus:
export APT_CONFIG="/medium/apt.conf" apt-get update apt-get dist-upgrade
Sie können auch alle anderen apt-Optionen oder auch gnome-apt benutzen.
Wenn alle Dateien auf das Medium übertragen wurden, können Sie diese zu Ihrem Zielrechner transportieren und die Pakete wie folgt installieren:
export APT_CONFIG="/medium/apt.conf" apt-get check apt-get --no-d -o dir::etc::status=/var/lib/dpkg/status dist-upgrade
Bitte beachten Sie, dass hierbei wieder die lokale status-Datei benutzt wird!
Wenn Sie nicht die Möglichkeit haben, die Dateien auf einem Rechner mit apt aus dem Netz zu kopieren, können Sie alternativ auch das Programm wget benutzen. Dieses ist nicht Teil der Debian GNU/Linux-Basisinstallation, Sie müssen also zunächst das Paket installieren.
wget dient zum Kopieren von Webseiten inklusive der dazugehörigen Grafiken und eventueller weiterer mit dieser Seite verlinkten Seiten. Wir werden wget aber zum gezielten Kopieren der benötigten Debian-Pakete von einem Server benutzen.
Sie können die Pakete mittels wget kopieren, indem Sie apt-get mit der Option --print-uris dazu benutzen, um eine Liste der benötigten Pakete mit der kompletten URL für wget zu erzeugen.
Entgegen dem eben vorgestellten Beispiel brauchen Sie hier keine extra Konfigurationsdateien (außer natürlich der Datei /etc/apt/sources.list, welche von apt benötigt wird). Führen Sie die folgenden Kommandos auf dem Rechner aus, auf dem die Pakete später installiert werden sollen.
apt-get dist-upgrade apt-get -qq --print-uris dist-upgrade > uris awk '{print "wget -O " $2 " " $1}' < uris > /medium/wget-script
Drücken Sie „n“ nach dem ersten Kommando und prüfen Sie, dass die Auswahl korrekt ist. Die benötigten Pakete wurden nun zur späteren Installation markiert. In der zweiten Zeile wird mit apt-get und den entsprechenden Optionen eine Liste der zu installierenden Pakete erzeugt und in die Datei uris geschrieben. Das letzte Kommando ergänzt die Liste der Pakete um die nötigen Aufrufe des Kommandos wget.
Die Datei /medium/wget-script enthält nun eine Liste mit Kommandos, welche die benötigten Pakete aus dem Netz holen. Sie können dieses jetzt auf dem Medium ausführen:
cd /medium sh -x ./wget-script
Hierbei ist es unerheblich, ob das Transportmedium sich noch in dem Rechner befindet, auf dem die Pakete installiert werden sollen (was keinen Sinn machen würde, Sie könnten sich den Umweg über wget dann sparen), oder ob Sie das Medium in einem Rechner mit einer besseren Netzanbindung anmelden und dort das Skript ausführen. Die Pakete werden lediglich auf das Medium übertragen und nicht installiert.
Wenn alle Dateien übertragen wurden, können Sie das Medium zu Ihrem Zielrechner transportieren und die Pakete mit folgendem Kommando installieren:
apt-get -o dir::cache::archives="/medium/" dist-upgrade
Hiermit können die „reverse-dependencies“ eines Paketes ermittelt werden. Ähnliche Informationen kann auch apt-cache liefern. Ohne weitere Angaben wird ein komplettes Listing aller Abhängigkeiten erzeugt, hier nur ein kleines Beispiel:
fr@inari:~$ apt-rdepends bash bash Depends: base-files (>= 2.1.12) base-files Depends: awk Depends: base-passwd (>= 2.0.3.4) awk base-passwd Depends: libc6 (>= 2.3.1-1) libc6
Mit apt-cache können die verschiedensten Abfragen zu den bekannten Paketen (also auch zu den noch nicht installierten) erstellt werden. Dies beschränkt sich nicht nur auf Paketnamen oder die zu einem Paket gehörenden Dateinamen, sondern es können auch Informationen zu den Metadaten erfragt werden.
Wenn Sie nicht die Option -h oder
--help benutzen muss mindestens eines der folgenden Kommandos angegeben werden.
- add
fügt die angegebene Package-Datei dem Package-Cache hinzu.
- gencaches
Diese Option bewirkt das gleiche wie apt-get check. Es werden die Source- und Package-Caches aus den Informationen in /etc/apt/sources.list und /var/lib/dpkg/status erstellt.
- showpkg
Diese Option zeigt Informationen über die weiterhin auf der Kommandozeile angegebenen Pakete. Es werden die verfügbaren Versionen der Pakete sowie die gesamten Abhängigkeiten dieser Pakete angezeigt. Hierbei wird zwischen sogenannten „forward“-Dependencies und „reverse“-Dependencies unterschieden. Forward-Dependencies (dies sind die im normalen Sprachgebrauch verwendeten Abhängigkeiten) beziehen sich auf die Pakete, die das angefragte Paket benötigt, um einwandfrei zu funktionieren. Reverse-Dependecies beschreiben die Pakete, die das angefragte Paket benötigen, um zu funktionieren. Ein Beispiel: apt-cache showpkg bash gibt folgendes Ergebnis aus:
Package: bash Versions: 2.05a-12(/var/lib/apt/lists/192.168.1.1_home_ftp_debian_dists_sid_ main_binary-i386_Packages)(/var/lib/dpkg/status) 2.05a-11(/var/lib/apt/lists/192.168.1.1_home_ftp_debian_dists_woody_ main_binary-i386_Packages) Reverse Depends: kernel-patch-ltt,bash 2.0 kernel-patch-lkcd,bash 2.0 kernel-patch-kdb,bash 2.0 kernel-patch-acl,bash 2.0 horde2,bash cron-apt,bash 2.03-6 common-lisp-controller,bash 2.04-9 cdcontrol,bash 2.0 bash-doc,bash 2.03-1 bash-builtins,bash 2.05a-12 base-files,bash 2.03-3 txt2regex,bash 2.04 openmosix,bash 2.0 mosix,bash 2.0 mkrboot,bash mason,bash kernel-patch-ulog,bash 2.0 kernel-patch-ttl,bash 2.0 kernel-patch-ltt,bash 2.0 kernel-patch-kiobuf-bigmem,bash 2.0 kernel-patch-kiobuf,bash 2.0 kernel-patch-kdb,bash 2.0 kernel-patch-irc,bash 2.0 kernel-patch-badram,bash 2.0 htmlheadline,bash 2.04-1 horde,bash 2.03-6 gopherweblink,bash gibraltar-bootsupport,bash foomatic-bin,bash 2.05 diffmon,bash 2.0 cron-apt,bash 2.03-6 common-lisp-controller,bash 2.04-9 colorgcc,bash cdcontrol,bash 2.0 bug,bash 2.04-1 bash-doc,bash 2.03-1 bash-builtins,bash 2.05a-11 base-files,bash 2.03-3 Dependencies: 2.05a-12 - base-files (2 2.1.12) libc6 (2 2.2.4-4) libncurses5 (2 5.2.20020112a-1) grep-dctrl (0 (null)) bash-completion (0 (null)) bash-doc (1 2.05-1) bash-completion (0 (null)) 2.05a-11 - base-files (2 2.1.12) libc6 (2 2.2.4-4) libncurses5 (2 5.2.20020112a-1) bash-completion (0 (null)) bash-doc (1 2.05-1) bash-completion (0 (null)) Provides: 2.05a-12 - 2.05a-11 - Reverse Provides:
Es müssen also, damit dieses Paket funktioniert, mindestens die unter „Dependencies“ aufgeführten Pakete installiert sein. Eine weitere wichtige Information sind die „Reverse Depends“. Dies sind Pakete, die von diesem Paket (bash) abhängen.
- stats
Es wird eine Statistik über den aktuellen Cache ausgegeben. Es sind keine weiteren Argumente notwendig. Folgende Informationen werden ausgegeben:
fr@sushi:~$ apt-cache stats Total Package Names : 8953 (358k) Normal Packages: 6872 Pure Virtual Packages: 259 Single Virtual Packages: 176 Mixed Virtual Packages: 115 Missing: 1531 Total Distinct Versions: 9133 (438k) Total Dependencies: 47613 (1143k) Total Ver/File relations: 19322 (309k) Total Provides Mappings: 1889 (37.8k) Total Globbed Strings: 110 (1273) Total Dependency Version space: 179k Total Slack space: 86.3k Total Space Accounted for: 2374k
Total Package Names
Anzahl der Paketnamen, die im Cache gefunden wurden.
Normal Packages Dies sind Pakete, deren Namen in einer Abhängigkeit zu einem anderen Paket stehen; hierunter fällt eine große Zahl der Pakete.
Pure Virtual Packages Anzahl der „virtuellen“ Paketnamen im Cache. Dies sind Pakete, die ein Paket zur Verfügung stellen, deren Name aber nicht mit diesem zu tun hat. Als Beispiel sein hier mail-transport-agent genannt: Einige Pakete (beispielsweise exim, qmail und sendmail) stellen das Paket mail-transport-agent zur Verfügung, es gibt aber kein Programm mit dem Namen mail-transport-agent.
Single Virtual Packages Dies ist die Anzahl der Pakete, die ein virtuelles Paket zur Verfügung stellen, dies aber nur einmalig im Cache auftaucht. Das virtuelle Paket X11-text-viewer wird beispielsweise nur von xless zur Verfügung gestellt.
Mixed Virtual Packages Anzahl der Pakete, die sowohl als virtuelle als auch als reale Pakete vorhanden sind. debconf ist als reales Paket vorhanden, wird aber auch von debconf-tiny zur Verfügung gestellt.
Missing Pakete die in einer Abhängigkeit benannt werden, aber nicht im Cache zu finden sind. Dies kann vorkommen wenn, kein Zugriff auf eine komplette Debian-Distribution gegeben ist oder wenn Pakete aus der Distribution entfernt wurden.
Total Distinct Versions Die Anzahl der Paketversionen im Cache. Diese ist im Normalfall gleich der Anzahl der gesamten Pakete. Wenn jedoch zwei Distributionen (beispielsweise „stable“ und „testing“) benutzt werden, kann es vorkommen, dass mehrere Versionen eines Paketes verfügbar sind. In diesem Fall kann die Zahl deutlich über der der gesamten Pakete liegen.
Total Dependencies Die Anzahl der gesamten Abhängigkeiten zwischen allen Paketen im Cache.
- dump
Zeigt eine kurze Information zu jedem Paket an. Dies ist für den normalen Benutzer wenig sinnvoll und ist zur Fehlersuche für Entwickler gedacht.
- dumpavail
Zeigt eine Liste der verfügbaren Pakete.
- unmet
Zeigt eine Zusammenfassung aller nicht erfüllten Abhängigkeiten.
- show
Hat einen ähnlichen Effekt wie das Kommando dpkg --print-avail und zeigt die Paketinformationen für die angegebenen Pakete.
- search
Führt eine Volltextsuche über alle verfügbaren Paketdateien durch. Es können Reguläre Ausdrücke benutzt werden. Es werden die Paketnamen und Beschreibungen nach dem Suchbegriff durchsucht und es wird der Paketname und die Kurzbeschreibung der entsprechenden Pakete ausgegeben. Wenn die Option --full angegeben wird, entspricht die Ausgabe der von show. Mit der Option --names-only wird die Paketbeschreibung nicht durchsucht, die Suche beschränkt sich auf den Paketnamen.
Mehrere Suchargumente können angegeben werden und werden dann über eine UND-Verknüpfung ausgewertet.
- depends
Zeigt alle Abhängigkeiten eines Paketes an. Weiterhin werden alle anderen Pakete angezeigt, die die geforderten Abhängigkeiten erfüllen können.
fr@surimi@sushi:~$ apt-cache depends bash bash Depends: base-files PreDepends: libc6 PreDepends: libncurses5 Suggests: grep-dctrl Conflicts: Replaces: bash-doc Replaces:
- policy
Die Option policy zeigt zu einem Paket die installierte sowie die verfügbaren Versionen aus den erreichbaren Quellen an.
fr@nigiri:~$ apt-cache policy bash bash: Installed: 2.05b-5 Candidate: 2.05b-5 Version Table: *** 2.05b-5 0 500 ftp://ftp.freenet.de sid/main Packages 100 /var/lib/dpkg/status 2.05b-3 0 500 ftp://ftp.freenet.de testing/main Packages 500 ftp://ftp.freenet.de sarge/main Packages 2.05a-11 0 500 ftp://ftp.freenet.de woody/main Packages
- pkgnames
Zeigt eine Liste aller Paketnamen. Optional kann eine Zeichenkette angegeben werden, die als Suchpräfix verwendet wird.
- dotty
Dieser Option kann eine Liste von Paketnamen mitgegeben werden. Die Ausgabe erfolgt in einem Format welches vom Programm dot aus dem Paket GraphVis (http://www.research.att.com/sw/tools/graphviz/) gelesen werden kann. So kann eine grafische Darstellung der Paketabhängigkeiten erstellt werden. Normalerweise werden alle Abhängigkeiten verfolgt, was zu sehr großen Dateien führen kann. Dies kann mit der Option APT::Cache::GivenOnly in der Datei /etc/apt/config deaktiviert werden.
Hier zwei kleine Beispiele wie diese Option sinnvoll eingesetzt werden kann:
apt-cache dotty vim | dot -Tps packgraph.ps apt-cache dotty $(dpkg --get-selections | grep -v deinstall \ | awk 'print $1') | dot -Tps packgraph.ps
Beide Beispiele erzeugen eine Postscriptdatei packgraph.ps. Diese kann beispielsweise mit dem Programm gv angezeigt werden.
apt-cacher unterscheidet sich deutlich vom zuvor beschriebenen apt-cache. Die Problematik in einem Netzwerk verschiedene Debian Systeme mit Paketen zu versorgen und dabei nicht für jedes System alle Pakete erneut aus dem Netz zu holen ist sicher jedem Administrator vertraut. apt-cacher bietet für dieses Problem eine elegante Lösung und lässt sich besonders effektiv in einem Netzwerk mit langsamer Anbindung an das Internet einsetzen.
apt-cacher wurde ursprünglich von Nick Andrew entwickelt um zwei Debian Systeme hinter einer Modem Anbindung mit Paketen zu versorgen. Die Entwicklung ist mittlerweile jedoch weiter fortgeschritten und hat apt-cacher zu einem leistungsfähige Caching-System für Debian Pakete gemacht. apt-cacher läßt sich auch auf anderen Linux Distributionen, wie beispielsweise RedHat oder SuSE, im Zusammenspiel mit APT einsetzen und ist auch via „Fink“ unter MacOS
lauffähig.
Im Gegensatz zu anderen Caching Programmen läuft apt-cacher nicht als eingenständiger Server, sondern als CGI-Skript innerhalb des Apache Webservers auf einem System im Netzwerk. Dies bietet den Vorteil das apt-cacher klein gehalten werden kann und beispielsweise auf die vom Apache bereitgestellten Protokolle (http) zurückgreifen kann. Ebenfalls können die Zugriffsbeschränkungen von Apache benutzt werden um nur bestimmten Systemen im Netz Zugriff zu gewähren.
apt-cacher wird auf einem System im Netz installiert, dieses dient als lokaler Cache. Alle anderen Systeme im Netz müssen in der Konfiguration so angepasst werden das sie im folgenden ausschlieslich den apt-cacher Server verwenden.
apt-cacher bearbeitet Anfragen der anderen Systeme und holt bei Bedarf das gewünschte Debian Paket aus dem Netz. Dieses wird lokal auf dem Server gespeichert und steht so weiteren Systemen sofort zur Verfügung. Das ganze verhält sich für die anderen Systeme im Netz völlig transparent, alle gewohnten Werkzeuge zur Paketverwaltung können weiterhin verwendet werden.
Die eigentliche Installation von apt-cacher erfolgt ausschliesslich auf dem Server. An den anderen Systemen die apt-cacher nutzen sollen sind nur Anpassungen notwendig.
Um einen apt-cacher-Server zu betreiben sind keine besonderen Anforderungen an die Hardware zu erfüllen. Lediglich der Festplattenplatz sollte, je nach Nutzung, ausreichend bemessen werden. Werden die Adressen im Netzwerk via DHCP vergeben, so ist darauf zu achten das der Name/die IP-Adresse des Servers immer beibehalten werden.
Das Kommando
apt-get install apt-cacher
installiert die notwendige Software auf dem Server. Ebenso wird, falls noch nicht geschehen, der Apache Webserver und einige weitere Pakete installiert. Abschliessend ist noch der Webserver mittels
/etc/init.d/apache restart
von der Änderung zu unterrichten.
Um die Installation zu testen kann mit einem Webbrowser die Adresse http://localhost/apt-cacher aufgerufen werden. Läuft der Browser nicht direkt auf dem Server, so ist natürlich „localhost“ durch den Rechnernamen/die IP-Nummer zu ersetzen. Ist die Installation geglückt so wird eine Informationsseite von apt-cacher ausgegeben.
Auf der Client Seite muss keinerlei Software installiert werden, lediglich eine Anpassung der Konfigurationsdatei für APT ist notwendig. Dabei können die bisherigen Einträge übernommen werden, müssen jedoch jeweils um die Angabe des Cache Servers ergänzt werden.
deb http://cacheserver/apt-cacher/ftp.de.debian.org/debian stable main contrib non-free
Wichtig ist nur das diese Einträge auf allen Clients im Netz einhetlich sind.
Nun steht bereits ein funktionsfähiger Cache im Netz zur Verfügung. Es können jedoch noch einige Anpassungen an der Konfiguration gemacht werden.
Die Konfigurationsdatei findet sich unter /etc/apt-cacher/apt-cacher.conf
'
- admin_email
E-Mail Adresse welche in Reports angezeigt wird und an die bei Problemen Mails versendet werden.
- generate_reports
Diese Option kann auf den Wert „1“ gesetzt werden um tägliche Nuzungsreports zu erstellen.
- cache_dir
Ein Verzeichnis in dem die Pakete und Paketlisten auf dem Server gespeichert werden.
- logfile
In diesem Logfile wird die Nutzung des Servers dokumentiert. Diese Datei wird ebenfalls zur Erstellung von Reports genutzt.
- errorfile
Logdatei für Fehlermeldungen.
- expire_hours
Anzahl von Stunden nach der Paketlisten gelöscht werden. Dies beeinflusst nicht das löschen von Paketen, diese werden entfernt wenn sie nicht mehr in den Paketlisten aufgeführt werden.
- http_proxy
Adresse und Port eines weiteren, externen, Proxy Servers.
- use_proxy
Aktiviert die Nutzung des Proxys.
- debug
Schaltet den Debug-Modus ein oder aus.
Ist die entsprechende Option aktiviert, so generiert apt-cacher einen täglichen Report. Dieser kann über die URL http://localhost/apt-cacher/report abgerufen werden.
apt-proxy ist ein Cache, der zusammen mit apt von allen Debian-Systemen aus im Netz genutzt werden kann. Lokale Netzwerke verfügen normalerweise über eine höhere Bandbreite als für das gesamte Netz nach aussen ins Internet zur Verfügung steht. Durch einen gemeinsam genutzten Cache können bereits auf einem System installierte Pakete auch allen anderen Systemen verfügbar gemacht werden, ohne dass diese Pakete bei der Installation auf den einzelnen Clients nochmals aus dem Internet geholt werden.
apt-proxy kann als Cache effizienter mit Debian-Paketen umgehen als beispielsweise Squid. Dies liegt zum einen daran, dass apt-proxy die Paketdateien auswertet und alte Versionen löscht, die nicht mehr benötigt werden. Zum anderen verwendet apt-proxy zur Übertragung von Dateien das Programm rsync, so dass abgebrochene Downloads fortgesetzt werden können. Alternativ können auch die Protokolle HTTP und FTP zum Download genutzt werden.
Nach der Installation muss zunächst in der Datei apt-proxy.conf ein gut erreichbarer Debian-Server eingetragen werden, von diesem werden dann alle Pakete geholt. Auf allen Clients, die den APT-Proxy benutzen sollen, ist die Konfiguration so anzupassen, dass der Rechner, auf dem apt-proxy installiert ist, als Quelle verwendet wird. apt-proxy läuft auf dem Port 9999; die Einträge in der Datei sources.list auf den Clients müssen folgendes Format haben:
deb http://SERVER:9999/main woody main contrib non-free deb http://SERVER:9999/non-US woody/non-US main contrib non-free deb-src http://SERVER:9999/main woody main contrib non-free deb-src http://SERVER:9999/non-US woody/non-US main contrib non-free
Hierbei ist zu beachten, dass „SERVER“ durch den entsprechenden Rechnernamen (bzw. die IP Nummer) ersetzt wird. Nachdem diese Anpassungen vorgenommen worden sind, wird auf einem der Clients das Kommando apt-get update aufgerufen, um auf dem Server die Verzeichnisse zu initialisieren und die Paketlisten verfügbar zu machen. Nun können alle Clients diesen zentralen Dienst transparent nutzen.
Wenn bereits auf dem Server ein Verzeichnis mit Debian-Paketen vorliegt, so kann dies mittels apt-proxy-import in den Cache von apt-proxy integriert werden.
apt-move ist ein Shell-Skript, mit dem eine Anzahl von lokal vorliegenden Debian-Paketen in eine Verzeichnisstruktur verschoben werden kann, die wiederum einem Debian-Archiv entspricht. Die Dateien werden dabei in einer Verzeichnisstruktur unterhalb von $LOCALDIR/pool/... abgelegt; die Variable $LOCALDIR kann dabei in der Konfigurationsdatei festgelegt werden. Hauptsächlich wurde apt-move
entwickelt, um via apt-get aus dem Netz übertragene Dateien aus dem Datei-Cache in ein Debian-Archiv zu übernehmen, Die Konfiguration kann jedoch so angepasst werden, dass jede beliebige Sammlung von Paketen (beispielsweise von CD-ROMs) dem Archiv hinzugefügt werden kann.
Weiterhin besteht die Möglichkeit, mittels der Optionen sync und mirror eine Kopie, auch von Teilen, eines Debian-Servers zu erstellen. Auch können überflüssige, veraltete Pakete gelöscht werden und es können lokale Versionen der Dateien Packages.gz und Sources.gz Dateien erzeugt werden.
apt-move kennt eine ganze Reihe von Kommandos und Optionen:
$Id: apt-move,v 1.96 2003/07/27 04:18:04 herbert Exp $ Usage: apt-move [-c conffile] [-d dist] [-fqt] COMMAND Commands: get - update your master files from local apt. getlocal - alias of get. fsck - fix broken repositories, use with caution. move - move cache files into mirror tree. movefile - move files specified on the command line. delete - delete obsolete packages. packages - create new local Packages files. update - alias for 'get move delete packages'. local - alias for 'move delete packages'. localupdate - alias for 'getlocal move delete packages'. mirror - update your local mirror from remote rsync site. sync - same as mirror, but only gets packages that you currently have installed on your system. exclude - prints a list of all packages EXCLUDED from the mirror by the .exclude file (ignores -t). listbin - prints lists of packages which can serve as the input to mirrorbin. Takes the arguments mirror, sync, or repo. listsrc - same as listbin, but lists source packages. mirrorbin - same as mirror, but gets the packages specified on stdin. mirrorsrc - same as mirrorbin, but gets source packages. Options: -c Specify an alternative configuration file. -d Override the DIST setting. -f Override the MAXDELETE setting (use with caution). -q Be quiet; suppress normal output. -t Show what apt-move would do, but do not actually do anything. See the apt-move(8) manpage for further details.
Bevor apt-move eingesetzt werden kann, ist die Konfigurationsdatei /etc/apt-move.conf anzupassen. Diese Datei ist, wie alle Konfigurationsdateien auf einem Debian-System, recht gut kommentiert. Wichtig ist es, die Optionen APTSITES (entsprechend den Einträgen in der Datei
/etc/apt/sources.list), LOCALDIR und DIST anzupassen. Diese beschreiben die Server, von denen die Dateien geholt werden sollen, den lokalen Bereich, in dem die Pakete gespeichert werden sollen, und die gewünschte Distribution.
Nach der Anpassung dieser drei Optionen wird apt-move zumindest keinen größeren Schaden anrichten. Weitere Anpassungen können später noch vorgenommen werden. Beispielsweise ist es sinnvoll, nach einiger Zeit nicht mehr benötigte Dateien zu löschen; dies wird durch Setzen der Option DELETE auf yes erreicht.
In jedem Fall sollten die ersten Versuche mit apt-move immer den Parameter -t beinhalten; dieser testet nur die Einstellungen und es werden keine Aktionen durchgeführt.
Sollen bestimmte Dateien (beispielsweise Kernel-Sourcen) ausgeschlossen werden, so können diese in einer Exclude-Datei festgelegt werden. Ein Beispiel für eine solche Datei findet sich unter /usr/share/doc/apt-move/examples/SAMPLE.exclude.
apt-ftparchive erzeugt Index-Dateien, die von apt benutzt werden können um auf ein Paketverzeichnis zuzugreifen. Die Funktionalität ist vergleichbar mit der von dpkg-scanpackages und
dpkg-scansources und kann diese Programme ersetzen.
Die wichtigsten Kombinationen sind:
packages binarypath [overridefile [pathprefix]] sources srcpath [overridefile [pathprefix]] contents path generate config [groups] clean config
Dieses Programm vergleicht die apt-Listen mit Source-Dateien sowie das dpkg-Status-File und zeigt auf, von welchen Paketen neuere Versionen als die bereits installierten verfügbar sind. Um festzustellen, welche Version die Sourcen eines Programmes haben, müssen natürlich entsprechende Einträge in der sources.list vorhanden sein. Hierbei ist auch darauf zu achten, welche Release (potato, woody usw.) in den jeweiligen Zeilen angegeben ist.
fr@surimi:~$ apt-show-source -p bash Sorry, no newer source package available for bash
In diesem Beispiel ist keine aktuellere Version dieses Paketes als Source Paket verfügbar. Zeigt jedoch die „deb-src“ Zeile auf eine ältere Release, so kann durchaus der Fall eintreten, dass das Source Paket auf einem älteren Stand ist.
fr@surimi:~$ apt-show-source -p bash Inst. Package (Version) | Newest Source Package (Version) ------------------------------------------------------------------------ bash (2.05a-12) | bash (2.05a-11)
Dieses Kommando zeigt die aktuell installierten Pakete, die Version und die Release an. Mittels der Option -p kann nur ein bestimmtes Paket angegeben werden, -r erlaubt die Filterung mittels Wildcard. Die Option -u zeigt alle Pakete, die aktualisiert werden können.
fr@surimi:~$ apt-show-versions -h Apt-Show-Versions v.0.02 (c) Christoph Martin Usage: apt-show-versions shows available versions of installed packages. Options: -stf|--status-file= Use as the dpkg status file instead of /var/lib/dpkg/status -ld|list-dir= Use as path to apt's list files instead of /var/state/apt/lists/ or /var/lib/apt/lists/ -p|--package= Print versions for . -r|--regex Read package with -p as regex -u|--upgradeable Print only upgradeable packages -a|--allversions Print all available versions. -b|--brief Short output. -v|--verbose Verbose messages. -h|--help Print this help. fr@surimi:~$ apt-show-versions -r -p kernel* kernel-image-2.4.13-686: No available version kernel-image-2.2.20-udma100-ext3/unstable upgradeable from 2.2.20-6 to 2.2.20-7 kernel-source-2.2.20/testing uptodate 2.2.20-5 kernel-image-2.4.5-686-smp: No available version kernel-headers-2.2.20-udma100-ext3/unstable uptodate 2.2.20-7 kernel-package/unstable uptodate 8.004
auto-apt dient zur Installation von Programmen „bei Bedarf“. Dies kann beispielsweise bei der Softwareentwicklung oder auch schon beim einfachen Übersetzen eines neuen Kernels sinnvoll sein. Mitunter fehlt auf frisch installierten Debian Systemen noch das Paket bin86 welches für das Erzeugen eines Kernels benötigt wird. Um automatisch die fehlenden Pakete zu installieren, wird einfach dem Aufruf von make das Kommando auto-apt vorangestellt: auto-apt make bzImage. Werden nun während des Durchlaufes fehlende Programme festgestellt, so ermittelt auto-apt, zu welchem Paket diese gehören und installiert die fehlenden Pakete inklusive aller Abhängigkeiten.
In den meisten Debian-Paketen sind sogenannte „changelog“-Dateien enthalten. In diesen dokumentiert der Betreuer eines Paketes die Änderungen zu vorhergehenden Versionen. Ein Blick in diese Dateien nach einem Update ist bei der Fehlersuche hilfreich, wenn Probleme aufgetreten sind. Beispielsweise können in der neuen Version eines Paketes Dateien an einem anderen Ort liegen oder ein Dienst „horcht“ plötzlich auf einem anderen Port.
Da diese Änderungen erst nach der Installation bemerkt werden, kann es zu unerwünschten Unterbrechungen im Betrieb kommen. Abhilfe schafft hier das Paket apt-listchanges. Dieses zeigt vor der Installation eines Paketes die Veränderungen, die im Changelog dokumentiert sind, an. Der Administrator hat die Möglichkeit, den Installationsvorgang an dieser Stelle abzubrechen.
fr@surimi:~# apt-get install libmng1 ... Reading changelogs... Done libmng (1.0.3-4) unstable; urgency=low * Build with renamed version of lcms. -- Luis Arocha Mon, 3 Jun 2002 18:27:19 +0100 apt-listchanges: Mailing changelogs to fr Selecting previously deselected package liblcms1-dev. (Reading database ... 115754 files and directories currently installed.) ...
apt-listchanges wird bei der Installation über Debconf konfiguriert. Es kann dort eine E-Mail-Adresse angegeben werden, an die die Changelog-Informationen gesendet werden. Weiterhin kann bei der Konfiguration gewählt werden, ob nach dem Anzeigen des Changelogs die Installation fortgesetzt werden soll, oder (wie in diesem Beispiel) die Installation abgebrochen werden soll.
Dieses Programm zeigt kritische Fehler eines Paketes vor der Installation an. Somit hat der Administrator die Möglichkeit zu entscheiden ob ein Problem so schwerwiegend ist, dass von der Installation eines Paketes besser Abstand genommen wird.
Während der Installation oder dem Upgrade eines Paketes mit APT wird apt-listbugs automatisch aufgerufen und sucht im Debian Bug Tracking System nach Fehlermeldungen zu dem zu installierenden Paket. Sind Fehlermeldungen vorhanden, so werden diese angezeigt und die Installation des Paketes kann abgebrochen werden falls schwere Probleme zu befürchten sind.
Wird eine stabile Version von Debian verwendet, so ist es sehr unwahrscheinlich das bei einem Upgrade eines Paketes schwerwiegende Fehler auftreten. Auf den Einsatz von apt-listbugs kann in solchen Fällen meist verzichtet werden.
Wenn mit einer Entwicklungs-Version von Debian experimentiert wird, beispielsweise um die neuesten Programmversionen einzusetzen, kann es durchaus sinnvoll sein apt-listbugs einzusetzen.
Mittels apt-config lässt sich der Inhalt der Datei /etc/apt/config sowie die voreingestellten Werte anzeigen. Weiterhin lassen sich auch einzelne Werte mit diesem Tool setzen.
Die Optionen von apt-config lesen sich recht übersichtlich:
apt 0.5.4 for linux i386 compiled on Aug 19 2001 01:02:39 Usage: apt-config [options] command apt-config is a simple tool to read the APT config file Commands: shell - Shell mode dump - Show the configuration Options: -h This help text. -c=? Read this configuration file -o=? Set an arbitary configuration option, eg -o dir::cache=/tmp
apt-config sollte nicht als Kommando eingesetzt werden; es ist eigentlich als Systemkommando für die Verwendung innerhalb von Installations-Skripten vorgesehen.
apt-spy dient zur automatischen Erzeugung einer sources.list für apt. Hierzu wird aus dem Netz die Datei
ftp://ftp.us.debian.org/debian/README.mirrors geholt und auf Einträge für Debian-Mirror-Server hin untersucht. Alle diese Server werden hinsichtlich Antwortzeit und Bandbreite getestet. Die drei am besten zu erreichenden Server, dies müssen nicht zwingend die geographisch am nächsten gelegenen Server sein, werden dann in die Datei /etc/apt/sources.list aufgenommen.
aptitude verfolgt eine etwas andere Philosophie wie dselect. Es wird streng nach installierten, nicht installierten, virtuellen Paketen und Paketen mit einer neueren Version unterschieden. Innerhalb dieser vier Gruppen werden alle Pakete in einer Baumstruktur dargestellt, die auch die Verzeichnisstruktur innerhalb des Debian-Archives darstellt, also beispielsweise: main/admin oder non-US/non-free.
Sie können einzelne Teile der Struktur aufklappen und in den einzelnen Bereichen Pakete auswählen.
Abbildung 6.5. aptitude
Bei aptitude decken sich die meisten Tastaturbelegungen mit dselect.
- PFEIL-UNTEN
Bewegt den Auswahlbalken zum nächsten Eintrag.
- PFEIL-OBEN
Bewegt den Auswahlbalken zum vorherigen Eintrag.
- RETURN
Klappt ein Verzeichnis auf/zu.
- ^
Springt zum Verzeichnis, zu dem das Paket gehört.
- +
Markiert ein Paket zur Installation.
- -
Markiert ein Paket zum Löschen.
- i
Zeigt die Beschreibung des Paketes an.
- d
Zeigt die Abhängigkeiten des Paketes an.
- v
Zeigt die verfügbaren Versionen des Paketes an.
- u
Aktualisiert die Liste der verfügbaren Pakete.
- g
Startet die Installation der ausgewählten Pakete.
Die Bedeutung der verschiedenen Hintergrundfarben innerhalb des Programms:
- schwarz
„Normalzustand“ eines Paketes. Beim nächsten Installationsdurchlauf wird dieses Paket nicht verändert. Fett geschriebene Pakete sind bereits installiert.
- rot
Paket ist in einem unbrauchbaren Zustand oder kann nicht installiert werden.
- blau
Paket wird mit einer neueren Programmversion aktualisiert.
- weiß
Dieses Paket könnte aktualisiert werden, es wurde aber auf dem aktuellen Stand fixiert (hold).
- grün
Paket wird installiert.
- magenta
Paket wird gelöscht.
=== 6.7.20 gnome-apt ===
Dieses Programm passt sich mit seiner GTK+-basierten Oberfläche perfekt in den aktuellen Debian-GNOME-Desktop ein. Auch mit gnome-apt können Sie alle wichtigen Aufgaben erfüllen, die bei der Paketverwaltung anfallen.
Abbildung 6.6. GNOME Apt - Hauptfenster
Sehen wir uns zunächst die Menüs der Reihe nach an.
Hier finden sich zwei Einträge zur Konfiguration des Programms sowie der Punkt „Quit“, welcher das Programm beendet. „General Preferences“ bietet die Möglichkeit, die Paketbeschreibung im Hauptfenster des Programms auszublenden („Show package details in main window“). Sie haben so mehr Platz, um die Paketliste mit den verschiedenen Kategorien anzeigen zu lassen. Weiterhin können Sie hier die Reihenfolge der Spalten in der Paketliste verändern.
Interessanter ist der zweite Eintrag „Sources“. Hier können Sie die Quellen angeben, von denen aus die Paketinformationen sowie die eigentlichen Debian-Pakete installiert werden sollen. An dieser Stelle können Sie zum ersten Mal Abschied vom Texteditor nehmen, um die Datei
/etc/apt/sources.list zu bearbeiten.
Abbildung 6.7. GNOME Apt - Installationsquellen
Hinter der Schaltfläche „Add source“ verbirgt sich ein Assistent, der Sie durch die notwendigen Einstellungen führt. Ein Bild sagt wie so oft mehr als viele Worte, hier ein Beispiel für die Konfiguration einer neuen Installationsquelle:
Abbildung 6.8. GNOME Apt - Installationsquellen Distribution auswählen
Im ersten Dialog können Sie die gewünschte Version von Debian GNU/Linux auswählen. Normalerweise wird dies „stable“ für die stabile Version sein. Wenn Sie mit der Entwicklerversion experimentieren wollen, wählen Sie „unstable“, und wenn die Ihnen vorliegenden Pakete in kein Schema passen, steht Ihnen auch noch „other“ zur Auswahl.
Abbildung 6.9. GNOME Apt - Installationsquellen URI angeben
Geben Sie hier nun die Adresse an, unter der die Pakete zu finden sind. Dies bezieht sich auf den Punkt im Verzeichnisbaum, an dem sich das Verzeichnis „dists“ befindet. Sie können auch einen bestehenden Eintrag aus der Liste wählen.
Abbildung 6.10. GNOME Apt - Installationsquellen Bereiche auswählen
Wählen Sie hier nun eine oder mehrere Optionen aus. Sie bestimmen hier, aus welchen Bereichen der Distribution Pakete installiert werden sollen.
Die neue Quelle erscheint danach in der Liste und kann über „Remove source“ wieder entfernt werden oder über „Edit source“ nachträglich verändert werden. Allein diese Funktion wird einigen Nutzern so gut gefallen, dass Sie daraufhin nicht mehr auf gnome-apt verzichten wollen...
Hinter dem zweiten Menüpunkt „Actions“ finden Sie die eigentlichen Funktionen, die die notwendigen Aktionen auslösen, die Sie in der Paketliste eingestellt haben. „Update“ liest die Paketdateien neu ein und aktualisiert die Übersicht. Falls die Dateien nicht auf einem lokalen Medium vorliegen (CD-ROM oder Festplatte), werden diese per ftp- oder http-Protokoll vom angegebenen Server geholt. „Complete run“ installiert die ausgewählten Pakete beziehungsweise entfernt die nicht mehr gewünschten Pakete aus dem System. „Mark upgrades“ entspricht einem apt-get upgrade und markiert alle neuen Pakete, so dass diese beim nächsten Anwählen von „Complete run“ aktualisiert werden. „Mark smart upgrade“ hingegen dient zur Aktualisierung eines Debian-Systems auf die nächste Version. Dies entspricht einem
apt-get dist-upgrade.
Hier ist der wichtigste Menüpunkt sicherlich „Search“. Hierunter verbirgt sich ein recht mächtiges Werkzeug, um aus der umfangreichen Liste einzelne Pakete zu finden.
Abbildung 6.11. GNOME Apt - Suche nach Paketen
Beachten Sie, dass hierbei nicht nur nach Namen von Paketen gesucht wird, sondern auch die Paketbeschreibungen sowie alle anderen verfügbaren Informationen durchsucht werden. Unix-Kundige erreichen sowas auch mit einem geschickten grep auf die passenden Dateien, aber hier steht Ihnen diese Funktion direkt zur Verfügung.
Die weiteren Einträge im Menü „Package“ ändern den Status eines Paketes; dies läßt sich aber auch mit einem Mausklick in der Paketliste in der passenden Spalte erreichen.
Das nächste Menü - „View“ - erlaubt Ihnen, auf vielfältige Weise die Anzeige der Paketliste zu verändern. Der erste Eintrag „Details“ entspricht der Anzeige der Paketinformationen im Hauptfenster und wird nur benötigt, falls Sie dieses in den Einstellungen für das Hauptfenster ausgeschaltet haben. Hinter dem Menüpunkt „Columns“ können Sie wählen, welche Spalten im Hauptfenster angezeigt werden sollen.
Am spannendsten sind die letzten beiden Einträge: hier können Sie sehr detailliert beeinflussen, in welcher Reihenfolge die Pakete in der Paketliste angezeigt werden sollen. Mittels „Group“ beeinflussen Sie die Anzeige der gesamten Pakete. Sie können hier zwischen Sortierung nach Alphabet, nach Sektion, nach Priorität oder nach Status wählen. Die Sortierung nach Sektion wird Ihnen von dselect her bekannt vorkommen. Dabei werden die Pakete nach ihrer Zugehörigkeit, zum Beispiel „admin“ oder „x11“, angezeigt. Eine Sortierung nach Status wird Ihnen im allgemeinen lediglich die installierten und die noch nicht installierten Pakete anzeigen, also zwei Gruppen. Weiterhin lassen sich die Pakete nach Priorität anzeigen, hierbei wird unterschieden in „Extra“, „Important“, „No version available“, „Optional“, „Required“ sowie „Standard“.
Der Menüpunkt „Order“ dient der Sortierung innerhalb der eben beschriebenen Gruppen, auch hier können Sie wieder zwischen den oben genannten vier Varianten wählen.
Die Einträge im Menü „Advanced“ sind momentan noch ohne Funktion. Hier können Sie später Paketlisten im- und exportieren.
Im Menü „Help“ verbergen sich allgemeine Informationen zu gnome-apt (Eintrag „About...“) sowie eine Übersicht über die Bedeutung der verwendeten Symbole:
Abbildung 6.12. GNOME Apt - Verwendete Symbole
Sie werden gnome-apt normalerweise zur Installation neuer Pakete auf Ihrem System einsetzen. Wählen Sie hierzu im Menü „Actions“ den Eintrag „Update“, um die Paketinformationen zu aktualisieren. Danach wählen Sie die gewünschten Pakete aus, hier am Beispiel von gnome-apt gezeigt.
Abbildung 6.13. GNOME Apt - Paketauswahl
Sie können natürlich noch weitere Pakete auswählen; dies soll lediglich ein einfaches Beispiel sein. Wenn Sie lediglich dieses eine neue Paket installieren möchten, wählen Sie nun aus dem Menü „Action“ den Eintrag „Complete run“ aus. Sie bekommen noch einmal angezeigt, welche Aktionen nun durchgeführt werden, mit einem Mausklick auf „OK“ wird das gewünschte Paket installiert.
Abbildung 6.14. GNOME Apt - Paket-Installation
Wenn Sie auch die Pakete, die seit der letzten Installation auf dem Server aktualisiert wurden, auf Ihrem System aktualisieren möchten, wählen Sie vor der Installation aus dem Menü „Action“ noch den Eintrag „Mark upgrades“ aus.
Abbildung 6.15. GNOME Apt - Paket-Installation beendet
Synaptic ist ein weiteres grafisches Werkzeug zur Installation von Debian Paketen. Entwickelt wurde Synaptic zunächst von der Firma Conectiva, mittlerweile wird die Entwicklung vom Debian Team vorgenommen und Synaptic ist in die Distribution integriert.
Synaptic sollte zunächst auf dem System mittels apt-get install synaptic installiert werden. Dies sollte für die nächste Zeit der letzte Aufruf von apt-get gewesen sein... Synaptic benötigt, wie auch schon apt-get Superuser Rechte um Pakete installieren zu können.
Alternativ zum Aufruf aus der Kommandozeile, kann Synaptic auch aus dem GNOME Menü heraus gestartet werden. Da der Login unter GNOME auf einem Debian System nicht so ohne weiteres als Administrator („root“) erfolgen kann, muss der Menüeintrag so konfiguriert sein das Synaptic via gksu gestartet wird (gksu benötigt im Gegensatz zu gnomesu keine GNOME Bibliotheken). Das Debian Paket von Synaptik ist bereits entsprechend vorbereitet.
Synaptic benötigt nach dem Aufruf einige Zeit (abhängig ist die Dauer unter anderem von der verwendeten Hardware und der Anzahl der verfügbaren Pakete) zum Start. Mit APT vertraute Benutzer werden sich in Synpatic schnell zurechtfinden, für fast jede APT Aktion gibt es eine entsprechende Funktion in Synaptic. Im Unterschied zu APT ist Synaptic allerdings in der Lage die gewünschten Aktionen zu queuen und erst auszuführen wenn der Administrator mit dem gewünschten Gesamtergebnis zufrieden ist. APT dagegen würde jede Aktion unmitelbar sofort ausführen.
Zunächst zeigt Synaptic in der Übersicht alle Paketgruppen an. Mit einem Mausklick können die einzelnen Gruppen aufgeklappt werden und es können einzelne Pakete ausgewählt werden, beispielsweise um das gewünschte Paket neu zu installieren. Im hier gezeigten Beispiel wird das Paket bash aktualisiert. Das Fenster von Synaptiv teilt sich in verschiedene Bereiche: Unter der Menüleiste, über die sich alle verfügbaren Aktionen aufrufen lassen, befindet sich eine Iconleiste mit den am häufigsten verwendeten Aktionen.
Direkt darunter lassen sich Filter definieren und Suchbegriffe eingeben. Im zweiten Drittel des Fensters findet sich die Übersicht der Paketgruppen, welche wie beschrieben die einzelnen Pakete beherbergen.
Im unteren, linken Bereich befinden sich verschiedene Reiter über die weitere Informationen zu einzelnen Paketen abgerufen werden können. Ist noch kein Paket ausgewählt so lassen sich diese Reiter nicht aktivieren und erscheinen grau. Neben den allgemeinen Informationen wie Paketversion und mögliche aktuellere Versionen sowie im zweiten Reiter die detailierte Paketbeschreibung sind dies noch die Abhängigkeiten dieses Paketes sowie, im letzten Reiter, alle Dateien die in diesem Paket enthalten sind.
Rechts davon können Aktionen wie „Install“, „Keep“, „Remove“ oder auch „Hold“ auf jedes Paket angewendet werden. Auch können Pakete hier neu konfiguriert werden „Reconfigure“.
Um eine schnellen Zugriff auf die Paketinformationen zu haben, verwaltet das Debian Paketmanagement eine interne Liste auf dem System. Diese Liste muss von Zeit zu Zeit mit einer Quelle für Debian Pakete, dies wird in den meisten Fällen ein Debian FTP Server sein, abgeglichen werden.
Um die Paketliste zu aktualisieren dient die Schaltfläche „Update List“.
Die Paketübersicht kann in verschiedenen Formen angezeigt werden. Diese können über das Menü „View“ ausgewählt werden. Die beiden ersten Menüpunkt „Expand All“ und „Collapse All“ dienen dazu die „Äste“ der Baumförmigen Paketübersicht aus- und einzuklappen. Die Menüeinträge „Section Tree“ (Baumansicht mit Sektionen der Pakete), „Alphabetic Tree“ (nach Alphabet sortierte Übersicht) und „Status Tree“ (nach Paketstatus sortierte Liste) dienen dazu die Paketliste nach verschiedenen Kriterien anzuzeigen und erlauben so, je nach Anwendugsfall, eine schnelle Auswahl der Pakete.
Synaptic kann Pakete auf unterschiedliche Weisen suchen, alle basieren aber auf der Paketübersicht in der Mitte des Fensters. Jede Suche muss man sich als Filter über diese Paketübersicht vorstellen. Ein erster grober Filter kann über die Auswahl im Pull-Down-Menü „Show“ angewendet werden. Hier können beispielsweise alle Pakete („All Packages“), installierte Pakete („Installed“) oder zu aktualisierende („Upgradable“) Pakete ausgewählt werden.
Unabhängig von der getroffenen Auswahl, erscheint die Paketübersicht immer im gleichen Format, der Filter beeinflusst dabei lediglich welche Pakete angezeigt werden.
Wirklich interessant, und somit auch erwähnenswert, ist das Eingabefeld für die Suche nach Paketnamen. Dieses Feld verhält sich etwas ungewöhnlich, weil es sofort, nach jedem eigegebenen Zeichen, die Suche beginnt. Es ist nicht notwendig die Return-Taste zu betätigen. Eine solche Suchfunktion benötigt leider etwas Prozessorleistung, so das von der Benutzung auf seh schwachbrüstigen Systemen abgeraten wird.
Um Pakete zu installieren oder von dem System zu löschen, ist es ausreichend das gewünschte Paket auszuwählen und die Schaltfläche „Install“ bzw. „Remove“ anzuwählen. Synaptic merkt sich diese Auswahl und wird die gewünschten Pakete für die vorgesehene Aktion vormerken.
Die Aktion (installieren oder löschen) wird erst nach anklicken der Schaltfläche „Proceed“ ausgeführt. Synaptic wird dann die notwendigen Abhängigkeiten zwischen den Paketen auflösen und ggf. weitere Pakete installieren oder auch löschen. Sollten dabei Probleme auftauchen so wird der Administrator um eine Bestätigung gebeten.
Einige der zu installierenden Pakete müssen unter Umständen zunächst konfiguriert werden, auch diese Fragen leitet Synaptic an den Administrator weiter.
Um alle bereits installierten Pakete, von denen in einer bekannten Quelle neuere Versionen vorliegen, zu aktualisieren, können die beiden Schaltflächen „Upgrade All“ und „Dist Upgrade“ benutzt werden. „Upgrade All“ aktualisiert alle Paketen von denen eine neuere Version vorliegt, die aber keine zusätzlichen Pakete benötigen. Mitunter wurden aber Pakete vom Maintainer in kleinere Pakete aufgeteilt. Dies ist insbesondere beim Wechsel von einer Debian Version (woody) zur nächsten (sarge) möglich. Um auch diese Pakete zu aktualisieren kann der Button „Dist Upgrade“ gewählt werden.
In jedem Fall ist aber vorher mittels „Update List“ die Liste der verfügbaren Debian Pakete zu aktualisieren.
Debian benutzt die Informationen in der Datei /etc/apt/sources.list um verschiedene Quellen mit Debian Paketen zu verwalten. Über Änderungen in dieser Datei können sowohl die Server von denen die Pakete bezogen werden sollen, als auch die gewünschten Releases („stable“, „unstable“, „testing“) und die Bereiche („main“, „contrib“, „non-free“) verwaltet werden.
Normalerweise werden Anpassungen an dieser Datei vom Administrator mittels eines Texteditors vorgenommen. Synaptic benutzt hierzu ein handliches Werkzeug, welches über das Menü „Setting“/„Repository“ zu erreichen ist.
Jeder Eintrag in der Datei kann über die entsprechenden Felder geändert werden, so werden Syntax Fehler vermieden. Weiterhin können einzelne Einträge in der Datei deaktiviert werden. Über die Schaltfläche „Vendors“ können Hersteller von Paketen definiert werden. Diese Angaben landen in der Datei /etc/apt/vendors.list und werden über einen (bisher optionalen Eintrag) in der Datei /etc/apt/sources.list referenziert.
Wichtig ist es insbesondere neben einem Kürzel und dem Namen des Herstellers den Kryptografischen Fingerprint anzugeben. Diese Funktion wird noch nicht ausgiebig genutzt, wird es aber zukünftig erlauben die Authentizität von Paketen zu überprüfen.