Zum Inhalt springen

Advanced Packaging Tool: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 72: Zeile 72:


== debconf ==
== debconf ==
Manche Pakete sind mit dem debconf-Konfigurationssystem ausgestattet. Dadurch wird eine Intervention des Benutzers möglich, sodass diesem bestimmte Elemente wie beispielsweise Fragen oder Hinweise aus s.g. "Vorlagen" (eng. "templates") präsentiert werden, worauf der Benutzer bestimmte Entscheidungsmöglichkeiten hat.
[[debconf]]
 
Dadurch kann beispielsweise direkt die standardmäßige Sprache festgelegt werden, ohne dass der Benutzer diese Änderung selbst in den Konfigurationsdateien vornehmen muss.
 
Dieses Konfigurationssystem ist nicht auf einzelne Pakete beschränkt, sondern es können auch paketüberfreifende Konfigurationseinstellungen (anhand s.g. "shared templates") vorgenommen werden. Somit kann beispielsweise der aktuelle Displaymanager von einem anderen Loginmanager als Standard abgelöst werden.
 
Debconf wird dabei über die Maintainerskripte '''preinst''' (vor der eigentlichen Installation) und '''postinst''' (nach der Installation) bzw. '''postrm''' (zum abschließenden Entfernen der Datenbankeinträge nach Deinstallation des Paketes) aufgerufen.
 
Anhand der durch den Benutzer oder durch die Standardwerte gegebenen Rückgabewerte werden mit diesen Skripten bestimmte Einstellungen am System vorgenommen.
 
Nachdem ein Benutzer die erste Programminstallation eines mit debconf ausgestatteten Paketes durchgeführt und somit eine gewisse Konfiguration vorgenommen hat, kann das Paket mit dem Befehl <tt>dpkg-reconfigure</tt> "neu konfiguriert" bzw. "rekonfiguriert" werden.
 
Das heißt, dass nun eine Benutzerinteraktion wie bei der Erstinstallation stattfindet.
 
Vorlagen und die Ergebnisse der Elemente werden in die debconf-Datenbanken unter '''/var/cache/debconf''' gespeichert.
 
Ergebnisse und der Status (gesehen oder nicht) von Vorlagen, werden in die Datenbank '''config.dat''' geschrieben, die Vorlagen selbst sind unter '''templates.dat''' zu finden.
 
In Ausnahmefällen wird ein Passwort abgefragt, welches dann nur unter Schutz der Rootrechte in '''passwords.dat''' gesichert wird.
 
=== Konfigurierbaren Pakete anzeigen ===
Eine Liste der unter debconf registrierten "Besitzer von Konfigurationsdateien" (welche idR. den Paketnamen entsprechen) erhält man im Terminal mit:
 
debconf-show --listowners
 
Soll zusätzlich noch die Passwortdatenbank nach entsprechenden Besitzern durchsucht werden, sind Rootrechte vonnöten .
 
=== Konfiguration abfragen ===
Die Einträge in der debconf-Datenbank lassen sich mit folgendem Befehl abfragen:
 
debconf-show PAKET
 
Soll zusätzlich noch die Passwortdatenbank nach entsprechenden Einstellungen durchsucht werden, sind Rootrechte vonnöten .
 
=== Paket neu konfigurieren ===
Die Elemente wie Fragen oder Hinweise werden nach ihrer Priorität gefiltert. Die automatische Filterung hängt in erster Linie von der in der Vorlage festgelegten Priorität ab.
 
Aber auch die von der Paketverwaltung abhängige Schnittstellenoberfläche oder der Status "bereits gesehen" (s.g. "seen") spielen eine Rolle.
 
Mit der Option ''--priority'' können mit <tt>dpkg-reconfigure</tt> die Vorlagen bereits installierte Pakete mit festgelegter Filterung dargestellt werden:
 
{|
|-
| colspan="2" | '''Anzeigefilter manuell vorgeben '''
|-
| | '''Option + Parameter '''
| | '''Beschreibung '''
|-
| | '''''--priority=low'' '''
| | Alle Elemente wie Fragen oder Hinweise werden dem Benutzer vorgelegt.
|-
| | '''''--priority=medium'' '''
| | Normale Elemente, die allgemein vernünftige Vorgaben haben, werden gezeigt.
|-
| | '''''--priority=high'' '''
| | Elemente, die keine allgemein vernünftigen Vorgaben haben, werden gezeigt.
|-
| | '''''--priority=critical'' '''
| | Fast alles wird auf die Vorgabewerte gesetzt, nur Elemente (idR. Fragen), die ohne Intervention des Benutzers die Systemintegrität stören könnten, werden gezeigt.
|-
|}
Der folgende Befehl konfiguriert zum Beispiel das Paket '''ssh''' neu, wobei alle durch das Paket bereitgestellte Vorlagen durchgearbeitet werden:
 
sudo dpkg-reconfigure --priority=low ssh
 
Analog gibt es den Befehl <tt>dpkg-preconfigure</tt>, mit welchem die debconf-Vorlagen, welche ''vor'' einer Paketinstallation durchzuführen waren, abgearbeitet werden.
 
===== Hinweis =====
Standardmäßig wird bei dpkg-reconfigure und dpkg-preconfigure (unabhängig von der systemweiten debconf-Priorität) die Priorität "low" verwendet.
 
=== Schnittstellenoberflächen ===
debconf kann auf mehrere Wege mit dem Benutzer kommunizieren. Es werden folgende Schnittstellenoberflächen (s.g. "frontends") unterstützt, wobei diese unterschiedlich funktional sind.
 
{|
|-
| colspan="3" | '''Schnittstellenoberflächen '''
|-
| | '''Typ '''
| | '''Beschreibung '''
| | '''Funktionalität '''
|-
| | Dialog
| | konsolenbasierte Vollbilddarstellung mit dialog
| | vollständige Interaktion möglich
|-
| | Readline
| | traditionelle, einfache Textschnittstelle
| | um Momentanwert zu sehen, muss '''libterm-readline-gnu-perl''' installiert sein
|-
| | Gnome
| | in Gnomeumgebung eingepasste X-Schnittstelle, ist nicht an GNOME gebunden
| | vollständige Interaktion möglich
|-
| | Kde
| | in KDE-Umgebung eingepasste X-Schnittstelle, ist nicht an KDE gebunden
| | vollständige Interaktion möglich
|-
| | Editor
| | Bearbeitung der Konfiguration über standardmäßigen (mit $EDITOR festgelegten) Texteditor
| | vollständige Interaktion möglich
|-
| | Web
| | Konfiguration über Browser, standardmäßig: https://localhost:8001/
| | vollständige Interaktion möglich
|-
| | Nicht-interaktiv
| | Es findet keine Interaktion statt (nicht empfohlen!).
| | keine Interaktion möglich
|-
|}
Je nach benutztem Paketverwaltungsprogramm wird automatisch eine Schnittstellenoberfläche davon ausgewählt. Man kann den Standard aber durch Rekonfigurieren des Paketes '''debconf''' festsetzen.
 
=== Gezielte Konfiguration ===
Die Datenbank kann nach folgendem Muster (am Beispiel einer einfachen Auswahl) direkt geändert werden. ''"BESITZER"'' ist dabei meist der entsprechende Paketname.
 
echo "set BESITZER/VORLAGE WERT" | sudo debconf-communicate
 
===== Hinweis =====
Es wird ausschließlich der Datenbankeintrag geändert. Eine Änderung an Konfigurationsdateien wird nicht vorgenommen (dies ist den Maintainerskripten '''preinst''', '''postinst''', ... vorbehalten).
 
Deswegen ist ein solches Eingreifen nur in Ausnahmefällen sinnvoll.
 
Durch manuelles Ausführen der entsprechenden Maintainerskripte unter '''/var/cache/dpkg/info''' kann aber <tt>dpkg-preconfigure</tt> und analog <tt>dpkg-reconfigure</tt> "nachgestellt" werden.
 
Wie dieser Befehl sinnvoll einsetzbar ist, zeigt folgendes sehr spezielles Beispiel an dem Paket '''ttf-mscorefonts-installer''':
 
Nach einem "Abwürgen" der Schnittstellenoberfläche mit der Frage ob die EULA akzeptiert werden soll, ist die debconf-Datenbank nicht konsistent.
 
Nun kann die EULA nachträglich akzeptiert werden, sodass das Paket ohne Fehler reinstalliert werden kann:
 
echo "set msttcorefonts/accepted-mscorefonts-eula true" | sudo debconf-communicate
 
=== Grafische Konfiguration ===
==== configure-debian ====
configure-debian ist ein konsolenbasiertes Rekonfigurationsprogramm, welches die Besitzer von Paketen, in ihren Bereich (s.g. "Section") eingeordnet, darstellt.
 
sudo apt-get install configure-debian
 
==== gkdebconf ====
gkdebconf ist ein grafisches Rekonfigurationsprogramm, welches ebenfalls die Pakete in die Unterbereiche einteilt, aber auch alle auf einmal darstellen kann. Das Programm besitzt darüber hinaus die Fähigkeit, die Schnittstellenoberfläche frei zu wählen.
 
sudo apt-get install gkdebconf
 
=== Dateien und Paketen ===
Der folgende Befehl in einem Terminal zeigt an, zu welchem Paket eine Datei gehört:
 
dpkg -S DATEINAME
 
Das gefundene Paket kann dann, sofern ein Eintrag in der debconf-Datenbank besteht, mit <tt>dpkg-reconfigure</tt> neu konfiguriert werden. Existiert kein solcher Eintrag, wird bei Ausführung des Befehls nichts gemacht.
[[Kategorie:APT]]

Version vom 13. September 2025, 13:54 Uhr

Advanced Packaging Tool

APT ist ein Paketmanagement-System, das im Bereich des Betriebssystems Debian GNU/Linux entstanden ist.

Mittels APT ist es sehr einfach, Programmpakete zu suchen, zu installieren oder auch das ganze System auf den neuesten Stand zu bringen.

Das Advanced Packaging Tool (APT) ist ein Paketverwaltungssystem, das im Bereich des Betriebssystems Debian GNU/Linux entstanden ist und dpkg zur eigentlichen Paketverwaltung benutzt. Ziel ist es, eine einfache Möglichkeit zur Suche, Installation und Aktualisierung von Programmpaketen zur Verfügung zu stellen.

APT besteht aus einer Programmbibliothek und mehreren diese Bibliothek nutzenden Kommandozeilen-Programmen, von denen apt-get und apt-cache zentral sind. Seit Debian 3.1 wird die Benutzung von aptitude als konsolenbasierendes Paketverwaltungssystem empfohlen.

APT steht auch in OpenSolaris zur Verfügung (es wurde in die Distribution Nexenta OS aufgenommen) und wurde auch auf Mac OS X portiert, wo es im Rahmen des Fink-Projektes zur Installation von Debian-Softwarepaketen genutzt wird.

Basierend auf der Idee von APT wurde Win-Get erschaffen, welches eine ähnliche Paketverwaltung für MS Windows zur Verfügung stellt.

Interna

In der Datei /etc/apt/sources.list stehen die sogenannten Repositories, also Quellen für Pakete. Dies können entweder CDs oder DVDs, Verzeichnisse auf der Festplatte oder, öfter, Verzeichnisse auf HTTP- oder FTP-Servern sein. Befindet sich das gesuchte Paket auf einem Server (oder einem lokalen Datenträger), so wird dieses automatisch heruntergeladen und installiert.

Die Pakete liegen im Debian-Paketformat (.deb) vor, in dem auch die jeweiligen Abhängigkeiten der Programmpakete untereinander abgelegt sind. So werden automatisch für ein Programm auch eventuell erforderliche Programmbibliotheken mit heruntergeladen und installiert.

APT setzt auf dpkg auf. APT beschäftigt sich in erster Linie mit der Beschaffung von Paketen, dem Vergleich von verfügbaren Versionen der Pakete und der Verwaltung von Paket-Archiven.

Frontends

Außer der oben erwähnten Kommandozeilenschnittstelle gibt es weitere Frontends für die Paketverwaltung, die APT verwenden. Aptitude bietet eine zeichenorientierte Benutzerschnittstelle. Synaptic ist ein GUI-Frontend für die Desktop-Umgebung.

Unter KDE stehen außerdem die Programme Adept oder KPackageKit zur Verfügung. Letzteres unterstützt neben APT zusätzlich weitere Systeme wie RPM. Mit der auf der Abstraktionsschicht QApt aufbauenden Muon Package Management Suite sind daneben auch weitere GUI-Frontends in der Entwicklung.

Smart Package Manager kann ebenfalls auf Repositories zugreifen, die für APT erstellt wurden. Er nutzt dabei aber nicht APT, sondern eigene Routinen.

Mit Fink und Cydia stehen Frontends für Mac OS X und dessen Derivate zur Verfügung.

APT-RPM

Obwohl ursprünglich für Debian-Programmpakete geschrieben, wurde APT später auch auf RPM-Systeme portiert.

Gustavo Niemeyer führte die Portierung für die Linux-Distribution Conectiva durch und pflegte diese geraume Zeit als Maintainer. Inzwischen arbeitet er aber hauptsächlich an seinem neuen Projekt Smart Package Manager, und APT-RPM wird von anderen Entwicklern gepflegt und weiterentwickelt.

Apt-cacher und apt-proxy

Wer mehrere Rechner mit einer APT-basierten Paketverwaltung im Netz hat, kann sein Netz und die Server, die die Pakete zur Verfügung stellen, erheblich entlasten, indem er eines dieser Programme einsetzt.

Im Gegensatz zu weniger spezifischen Proxyservern wie etwa Squid, die nur die in den Übertragungsprotokollen enthaltenen Informationen verwenden können, kennen und verwerten diese Proxies die Paket-Struktur und sichern die Aktualität ihrer gespeicherten Daten entsprechend. Apt-cacher kann so eingestellt werden, dass er sich in regelmäßigen Abständen automatisch aktualisiert.

apt-get

apt-get

apt-Kommandos

APT/Kommandos

Paketquellen

APT/Paketquellen

Apt-Pinning

APT/Pinning

apt-cache

Apt-cache

apt-file

apt-file

apt-key

apt-key

Tipps

Advanced Packaging Tool/Tipps

dpkg

dpkg

aptitude

aptitude

Problembehebung

Advanced Packaging Tool/Problembehebung

debconf

debconf