Inhaltsverzeichnis
apt
contra apt-get
/
apt-cache
contra aptitude
Testing
mit einigen Paketen aus
Unstable
Unstable
mit einigen Paketen aus
Experimental
Anmerkung | |
---|---|
Dieses Kapitel geht davon aus, dass The data source of the APT system is collectively refered as the source list in this document . This can be
defined anywhere in the " |
Debian ist eine Organisation Freiwilliger, die konsistente Distributionen vorkompilierter Binärpakete von freier Software erstellt und sie über ihr Archiv verteilt.
Das Debian-Archiv wird von vielen Spiegel-Servern via HTTP und FTP bereitgestellt. Es ist auch als CD-ROM/DVD erhältlich.
Das derzeit empfohlene Debian-Werkzeug für Paketmanagement, das all diese Ressourcen nutzen kann, ist das Advanced Packaging Tool (APT).
Debians Paketmanagement-System, ermöglicht dem Nutzer (wenn es korrekt genutzt wird), konsistente Sätze von Binärpaketen auf dem System zu installieren. Derzeit sind für die amd64-Architektur 74165 Pakete verfügbar.
Das Debian-Paketmanagement-System hat eine reichhaltige Geschichte und bietet eine Auswahl an Frontend-Benutzerprogrammen, die genutzt werden können sowie an verschiedenen Varianten des Archivzugriffs. Derzeit empfehlen wir folgendes:
apt
(8) für alle interaktiven Befehlszeilen-Operationen,
inklusive Paketinstallationen und -entfernungen sowie
Distributions-Upgrades;
apt-get
(8) für Paketverwaltungsoperationen mittels
Skripten; auch eine Ausweichlösung für den Fall, dass apt
nicht verfügbar ist (z.B. auf älteren Debian-Systemen);
aptitude
(8) für ein interaktives Text-Interface zur
Verwaltung der installierten Pakete und für die Suche nach verfügbaren
Paketen.
Tabelle 2.1. Liste von Debians Paketmanagement-Werkzeugen
Paket | Popcon | Größe | Beschreibung |
---|---|---|---|
dpkg
|
V:912, I:999 | 6388 | niederschwelliges Paketmanagement-System für Debian (datei-basiert) |
apt
|
V:865, I:999 | 4318 | APT-Frontend zur Paketverwaltung mit text-basierter Bedienung:
apt /apt-get /apt-cache |
aptitude
|
V:48, I:253 | 4389 | APT-Frontend für interaktives Paketmanagement mit Vollbildschirm-Konsole:
aptitude (8) |
tasksel
|
V:34, I:980 | 347 | APT-Frontend zur Installation von vorausgewählten Programmgruppen (Tasks):
tasksel (8) |
unattended-upgrades
|
V:182, I:278 | 301 | Erweiterungspaket für APT, um die automatische Installation von Sicherheits-Aktualisierungen zu ermöglichen |
gnome-software
|
V:153, I:263 | 3085 | Software Center für GNOME (grafisches Frontend für APT) |
synaptic
|
V:46, I:375 | 7627 | grafischer Paketmanager (grafisches GTK-Frontend für APT) |
apt-utils
|
V:379, I:998 | 1065 | APT-Hilfsprogramme: apt-extracttemplates (1),
apt-ftparchive (1) und apt-sortpkgs (1) |
apt-listchanges
|
V:358, I:872 | 398 | Benachrichtigungswerkzeug für die Änderungshistorie von Paketen |
apt-listbugs
|
V:6, I:8 | 477 | Auflistung kritischer Fehler vor jeder APT-Installation |
apt-file
|
V:17, I:67 | 89 | APT-Paketsuch-Werkzeug - Befehlszeilen-Interface |
apt-rdepends
|
V:0, I:5 | 39 | rekursive Auflistung von Paketabhängigkeiten |
Hier einige wichtige Punkte für die Paketkonfiguration auf einem Debian-System:
Die händische Konfiguration durch den Systemadministrator wird respektiert. In anderen Worten: das Paketkonfigurationssystem führt keine aufdringliche Konfiguration durch, nur weil es einfach wäre.
Jedes Paket enthält sein eigenes Konfigurationsskript mit einer
standardisierten Benutzerschnittstelle namens debconf
(7),
um Sie bei der Erstinstallation des Pakets zu unterstützen.
Debian-Entwickler versuchen ihr Bestes, um mittels der Paketkonfigurationsskripte für einen fehlerfreien Ablauf der Paketaktualisierungen zu sorgen.
Dem Systemadministrator steht die volle Funktionalität der paketierten Software zur Verfügung, aber Funktionen mit Sicherheitsrisiken sind standardmäßig deaktiviert.
Wenn Sie von Hand einen Dienst aktivieren und so Sicherheitsrisiken hervorrufen, sind Sie selbst für die Beherrschung der Risiken verantwortlich.
Esoterische Konfigurationen könnten manuell durch den Systemadministrator aktiviert worden sein. Dies kann Behinderungen mit beliebten, grundlegenden Systemkonfigurations-Programmen verursachen.
Warnung | |
---|---|
Installieren Sie nicht Pakete aus einer wahllosen Mischung von Debian-Suiten (Stable, Testing, Unstable, Experimental). Sie können dadurch die Paketkonsistenz beschädigen und deren Korrektur erfordert ein tiefes Verständnis der Systemverwaltung wie Compiler-ABI, Bibliotheks-Versionen, Interpreter-Funktionalitäten usw. |
The newbie Debian system administrator should
stay with the stable
release of Debian while applying only security updates. Until you
understand the Debian system very well, you should follow the following
precautions.
Do not include testing
or unstable
in
the source list.
Do not mix standard Debian with other non-Debian archives such as Ubuntu in the source list .
Erstellen Sie keine "/etc/apt/preferences
"-Datei.
Ändern Sie nicht über Konfigurationsdateien das Standardverhalten der Paketmanagement-Werkzeuge, wenn Sie die vollständigen Auswirkungen nicht kennen.
Installieren Sie nicht irgendwelche Pakete mit "dpkg -i
irgendein_paket
".
Installieren Sie niemals irgendwelche Pakete mit "dpkg --force-all
-i irgendein_paket
".
Löschen oder verändern Sie keine Dateien in
"/var/lib/dpkg/
".
Überschreiben Sie keine Systemdateien, indem Sie Software-Programme installieren, die direkt aus den Quellen übersetzt wurden.
Installieren Sie solche Pakete, falls nötig, in
"/usr/local
" oder "/opt
".
The non-compatible effects caused by violating above precautions to the Debian package management system may leave your system unusable.
Ein ernsthafter Debian-Systemadministrator, der missionskritische Server betreibt, sollte besondere Vorsicht walten lassen.
Installieren Sie nicht irgendwelche Pakete von Debian, die Sicherheitsaktualisierungen beinhalten, ohne sie unter sicheren Bedingungen sorgfältig mit Ihrer speziellen Konfiguration getestet zu haben.
Sie als Systemadministrator sind am Ende für Ihr System verantwortlich.
Die lange Stabilitäts-Historie des Debian-Systems ist für sich alleine keine Garantie.
Achtung | |
---|---|
Für Ihre Produktions-Server wird die
|
Trotz der obigen Warnungen weiß ich, dass viele Leser dieses Dokuments
trotzdem die neuere Testing
- oder
Unstable
-Suite nutzen möchten.
Die Erleuchtung, die wir Ihnen mit den folgenden Informationen bieten, bewahrt Sie vor der ewigen karmischen Qual der Upgrade-Hölle und ermöglicht Ihnen, das Debian-Nirvana zu erreichen.
Diese Liste zielt auf ein selbst-administriertes Arbeitsplatzsystem ab:
Nutzen Sie die Testing
-Suite, da dies letztlich ein
Rolling-Release ist, das von Debians Qualitässicherungs-Infrastruktur
profitiert, wie Debians
Continuous-Integration-Unterstützung, der Regel, dass nur Quellcode hochgeladen
werden kann sowie die Nachverfolgung von Versionsübergängen bei
Bibliotheken. Die Pakete in der Testing
-Suite
werden häufig genug aktualisiert, um stets die neuesten Funktionalitäten
bieten zu können.
Set the codename corresponding to the testing
suite
("trixie
" during the
bookworm
-as-stable
release
cycle) in the source list.
Manually update this codename in the source list to the new one only after assessing situation by yourself for about a month after the major suite release. The Debian user and developer mailing list are good sources of information for this, too.
Die Verwendung von Unstable
wird nicht empfohlen. Die
Unstable
-Suite ist für Entwickler gut geeignet zur Fehlersuche in Paketen, bringt
aber für normale Arbeitsplatznutzer auch gewisse unnötige Risiken mit
sich. Selbst wenn die Unstable
-Suite von Debian die
meiste Zeit sehr stabil erscheint, hat es in der Vergangenheit bereits
Probleme mit bestimmten Paketen gegeben, von denen einige nicht einfach zu
beheben waren.
Hier einige Tipps für grundlegende Vorsichtsmaßnahmen, wie Sie eine schnelle und einfache Systemwiederherstellung bei Fehlern in Debian-Paketen gewährleisten können:
Erstellen Sie ein Dual-boot-fähiges
System, das Debians Stable
-Suite auf einer anderen
Partition installiert hat.
Halten Sie die Installations-CD griffbereit, um davon das Rettungssystem (Rescue mode) nutzen zu können.
Ziehen Sie in Betracht, apt-listbugs
zu installieren, um
vor einer Paketaktualisierung relevante Informationen aus der Debian-Fehlerdatenbank (BTS)
einsehen zu können.
Lernen Sie genug über die Infrastruktur des Paketsystems, um das Problem umgehen zu können.
Achtung | |
---|---|
Falls Sie keine dieser Vorsichsmaßnahmen durchführen können, sind Sie
möglicherweise nicht bereit für die |
Tipp | |
---|---|
Die offiziellen Richtlinien für das Debian-Archiv sind im Debian Policy-Handbuch, Kapitel 2 - The Debian Archive festgeschrieben. |
Lassen Sie uns das Debian-Archiv aus der Sicht eines Benutzers betrachten.
For a system user, the Debian archive is accessed using the APT system.
The APT system specifies its data source as the
source list and it is described in
sources.list
(5).
For the bookworm
system with the typical HTTP
access, the source list in one-line-style
as the following:
deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free deb-src http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free deb http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free deb-src http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free
Alternatively, the equivqlent source list in deb822-style as the following.
Types: deb deb-src URIs: http://deb.debian.org/debian/ Suites: bookworm Components: main non-free-firmware contrib non-free Types: deb deb-src URIs: http://security.debian.org/debian-security/ Suites: bookworm-security Components: main non-free-firmware contrib non-free
Key points of the source list are followings.
One-line-style format
It's definition files are in the "/etc/apt/sources.list
"
file and "/etc/apt/sources.list.d/*.list
" files.
Each line defines the data source for the APT system.
Die "deb
"-Zeile definiert die Quelle für Binärpakete.
Die "deb-src
"-Zeile definiert die Quelle für Quellpakete.
Das erste Argument ist die Wurzel-URL für das Debian-Archiv.
The 2nd argument is the distribution name using either the suite name or the codename.
Das dritte und die darauf folgenden Argumente sind eine Liste gültiger Namen für Bereiche im Debian-Archiv.
Deb822-style format
It's definition files are in
"/etc/apt/sources.list.d/*.source
" files.
Each block of lines separated by a blank line defines the data source for the APT system.
The "Types:
" stanza defines the list of types such as
"deb
" and "deb-src
".
The "URIs:
" stanza defines the list of root URIs of the
Debian archive.
The "Suites:
" stanza defines the list of distribution
names using either the suite name or the codename.
The "Components:
" stanza defines the list of valid
archive area names of the Debian archive.
The definition for "deb-src
" can safely be omitted if it
is just for aptitude
which does not access source related
meta data. It speeds up the updates of the archive meta data.
The URL can be "https://
", "http://
",
"ftp://
", "file://
", ….
Lines starting with "#
" are comments and ignored.
Here, I tend to use codename "bookworm
" or
"trixie
" instead of suite name
"stable
" or "testing
" to avoid
surprises when the next stable
is released.
Tipp | |
---|---|
If " |
Here is the list of URL of the Debian archive sites and suite name or
codename used in the configuration file after the
bookworm
release.
Tabelle 2.2. Liste von Debian-Archiv-Seiten
Archiv-URL | suite name | codename | purpose of repository |
---|---|---|---|
http://deb.debian.org/debian/ | stable |
bookworm |
Quasi-static stable release after extensive checks |
http://deb.debian.org/debian/ | testing |
trixie |
Dynamic testing release after decent checks and short
waits |
http://deb.debian.org/debian/ | unstable |
sid |
Dynamic unstable release after minimal checks and no
waits |
http://deb.debian.org/debian/ | experimental |
Nicht verfügbar | Pre-release experiments by developers (optional, only for developer) |
http://deb.debian.org/debian/ | stable-proposed-updates |
bookworm-proposed-updates |
Updates for the next stable point release (optional) |
http://deb.debian.org/debian/ | stable-updates |
bookworm-updates |
Subset of stable-proposed-updates suite needing urgent
updates such as timezone data (optional) |
http://deb.debian.org/debian/ | stable-backports |
bookworm-backports |
Random collection of recompiled packages mostly from the
testing release (optional) |
http://security.debian.org/debian-security/ | stable-security |
bookworm-security |
Security updates for the stable release (important) |
http://security.debian.org/debian-security/ | testing-security |
trixie-security |
This isn't actively supported nor used by the security team |
Achtung | |
---|---|
Only pure |
Achtung | |
---|---|
Sie sollten grundsätzlich nur eine der Suiten |
Tipp | |
---|---|
For the Debian system with the |
Anmerkung | |
---|---|
Sicherheitsprobleme im |
Tabelle 2.3. Liste der Debian-Archiv-Bereiche
Bereich | Anzahl der Pakete | Kriterien der Paketkomponenten |
---|---|---|
main |
72806 | DFSG-konform und keine Abhängigkeiten zu non-free |
non-free-firmware |
39 | not DFSG compliant, firmware required for reasonable system installation experience |
contrib |
356 | DFSG-konform, aber mit Abhängigkeiten zu non-free |
non-free |
964 | not DFSG compliant and not in non-free-firmware |
Die Paketanzahl in obiger Liste gilt für die amd64-Architektur. Der
main
-Bereich stellt das Debian-System dar (lesen Sie dazu
Abschnitt 2.1.6, „Debian ist zu 100% freie Software“).
Die Struktur des Debian-Archivs können am besten erforschen, indem Sie mit
Ihrem Browser die jeweilige Archiv-URL mit einem angehängten
dists
oder pool
besuchen.
Die Distribution wird auf zwei Arten referenziert, über die Suite oder über den Codenamen. Das Wort "Distribution" wird in vielen Dokumentationen synonym zum Namen der Suite verwendet. Die Beziehung zwischen Suite und Codename kann wie folgt zusammengefasst werden:
Tabelle 2.4. Zusammenhanag zwischen Suite und Codename
Zeitraum | Suite = Stable |
Suite = Testing |
Suite = Unstable |
---|---|---|---|
nach der Veröffentlichung von Bookworm |
Codename = Bookworm |
Codename = Trixie |
Codename = Sid |
nach der Veröffentlichung von Trixie |
Codename = Trixie |
Codename = Forky |
Codename = Sid |
Die Historie der Codenamen ist beschrieben in der Debian FAQ: Kapitel 6.2.1 Welche Codenamen wurden in der Vergangenheit verwendet?
In der strengeren Debian-Archiv-Terminologie wird das Wort "Sektion" (section) speziell für die Kategorisierung der Pakete durch Anwendungen genutzt (obwohl der Begriff "main section" auch verwendet werden könnte, um den Bereich "main" im Debian-Archiv zu beschreiben).
Immer wenn ein Debian-Entwickler (DD, von Debian developer) ein Paket in das
Unstable
-Archiv hochlädt (via incoming), muss der DD dafür sorgen, dass das
hochgeladene Paket mit dem aktuellen Satz der Pakete im
Unstable
-Archiv kompatibel ist.
Falls der DD diese Kompatibilität absichtlich verletzt (für wichtige Bibliotheksaktualisierungen usw.), gibt es gewöhnlich eine Ankündigung dazu auf der Mailingliste debian-devel.
Before a set of packages are moved by the Debian archive maintenance script
from the unstable
archive to the
testing
archive, the archive maintenance script not only
checks the maturity (about 2-10 days old) and the status of the RC bug
reports for the packages but also tries to ensure them to be compatible with
the latest set of packages in the testing
archive. This
process makes the testing
archive very current and
usable.
Durch den abgestuften, vom Release-Team gesteuerten Archiv-Freeze-Prozess
ist das Testing
-Archiv bereits gereift, um es auf diesem
Wege - mit einigen manuellen Eingriffen - vollständig konsistent und
fehlerfrei zu machen. Dann wird die neue
Stable
-Veröffentlichung erzeugt, indem der Codename für
das alte Testing
-Archiv dem neuen
Stable
-Archiv zugewiesen wird; anschließend wird ein
neuer Codename für das neue Testing
-Archiv erstellt. Die
anfänglichen Inhalte des neuen Testing
entsprechen exakt
dem des neu veröffentlichten Stable
.
Sowohl das Unstable
- wie auch das
Testing
-Archiv können aus unterschiedlichen Gründen unter
vorübergehenden Störungen leiden:
Upload eines beschädigten Pakets in das Archiv (meistens bei
Unstable
);
Verzögerung, bis die neuen Pakete im Archiv akzeptiert werden (meistens bei
Unstable
);
Timing-Probleme bei der Archiv-Synchronisation (sowohl bei
Testing
wie auch bei Unstable
);
Manuelle Eingriffe in das Archiv wie das Entfernen eines Pakets (überwiegend
bei Testing
).
Falls Sie sich also jemals entscheiden, diese Archive zu verwenden, sollten Sie in der Lage sein, diese Arten von Störungen zu beheben oder zu umgehen.
Achtung | |
---|---|
For about few months after a new |
Tipp | |
---|---|
Wenn Sie das |
Näheres über Begriffsdefinitionen zum Debian-Archiv finden Sie im Debian Policy-Handbuch:
"Sections" (Sektionen);
"Priorities" (Prioritäten);
"Base system" (Grundsystem);
"Essential packages" (grundlegende Pakete).
Debian besteht aus folgenden Gründen zu 100% aus freier Software:
Debian installiert standardmäßig nur freie Software und respektiert so diedie Freiheit des Benutzers.
Debian stellt in main
nur freie Software bereit.
Debian empfiehlt, nur freie Software aus main
zu
verwenden.
No packages in main
depend nor recommend packages in
non-free
nor non-free-firmware
nor
contrib
.
Einige Leute fragen sich, ob sich folgende Fakten widersprechen oder nicht:
"Debian wird zu 100% frei bleiben" (der erste Punkt des Debian-Gesellschaftsvertrags).
Debian servers host some non-free-firmware
,
non-free
and contrib
packages.
Sie widersprechen sich nicht, und zwar aus folgenden Gründen:
Das Debian-System ist zu 100% frei und seine Pakete werden von
Debian-Servern im main
-Bereich vorgehalten.
Packages outside of the Debian system are hosted by Debian servers in the
non-free
, non-free-firmware
and
contrib
areas.
Dies wird auch präzise unter Punkt 4 und 5 des Debian-Gesellschaftsvertrags erklärt:
Unsere Prioritäten sind unsere Anwender und Freie Software
Wir orientieren uns an den Bedürfnissen unserer Anwender und der Gemeinschaft für Freie Software. Deren Interessen stehen an erster Stelle. Wir werden unsere Nutzer bei ihrer Arbeit mit den verschiedensten Rechnerumgebungen unterstützen. Wir haben nichts gegen unfreie Arbeiten, die darauf abzielen, auf Debian-Systemen verwendet zu werden oder versuchen, eine Gebühr von Personen, die solche Arbeiten erstellen oder verwenden, einzufordern. Wir erlauben anderen, Distributionen zu erstellen, die das Debian-System und andere Arbeiten enthalten, ohne dafür irgendwelche Gebühren zu erheben. Um diese Ziele zu fördern, bieten wir ein integriertes System von hoher Qualität an, das die gerade beschriebene Nutzung nicht durch rechtliche Einschränkungen verhindert.
Arbeiten, die nicht unseren Standards für Freie Software genügen
We acknowledge that some of our users require the use of works that do not
conform to the Debian Free Software Guidelines. We have created
"non-free
", "non-free-firmware
" and
"contrib
" areas in our archive for these works. The
packages in these areas are not part of the Debian system, although they
have been configured for use with Debian. We encourage CD manufacturers to
read the licenses of the packages in these areas and determine if they can
distribute the packages on their CDs. Thus, although non-free works are not
a part of Debian, we support their use and provide infrastructure for
non-free packages (such as our bug tracking system and mailing lists). The
Debian official media may include firmware that is otherwise not part of the
Debian system to enable use of Debian with hardware that requires such
firmware.
Anmerkung | |
---|---|
The actual text of the 5th term in the current Debian Social Contract 1.2 is slightly different from the above text. This editorial deviation is intentional one to make this user document consistent without changing the real content of the Social Contract. |
Users should be aware of the risks of using packages in the
non-free
, non-free-firmware
and
contrib
areas:
fehlende Freiheit bei diesen Software-Paketen;
keine Unterstützung von Debian für solche Software-Pakete (Debian kann keine vernünftige Unterstützung für Software bieten, bei der nicht auf den Quellcode zugegriffen werden kann);
Verunreinigung Ihres zu 100% freien Debian-Systems.
Die Debian-Richtlinien für Freie Software (DFSG) sind der Freie-Software-Standard für Debian. Debian interpretiert "Software" im weitesten Sinne inklusive Dokumentation, Firmware, Logos und künstlerische Arbeiten in einem Paket. Aufgrund dessen sind Debians Freie-Software-Standards sehr streng.
Typical non-free
, non-free-firmware
and contrib
packages include freely distributable
packages of following types:
Dokumentationspakete unter der GNU-Lizenz für freie
Dokumentation mit unveränderlichen Abschnitten wie diejenigen für
GCC und Make (meistens zu finden in der Sektion
non-free/doc
).
Firmware packages containing sourceless binary data such as ones listed in
Abschnitt 9.10.5, „Hardware-Treiber und Firmware“ as
non-free-firmware
. (mostly found in the
non-free-firmware/kernel
section.)
Spiele- und Schriftarten-Pakete mit Einschränkungen für die kommerzielle Verwendung und/oder inhaltliche Veränderung.
Please note that the number of non-free
,
non-free-firmware
and contrib
packages
is less than 2% of that of main
packages. Enabling
access to the non-free
,
non-free-firmware
and contrib
areas
does not obscure the source of packages. Interactive full screen use of
aptitude
(8) provides you with full visibility and control
over what packages are installed from which area to keep your system as free
as you wish.
Das Debian-System stellt einen konsistenten Satz von Binärpaketen bereit und verwendet dafür einen Deklarationsmechanismus für versionierte Binärabhängigkeiten über Felder in der control-Datei. Hier eine leicht vereinfachte Definition dieser Felder:
"Depends" / Hängt ab von
Depends deklariert eine absolute Abhängigkeit und alle Pakete, die in diesem Feld aufgelistet sind, müssen zur selben Zeit oder im Voraus installiert sein.
"Pre-Depends" / Hängt ab (vorher) von
Pre-Depends ist ähnlich wie Depends, nur dass die vollständige Installation der aufgelisteten Pakete im Voraus erforderlich ist.
"Recommends" / Empfiehlt
Recommends deklariert eine starke, aber nicht absolute Abhängigkeit. Die meisten Benutzer würden das Paket nicht installiert haben wollen, solange nicht auch alle in diesem Feld aufgelisteten Pakete installiert sind.
"Suggests" / Schlägt vor
Suggests deklariert eine schwache Abhängigkeit. Viele Benutzer dieses Pakets würden davon profitieren, auch die in diesem Feld aufgelisteten Pakete zu installieren, aber selbst ohne diese bietet das Paket vernünftige Funktionalität.
"Enhances" / Wertet auf
Enhances deklariert eine schwache Abhängigkeit wie Suggests, nur funktioniert sie in der entgegengesetzten Richtung.
"Breaks" / Beschädigt
Breaks deklariert eine Paket-Inkompatibilität, gewöhnlich mit einer Versionsangabe. Grundsätzlich lösen Sie etwaige Probleme, indem Sie alle in diesem Feld aufgelisteten Pakete auf den neuesten Stand bringen.
"Conflicts" / Kollidiert
Conflicts deklariert eine absolute Inkompatibilität. Alle in diesem Feld aufgelisteten Pakete müssen entfernt werden, um dieses Paket zu installieren.
"Replaces" / Ersetzt
Replaces wird deklariert, wenn Dateien, die von diesem Paket installiert werden, andere Dateien in den aufgelisteten Paketen ersetzen.
"Provides" / Stellt bereit
Provides wird deklariert, wenn dieses Paket alle Dateien und Funktionalitäten der hier aufgelisteten Pakete bereitstellt.
Anmerkung | |
---|---|
Bitte beachten Sie, dass die gleichzeitige Deklaration von "Provides", "Conflicts" und "Replaces" für ein virtuelles Paket eine vernünftige Konfiguration ist. So wird sichergestellt, dass nur ein reelles Paket, das dieses virtuelle Paket bereit stellt, zur jeweiligen Zeit installiert sein kann. |
Die offizielle Definition inklusive der Quellpaket-Abhängigkeiten finden Sie im Debian Policy-Handbuch: Kapitel 7 - Declaring relationships between packages.
Hier folgt eine vereinfachte Ereignisabfolge für das APT-Paketmanagement.
Aktualisierung der Paketlisten / Update
("apt update
", "aptitude update
" oder
"apt-get update
"):
Archiv-Metadaten vom Archiv-Server beziehen;
Neuaufbau und Aktualisierung der lokalen Metadaten für die Verwendung durch APT.
Paketaktualisierung / Upgrade
("apt upgrade
" und "apt full-upgrade
"
oder "aptitude safe-upgrade
" und "aptitude
full-upgrade
" oder "apt-get upgrade
" und
"apt-get dist-upgrade
"):
Choose candidate version which is usually the latest available version for all installed packages (see Abschnitt 2.7.7, „Tweaking candidate version with apt-pinning“ for exception)
Auflösung der Paketabhängigkeiten;
Ausgewählte Binärpakete vom Archiv-Server beziehen, falls die jeweilige Installationskandidat-Version sich von der installierten Version unterscheidet;
Entpacken der heruntergeladenen Binärpakete;
Ausführen des preinst-Skripts;
Installieren der Binärdateien;
Ausführen des postinst-Skripts.
Installieren / Install ("apt
install …
", "aptitude install …
" oder
"apt-get install …
"):
Choose packages listed on the command line
Auflösung der Paketabhängigkeiten;
Beziehen der ausgewählten Binärpakete vom Archiv-Server;
Entpacken der heruntergeladenen Binärpakete;
Ausführen des preinst-Skripts;
Installieren der Binärdateien;
Ausführen des postinst-Skripts.
Entfernen / Remove ("apt remove
…
", "aptitude remove …
" oder "apt-get
remove …
"):
Choose packages listed on the command line
Auflösung der Paketabhängigkeiten;
Ausführen des prerm-Skripts;
Löschen der installierten Dateien außer den Konfigurationsdateien;
Ausführen des postrm-Skripts.
Entfernen inkl. der Konfigurationsdateien /
Purge ("apt purge
", "aptitude purge
…
" oder "apt-get purge …
"):
Choose packages listed on the command line
Auflösung der Paketabhängigkeiten;
Ausführen des prerm-Skripts;
Löschen der installierten Dateien inklusive der Konfigurationsdateien;
Ausführen des postrm-Skripts.
Um des Gesamtbildes willen habe ich hier absichtlich technische Details übersprungen.
Sie sollten die offizielle Dokumentation lesen. Das erste Dokument ist
hierbei die Debian-spezifische Datei
"/usr/share/doc/paketname/README.Debian
".
Weitere Dokumentation in
"/usr/share/doc/paketname/
" sollten
Sie ebenfalls konsultieren. Wenn Sie die Shell wie in Abschnitt 1.4.2, „Anpassen der bash“ beschrieben eingerichtet haben, geben Sie
folgendes ein:
$ cd package_name
$ pager README.Debian
$ mc
Sie müssen unter Umständen das entsprechende Dokumentationspaket
installieren (hängen Sie dazu "-doc
" an den Namen an), um
die Dokumentation verfügbar zu haben.
Wenn Sie Probleme mit einem bestimmten Paket haben, sollten Sie unbedingt zuerst die Seiten der Debian-Fehlerdatenbank (BTS) besuchen.
Tabelle 2.5. Liste wichtiger Websites zur Lösung von Paketproblemen
Website | Befehl |
---|---|
Homepage der Debian-Fehlerdatenbank (BTS) | sensible-browser "https://bugs.debian.org/" |
Fehlerberichte gegen ein bestimmtes Paket | sensible-browser
"https://bugs.debian.org/paketname" |
Fehlerbericht mit einer bekannten Fehlernummer | sensible-browser
"https://bugs.debian.org/fehlernummer" |
Suchen Sie bei Google mit Suchbegriffen, die
"site:debian.org
",
"site:wiki.debian.org
",
"site:lists.debian.org
" usw. enthalten.
Wenn Sie einen Fehlerbericht einreichen, nutzen Sie bitte den Befehl
reportbug
(1).
Wenn Sie auf mehr als zwei ähnliche Pakete stoßen und sich fragen, welches Sie installieren sollen, ohne dabei nach dem "trial and error"-Verfahren (ausprobieren und schauen, welches das richtige ist) vorgehen zu müssen, sollten Sie ein wenig Ihren gesunden Menschenverstand benutzen. Die folgenden Punkte können als gute Hinweise auf passende Pakete angesehen werden:
Essentiell: ja > nein;
Bereich: main > contrib > non-free;
Priorität: erforderlich > wichtig > standard > optional > extra;
Tasks: Pakete, die in Tasks wie "Desktop-Umgebungen" aufgelistet sind;
Pakete, die über eine Paketabhängigkeit ausgewählt werden
(z.B. gcc-10
über gcc
);
Popcon: höhere Einstufung bei den vote- und install-Werten;
Changelog (Änderunsprotokoll): regelmäßige Aktualisierungen durch den Betreuer;
BTS (Fehlerdatenbank): keine veröffentlichungskritischen Fehler (RC-Bugs, d.h. keine Fehler mit Schweregrad critical, grave oder serious);
BTS (Fehlerdatenbank): Betreuer reagiert auf Fehlerberichte;
BTS (Fehlerdatenbank): höhere Anzahl von kürzlich behobenen Fehlern;
BTS (Fehlerdatenbank): niedrigere Anzahl von offenen Fehlern mit Schweregrad (Severity) verschieden von wishlist.
Debian ist ein Freiwilligenprojekt mit verteiltem Entwicklungsmodell, dessen Archiv viele Pakete unterschiedlicher Zielsetzung und Qualität enthält. Sie müssen Ihre eigene Entscheidung treffen, was Sie damit anfangen.
Whatever suite of Debian system you may decide to use, you may still wish to run versions of programs which aren't available in that suite. Even if you find binary packages of such programs in other Debian suites or in other non-Debian resources, their requirements may conflict with your current Debian system.
Although you can tweak package management system with apt-pinning technique etc. as described in Abschnitt 2.7.7, „Tweaking candidate version with apt-pinning“ to instal such out-of-sync binary packages, such tweaking approaches have only limited use cases since they may break those programs and your system.
Before brutally installing such out-of-sync packages, you should seek all available alternative safer technical solutions which are compatible with your current Debian syetem.
Install such programs using corresponding sandboxed upstream binary packages (see Abschnitt 7.7, „Sandbox“).
Create a chroot or similar environment and run such programs in it (see Abschnitt 9.11, „Virtualisierte Systeme“).
CLI commands can be executed easily under its compatible chroot (see Abschnitt 9.11.4, „Chroot-System“).
Multiple full desktop environments can be tried easily without reboot (see Abschnitt 9.11.5, „System mit mehreren Arbeitsplatzumgebungen“).
Build desired versions of binary packages which are compatible with your current Debian syetem by yourself.
Paketmanagement-Operationen können im Debian-System mit vielen, auf APT
aufbauenden Werkzeugen durchgeführt werden. Wir beschreiben hier drei
grundlegende Paketmanagement-Werkzeuge: apt
,
apt-get
/ apt-cache
und
aptitude
.
Für Paketmanagement-Operationen inklusive Installation oder Aktualisierung der Paket-Metadaten benötigen Sie root-Privilegien.
Obwohl aptitude
ein tolles interaktives Werkzeug ist, das
auch der Autor überwiegend verwendet, sollten Sie einige warnende Fakten
kennen:
aptitude
wird nicht für das Upgrade eines
Debian-Stable
-Systems (Hochrüstung von einer
Stable-Version zur nächsten) empfohlen.
Dafür empfehlen wir "apt full-upgrade
" oder
"apt-get dist-upgrade
". Lesen Sie dazu den Fehlerbericht #411280.
Manchmal empfiehlt aptitude
beim System-Upgrade von
Testing
- oder Unstable
-Systemen die
massenweise Entfernung von Paketen.
Diese Situation hat schon manchen Systemadministrator erschreckt. Aber: keine Panik.
Dies wurde scheinbar überwiegend dadurch verursacht, dass eine Schieflage
bei den Versionsnummern von Paketen bestand, die von Metapaketen wie
gnome-core
abhängen oder diese empfehlen.
Sie können dies beheben, indem Sie "Noch ausstehende Aktionen abbrechen" im
Menü von aptitude
wählen, aptitude
beenden und "apt full-upgrade
" verwenden.
Die Befehle apt-get
und apt-cache
sind
sehr grundlegende APT-basierte
Paketmanagement-Werkzeuge.
apt-get
und apt-cache
bieten lediglich
eine Befehlszeilen-Oberfläche.
apt-get
eignet sich sehr gut für die großen Systemhochrüstungen von einer
Debian-Veröffentlichung auf die nächste, usw.
apt-get
bietet einen robusten Mechanismus zur Auflösung von
Paketabhängigkeiten.
apt-get
ist weniger anspruchsvoll bezüglich der
Hardware-Ressourcen. Es verbraucht weniger Speicher und läuft schneller.
apt-cache
bietet eine grundlegende, auf regulären Ausdrücken basierende
Suche über Paketname und -beschreibung.
apt-get
und apt-cache
können über
/etc/apt/preferences
mehrere Versionen des gleichen
Pakets verwalten, aber dies ist ziemlich mühselig.
Das apt
-Programm ist eine Befehlszeilenschnittstelle für
das Paketmanagement. Es ist vom Grundsatz her ein Wrapper-Skript für
apt-get
, apt-cache
und ähnliche
Programme und als Bedienoberfläche für den Benutzer gedacht; einige für die
interaktive Nutzung zweckmäßige Optionen sind standardmäßig aktiviert.
apt
bietet eine nette Fortschrittsanzeige bei der
Paketinstallation mittels apt install
.
Standardmäßig entfernt
apt
die zwischengespeicherten
.deb
-Dateien nach der erfolgreichen Installation.
Tipp | |
---|---|
Benutzern wird empfohlen, den neuen |
Der Befehl aptitude
ist das vielseitigste APT-basierte
Paketmanagement-Werkzeug.
aptitude
bietet eine interaktive textbasierte
Benutzeroberfläche mit Vollbildschirm-Ansicht.
aptitude
enthält auch eine
Befehlszeilen-Benutzerschnittstelle.
aptitude
eignet sich sehr gut für das tägliche interaktive Paketmanagement, wie die
Überprüfung installierter Pakete und die Suche nach verfügbaren Paketen.
aptitude
ist anspruchsvoller bezüglich der
Hardware-Ressourcen. Es verbraucht mehr Speicher und läuft geringfügig
langsamer.
aptitude
bietet eine erweiterte, auf regulären Ausdrücken basierende
Suche über alle Paket-Metadaten.
aptitude
kann mehrere Versionen des gleichen Pakets
verwalten, ohne dabei /etc/apt/preferences
zu verwenden,
und es ist sehr intuitiv.
Hier einige grundlegende Paketmanagement-Operationen auf der Befehlszeile,
die apt
(8), aptitude
(8) und
apt-get
(8) / apt-cache
(8) verwenden.
Tabelle 2.6. Grundlegende Paketmanagement-Operationen mit apt
(8),
aptitude
(8) und apt-get
(8) /
apt-cache
(8)
apt -Syntax |
aptitude -Syntax |
apt-get /apt-cache -Syntax |
Beschreibung |
---|---|---|---|
apt update |
aptitude update |
apt-get update |
Aktualisieren der Paket-Metadaten |
apt install foo |
aptitude install foo |
apt-get install foo |
Installieren der Installationskandidat-Version von "foo "
inklusive seiner Abhängigkeiten |
apt upgrade |
aptitude safe-upgrade |
apt-get upgrade |
Installieren der Installationskandidat-Version aller installierten Pakete, ohne irgendwelche anderen Pakete zu entfernen |
apt full-upgrade |
aptitude full-upgrade |
apt-get dist-upgrade |
Installieren der Installationskandidat-Version aller installierten Pakete und Entfernen anderer Pakete, falls nötig |
apt remove foo |
aptitude remove foo |
apt-get remove foo |
Entfernen des Pakets "foo " bei gleichzeitiger Erhaltung
seiner Konfigurationsdateien |
apt autoremove |
Nicht verfügbar | apt-get autoremove |
Entfernen aller automatisch installierten, nicht mehr benötigten Pakete |
apt purge foo |
aptitude purge foo |
apt-get purge foo |
Vollständiges Entfernen des Pakets "foo " und Löschung
seiner Konfigurationsdateien |
apt clean |
aptitude clean |
apt-get clean |
Vollständiges Leeren des lokalen Depots heruntergeladener Paketdateien |
apt autoclean |
aptitude autoclean |
apt-get autoclean |
Leeren des lokalen Depots heruntergeladener Paketdateien für veraltete Pakete |
apt show foo |
aptitude show foo |
apt-cache show foo |
Anzeigen von detaillierten Informationen über das Paket
"foo " |
apt search regex |
aptitude search regex |
apt-cache search regex |
Suchen nach Paketen, auf die der reguläre Ausdruck regex zutrifft |
Nicht verfügbar | aptitude why regex |
Nicht verfügbar | Erklären, warum die Pakete, auf die der reguläre Ausdruck regex zutrifft, installiert werden sollen |
Nicht verfügbar | aptitude why-not regex |
Nicht verfügbar | Erklären, warum die Pakete, auf die der reguläre Ausdruck regex zutrifft, nicht installiert werden sollen |
apt list --manual-installed |
aptitude search '~i!~M' |
apt-mark showmanual |
Händisch installierte Paket auflisten |
apt
/apt-get
und
aptitude
können ohne größere Probleme gemischt verwendet
werden.
Der Befehl "aptitude why regex
" kann
mehr Informationen ausgeben, wenn "-v" verwendet wird ("aptitude -v
why regex
"). Ähnliche Informationen erhalten
Sie mit apt rdepends paket
" oder
"apt-cache rdepends paket
.
Wenn aptitude
im Befehlszeilenmodus gestartet wird und
Probleme wie z.B. Paketkonflikte anzeigt, können Sie im Nachhinein in die
interaktive Vollbildschirm-Ansicht wechseln, indem Sie am Prompt die Taste
"e
" drücken.
Anmerkung | |
---|---|
Obwohl der |
Befehlsoptionen können direkt im Anschluß an den
"aptitude
"-Befehl angegeben werden.
Tabelle 2.7. Erwähnenswerte Befehlsoptionen für aptitude
(8)
Befehlsoptionen | Beschreibung |
---|---|
-s |
das Resultat des Befehls simulieren |
-d |
nur Herunterladen, aber nicht installieren/aktualisieren |
-D |
kurze Erläuterungen vor automatischen Installationen und Entfernungen anzeigen |
Weitere Informationen finden Sie unter aptitude
(8) und im
"aptitude-Benutzerhandbuch" in
"/usr/share/doc/aptitude/README
".
Für interaktives Paketmanagement starten Sie aptitude
von
der Konsolen-Shell aus im interaktiven Modus mit:
$ sudo aptitude -u Password:
Die lokale Kopie der Archivinformationen wird aktualisiert und die
Paketliste in der Vollbildschirm-Ansicht angezeigt. Aptitude legt seine
Konfiguration in "~/.aptitude/config
" ab.
Tipp | |
---|---|
Wenn Sie root's Konfiguration verwenden wollen statt der des
unprivilegierten Benutzers, verwenden Sie in obigem Ausdruck " |
Tipp | |
---|---|
|
Es folgen einige erwähnenswerte Tastenkürzel, um in der Vollbildschirm-Ansicht den Status von Paketen abzufragen und "geplante Aktionen" vorzumerken.
Tabelle 2.8. Liste der Tastaturkürzel für aptitude
Taste | Tastaturbefehl |
---|---|
F10 oder Strg-t |
Menü |
? |
Hilfe für Tastaturkürzel anzeigen (ausführlichere Auflistung) |
F10 → Hilfe → Handbuch |
Benutzerhandbuch anzeigen |
u |
Paketinformationen (Metadaten) aktualisieren |
+ |
Paket zur Aktualisierung (upgrade) oder Installation (install) vormerken |
- |
Paket zum Entfernen (remove) vormerken (Konfigurationsdateien erhalten) |
_ |
Paket zum vollständigen Entfernen (purge) vormerken (Konfigurationsdateien löschen) |
= |
Paket auf Zurückhalten (hold) setzen |
U |
Alle aktualisierbaren Pakete markieren (die gleiche Funktion wie full-upgrade) |
g |
Das Herunterladen und Installieren aller markierten Pakete starten |
q |
Aktuelle Ansicht schließen und Änderungen speichern |
x |
Aktuelle Ansicht schließen und Änderungen verwerfen |
Enter |
Informationen über ein Paket anzeigen |
C |
Änderungsprotokoll (Changelog) eines Pakets anzeigen |
l |
Ändern des Filters für die Paketanzeige |
/ |
Suche nach dem ersten Treffer |
\ |
Wiederholen der letzten Suche |
The file name specification of the command line and the menu prompt after
pressing "l
" and "//
" take the
aptitude regex as described below. Aptitude regex can explicitly match a
package name using a string started by "~n
" and followed
by the package name.
Tipp | |
---|---|
Im interaktiven Modus müssen Sie " |
In der interaktiven Vollbildschirm-Ansicht von
aptitude
(8) werden Pakete in der Paketliste wie im
folgenden Beispiel angezeigt:
idA libsmbclient -2220kB 3.0.25a-1 3.0.25a-2
Diese Zeile hat die folgenden Bedeutungen (von links nach rechts):
die Markierung für den aktuellen Zustand (der erste Buchstabe);
die Markierung für die geplante Aktion (der zweite Buchstabe);
die Markierung für "automatisch installiert" (der dritte Buchstabe);
der Paketname;
die voraussichtliche Änderung beim verwendeten Platz auf der Festplatte, ausgelöst durch die geplante Aktion;
die aktuelle Version des Pakets;
die Installationskandidat-Version des Pakets.
Tipp | |
---|---|
Eine vollständige Liste der Markierungen finden Sie am unteren Ende der
Hilfe-Ansicht, die Ihnen durch Drücken
von " |
Die Installationskandidat-Version wird
aufgrund der aktuellen lokalen Voreinstellungen ausgewählt (lesen Sie dazu
apt_preferences
(5) und Abschnitt 2.7.7, „Tweaking candidate version with apt-pinning“).
Im Menü unter Ansichten
sind verschiedene Arten von
Paketansichten verfügbar:
Tabelle 2.9. Liste der Ansichten für aptitude
Ansicht | Beschreibung der Ansicht |
---|---|
Paketansicht | laut Tabelle 2.10, „Die Kategorisierung von Standard-Paketansichten“ (Standardeinstellung) |
Empfehlungen überprüfen |
Pakete auflisten, die von installierten Paketen empfohlen werden, aber noch nicht installiert sind |
Einfache Paketansicht |
Pakete ohne Kategorisierung anzeigen (für Verwendung mit Regex) |
Debtags-Browser |
Pakete sortiert nach der Kategorisierung in ihren debtags-Einträgen anzeigen |
Quellpaketansicht |
Pakete gruppiert nach Quellpaketen anzeigen |
Anmerkung | |
---|---|
Bitte helfen Sie uns, Pakete mit debtags zu versehen! |
Die Standard-Paketansicht
kategorisiert Pakete ähnlich
wie dselect
plus einiger zusätzlicher Funktionalitäten.
Tabelle 2.10. Die Kategorisierung von Standard-Paketansichten
Kategorie | Beschreibung der Ansicht |
---|---|
Aktualisierbare Pakete |
Pakete organisiert nach Sektion →
Bereich → Paket |
Neue Pakete |
" |
Installierte Pakete |
" |
Nicht installierte Pakete |
" |
Veraltete und lokal erstellte Pakete |
" |
Virtuelle Pakete |
Pakete mit der gleichen Funktionalität auflisten |
Tasks (Programmgruppen) |
Pakete mit verschiedenen Funktionalitäten auflisten, die grundsätzlich für eine bestimmte Aufgabe benötigt werden |
Tipp | |
---|---|
Die |
Aptitude bietet verschiedene Optionen, damit Sie über seine Regex-Formel (regulären Ausdruck) nach Paketen suchen können.
Shell-Befehlszeile:
"aptitude search aptitude_regex
" zur
Anzeige von Installationsstatus, Paketname und Kurzbeschreibung passender
Pakete
"aptitude show paketname
" zur
Anzeige detaillierter Informationen für ein Paket
Interaktive Vollbildschirm-Ansicht:
"l
" zur Einschränkung der Paketansicht auf zutreffende
Pakete
"/
" für die Suche nach einem passenden Paket
"\
" für die Rückwärts-Suche nach einem passenden Paket
"n
" zum Finden des nächsten Treffers
"N
" zum Finden des nächsten Treffers in umgekehrter
Richtung
Tipp | |
---|---|
Die obige Zeichenkette paketname muss exakt auf den
Paketnamen zutreffen, außer sie beginnt mit " |
Die Regex-Formel (regulärer Ausdruck) ist ähnlich wie bei mutt ein erweiterter regulärer Ausdruck (ERE) (lesen Sie
dazu Abschnitt 1.6.2, „Reguläre Ausdrücke“); die Bedeutung der
aptitude
-spezifischen speziellen Regelerweiterungen ist
im folgenden erklärt:
Tabelle 2.11. Liste von aptitudes Regex-Formeln
Beschreibung der erweiterten Regel | Regex-Formel |
---|---|
Treffer auf Paketname | ~nregex_name |
Treffer auf Paketbeschreibung | ~dregex_beschreibung |
Treffer auf Task-Name | ~tregex_task |
Treffer auf Debtag | ~Gregex_debtag |
Treffer auf Paketbetreuer | ~mregex_betreuer |
Treffer auf Paketsektion | ~sregex_sektion |
Treffer auf Paketversion | ~Vregex_version |
Treffer auf Archiv | ~A{bookworm,trixie,sid } |
Treffer auf Paket-Herkunft | ~O{debian,… } |
Treffer auf Priorität | ~p{extra,important,optional,required,standard } |
Treffer auf essentielle Pakete | ~E |
Treffer auf virtuelle Pakete | ~v |
Treffer auf neue Pakete | ~N |
Treffer auf noch nicht abgeschlossene Aktion | ~a{install,upgrade,downgrade,remove,purge,hold,keep } |
Treffer auf installierte Pakete | ~i |
Treffer auf Pakete mit der A-Markierung (automatisch installierte Pakete) | ~M |
Treffer auf Pakete ohne A-Markierung (vom Administrator manuell zur Installation ausgewählte Pakete) | ~i!~M |
Treffer auf installierte und aktualisierbare Pakete | ~U |
Treffer auf entfernte Pakete, deren Konfigurationsdateien aber noch vorhanden sind | ~c |
Treffer auf Pakete, die entfernt oder vollständig inklusive der Konfigurationsdateien entfernt wurden oder entfernt werden können | ~g |
Treffer auf Pakete, die eine beschädigte Abhängigkeit melden | ~b |
Treffer auf Pakete, die eine beschädigte Abhängigkeit vom Typ typ melden | ~Btyp |
Treffer auf Pakete, die eine Abhängigkeit vom Typ typ definiert haben | ~D[typ:]muster |
Treffer auf Pakete, die eine beschädigte Abhängigkeit vom Typ typ definiert haben | ~DB[typ:]muster |
Treffer auf Pakete, zu denen auf muster passende Pakete die Abhängigkeit typ definiert haben | ~R[typ:]muster |
Treffer auf Pakete, zu denen auf muster passende Pakete die beschädigte Abhängigkeit typ definiert haben | ~RB[typ:]muster |
Treffer auf Pakete, von denen andere installierte Pakete abhängig sind | ~R~i |
Treffer auf Pakete, von denen keine anderen installierten Pakete abhängig sind | !~R~i |
Treffer auf Pakete, von denen andere installierte Pakete abhängig sind oder empfohlen werden | ~R~i|~Rrecommends:~i |
Treffer auf Pakete, die auf muster passen, mit gefilterter Version | ~S filter muster |
Treffer auf alle Pakete (true/wahr) | ~T |
Treffer auf kein Paket (false/unwahr) | ~F |
Der Regex-Teil ist der gleiche erweiterte reguläre Ausdruck (ERE) wie in Unix-typischen
Textverarbeitungswerkzeugen und nutzt "^
",
".*
", "$
" usw., wie es auch
egrep
(1), awk
(1) und
perl
(1) tun.
Der Typ einer Abhängigkeit zur Festlegung von Wechselbeziehungen zwischen Paketen ist einer aus der folgenden Liste: depends (hängt ab von), predepends (hängt ab (vorher) von), recommends (empfiehlt), suggests (schlägt vor), conflicts (kollidiert mit), replaces (ersetzt), provides (stellt bereit).
Der Typ der Standardabhängigkeit ist "depends".
Tipp | |
---|---|
Wenn regex_muster ein Null-String ist, geben Sie
" |
Hier einige Abkürzungen:
"~Pname
" ==
"~Dprovides:name
"
"~Cname
" ==
"~Dconflicts:name
"
"…~W name
" == "(…|name)
"
Benutzer, denen mutt
geläufig ist, werden sich auch hier
schnell zurechtfinden, da mutt die Inspiration für die Syntax des regulären
Ausdrucks war. Lesen Sie "SEARCHING, LIMITING, AND EXPRESSIONS" im
"Benutzerhandbuch" unter
"/usr/share/doc/aptitude/README
".
Anmerkung | |
---|---|
Seit der |
Die Auswahl eines Pakets in aptitude
bringt nicht nur
Pakete mit, die in seiner "Depends:
"-Liste stehen,
sondern auch solche in "Recommends:
", falls die
Einstellung im Menü unter F10
→ "Optionen" →
"Einstellungen" → "Abhängigkeitsbehandlung" entsprechend gesetzt ist. Diese
automatisch installierten Pakete werden automatisch entfernt, wenn sie laut
aptitude
nicht mehr benötigt werden.
Der Schalter, der das "auto install"-Verhalten von
aptitude
steuert, kann auch über den Befehl
apt-mark
(8) aus dem apt
-Paket
verändert werden.
Sie können vergangene Paketaktivitäten in den Protokolldateien nachkontrollieren.
Tabelle 2.12. Protokolldateien für Paketaktivitäten
Datei | Inhalt |
---|---|
/var/log/dpkg.log |
Protokollierung der Operationen auf dpkg -Ebene für alle
Paketaktivitäten |
/var/log/apt/term.log |
Protokollierung der grundlegenden APT-Aktivitäten |
/var/log/aptitude |
Protokollierung der Aktivitäten des aptitude -Befehls |
In der Realität ist es nicht so einfach, aus diesen Protokollen auf die Schnelle aussagekräftige Informationen herauszuziehen. Abschnitt 9.3.9, „Aufzeichnen von Änderungen in Konfigurationsdateien“ gibt Ihnen hilfreiche Infos, wie Sie dies einfacher bewältigen können.
Hier ein paar Beispiele für aptitude
(8)-Operationen.
Mit aptitude
können Sie nach Paketen suchen, die Ihren
Anforderungen entsprechen, entweder über die Paketbeschreibung oder über die
Liste in "Tasks".
Der folgende Befehl listet Pakete auf, bei denen die Regex-Suche nach dem Paketnamen zutrifft:
$ aptitude search '~n(pam|nss).*ldap' p libnss-ldap - NSS module for using LDAP as a naming service p libpam-ldap - Pluggable Authentication Module allowing LDAP interfaces
Dies ist für Sie ziemlich praktisch, um den exakten Namen eines Pakets zu finden.
Wenn Sie den regulären Ausdruck "~dipv6
" in der "Neuen
einfachen Paketansicht" im "l
"-Dialog eingeben, werden
die angezeigten Pakete auf diejenigen eingeschränkt, bei denen der Ausdruck
auf die Paketbeschreibung zutrifft, und Sie können deren Informationen
interaktiv durchsuchen.
Sie können alle verbliebenen Konfigurationsdateien entfernter Pakete endgültig löschen.
Überprüfen Sie die Resultate des folgenden Befehls:
# aptitude search '~c'
Wenn Sie glauben, dass die aufgelisteten Pakete vollständig entfernt werden können, führen Sie folgenden Befehl aus:
# aptitude purge '~c'
Sie möchten das gleiche vielleicht im interaktiven Modus durchführen, um eine detailgenaue Kontrolle über den Vorgang zu haben:
Sie geben den regulären Ausdruck "~c
" unter der "Neuen
Paketansicht" in dem "l
"-Dialog ein. Dadurch werden die
angezeigten Pakete auf solche eingeschränkt, auf die der reguläre Ausdruck
zutrifft, d.h. "gelöscht, aber nicht vollständig inklusive der
Konfigurationsdateien entfernt". All diese, auf den regulären Ausdruck
zutreffenden Pakete können angezeigt werden, indem Sie auf der höchsten
Ebene der Anzeigehierachie (z.B. "Nicht installierte Pakete")
"[
" drücken.
Dann drücken Sie auf einem Eintrag in der höchsten Anzeigehierachie
(z.B. auf "Nicht installierte Pakete") "_
". Nur Pakete,
auf die der reguläre Ausdruck passt, werden auf diese Art vollständig
inklusive der Konfigurationsdateien entfernt. Sie können jedes dieser Pakete
interaktiv von der vollständigen Entfernung ausschließen, indem Sie auf dem
entsprechenden Paket "=
" drücken.
Diese Methode ist ziemlich praktisch und funktioniert für viele andere Befehlskürzel.
Hier beschreibe ich, wie Sie den automatisch/manuell-Installationsstatus bereinigen können (nach der Verwendung von anderen Paketinstallationsprogrammen o.ä.):
Starten Sie aptitude
im interaktiven Modus als root.
Drücken Sie "u
", "U
",
"f
" und "g
", um die Paketliste sowie
die Pakete zu aktualisieren.
Drücken Sie "l
" und setzen Sie den Anzeigefilter auf
"~i(~R~i|~Rrecommends:~i)
"; drücken Sie dann
"M
" mit der Markierung auf "Installierte
Pakete
", um deren Status auf "Automatisch installiert" zu ändern.
Drücken Sie "l
", setzen Sie den Anzeigefilter auf
"~prequired|~pimportant|~pstandard|~E
" und drücken Sie
"m
" mit der Markierung auf "Installierte
Pakete
", um deren Status auf "Manuell installiert" zu ändern.
Drücken Sie "l
", setzen Sie den Anzeigefilter auf
"~i!~M
" und entfernen Sie nicht genutzte Pakete, indem
Sie "-
" auf jedem davon drücken (wenn die Markierung auf
"Installierte Pakete
" steht, können Sie mit
"[
" die Liste aufklappen, so dass alle Pakete sichtbar
werden).
Drücken Sie "l
" um den Anzeigefilter auf
"~i
" zu setzen; drücken Sie dann "m
",
während die Markierung auf "Tasks
" steht, um diese Pakete
auf "Manuell installiert" zu setzen.
Beenden Sie aptitude
.
Führen Sie "apt-get -s autoremove|less
" als root aus, um
zu überprüfen, welche Pakete derzeit von apt-get als ungenutzt gemeldet
werden.
Starten Sie aptitude
erneut im interaktiven Modus und
markieren Sie Pakete, bei denen dies nötig ist, mit "m
"
als "Manuell installiert".
Führen Sie erneut "apt-get -s autoremove|less
" als root
aus, um erneut zu überprüfen, ob bei ENTFERNT nur die gewünschten Pakete
enthalten sind.
Führen Sie "apt-get autoremove|less
" als root aus, um
nicht genutzte Pakete automatisch zu entfernen.
Die Aktion "m
" mit der Markierung auf
"Tasks
" ist eine optionale Aktion, um die Situation
massenhaft zu entfernender Pakete in der Zukunft zu vermeiden.
Anmerkung | |
---|---|
Beim Wechsel auf einen neue Veröffentlichung sollten Sie eine Neuinstallation in Erwägung ziehen, auch wenn Debian wie unten beschrieben auch auf die neue Version hochgerüstet werden kann. So haben Sie eine Chance, Müll, der sich über die Dauer der Zeit angesammelt hat, loszuwerden und bekommen die beste Kombination der aktuellsten Pakete. Natürlich sollten Sie ein vollständiges System-Backup machen und an einem sicheren Platz ablegen (lesen Sie dazu Abschnitt 10.2, „Datensicherung und -wiederherstellung“), bevor Sie neu installieren. Ich empfehle für einen sanften Übergang eine Dual-Boot-Installation unter Verwendung separater Partitionen. |
You can perform system wide upgrade to a newer release by changing contents
of the source list pointing to a new
release and running the "apt update; apt dist-upgrade
"
command.
To upgrade from stable
to testing
or
unstable
during the
bookworm
-as-stable
release
cycle, you replace "bookworm
" in the source list example of Abschnitt 2.1.5, „Grundlagen über das Debian-Archiv“ with
"trixie
" or "sid
".
In der Realität könnte es vielleicht einige Komplikationen aufgrund von
Problemen mit Paketübergängen geben, meistens wegen Paketabhängigkeiten. Je
größer die Unterschiede bei der Hochrüstung sind, um so wahrscheinlicher
werden Sie gravierendere Probleme bekommen. Für die Hochrüstung des alten
Stable
auf das neue Stable
nach dessen
Veröffentlichung können Sie die neuen Veröffentlichungshinweise (Release Notes)
lesen. Folgen Sie exakt der dort beschriebenen Prozedur, um die möglichen
Probleme zu minimieren.
Wenn Sie sich entscheiden, vor der offiziellen Freigabe der nächsten
Veröffentlichung von Stable
zu Testing
zu wechseln, gibt es keine Veröffentlichunshinweise, die Ihnen helfen
könnten. Die Unterschiede zwischen Stable
und
Testing
könnten seit der letzten
Stable
-Veröffentlichung ziemlich groß geworden sein und
die Situation für eine Hochrüstung recht komplex machen.
Sie sollten vorbeugende Schritte für das vollständige Upgrade durchführen, indem Sie aktuellste Informationen von den Mailinglisten sammeln, und Ihren gesunden Menschenverstand einsetzen.
Lesen Sie die vorherigen "Veröffentlichungshinweise (Release Notes)".
Machen Sie eine vollständige Sicherung (Backup) von Ihrem System (speziell Daten und Konfigurationsdateien).
Halten Sie ein boot-fähiges Medium bereit für den Fall eines beschädigten Bootloaders.
Informieren Sie die Benutzer des Systems rechtzeitig vorher.
Zeichnen Sie die Aktivitäten während des Upgrades mit
script
(1) auf.
Wenden Sie "unmarkauto" für erforderliche Pakete an, also
z.B. "aptitude unmarkauto vim
", um solche Pakete als
"Manuell installiert" zu markieren und zu verhindern, dass sie entfernt
werden.
Minimieren Sie die Anzahl installierter Pakete, um die Wahrscheinlichkeit von Paketkonflikten zu reduzieren, entfernen Sie z.B. Desktop-Task-Pakete.
Remove the "/etc/apt/preferences
" file (disable apt-pinning).
Versuchen Sie, das Upgrade in mehreren Schritten durchzuführen:
oldstable
→ stable
→
testing
→ unstable
.
Update the source list to point to new
archive only and run "aptitude update
".
Installieren Sie neue Kern-Pakete separat
im Voraus, z.B. "aptitude install perl
" (optional).
Führen Sie "apt-get -s dist-upgrade
" aus, um die
Auswirkungen im Voraus abschätzen zu können.
Führen Sie als letztes den Befehl "apt-get dist-upgrade
"
aus.
Achtung | |
---|---|
Es ist nicht klug, bei Hochrüstung einer
|
Achtung | |
---|---|
In früheren "Veröffentlichungshinweisen" wurden für GCC, Linux-Kernel, initrd-Werkzeuge, Glibc, Perl, APT-Werkzeuge usw. spezielle Vorsichtsmaßnahmen bei systemweiten Upgrades erwähnt. |
Informationen zu täglichen Upgrades in Unstable
finden
Sie in Abschnitt 2.4.3, „Absicherungen für den Fall von Paketproblemen“.
Hier eine Liste weiterer Paketmanagement-Operationen, die
aptitude
nicht unterstützt, weil es auf einer anderen
Ebene arbeitet oder weil ihm die nötigen Funktionen fehlen.
Tabelle 2.13. Liste erweiterter Paketmanagement-Operationen
Befehl | Aktion |
---|---|
COLUMNS=120 dpkg -l
paketnamen_muster |
Status eines installierten Pakets für einen Fehlerbericht auflisten |
dpkg -L paketname |
Inhalte eines installierten Pakets auflisten |
dpkg -L paketname | egrep
'/usr/share/man/man.*/.+' |
Handbuchseiten (manpages) für ein installiertes Paket auflisten |
dpkg -S dateinamen_muster |
Installierte Pakete auflisten, die auf das Muster passende Dateien enthalten |
apt-file search dateinamen_muster |
Pakete im Archiv auflisten, die auf das Muster passende Dateien enthalten |
apt-file list paketnamen_muster |
Inhalte von auf das Muster passenden Paketen im Archiv auflisten |
dpkg-reconfigure paketname |
Dieses Paket neu konfigurieren |
dpkg-reconfigure -plow paketname |
Dieses Paket mit detaillierten Fragen neu konfigurieren |
configure-debian |
Pakete über das Vollbildschirm-Menü neu konfigurieren |
dpkg --audit |
System nach teilweise installierten Paketen durchsuchen |
dpkg --configure -a |
Alle teilweise installierten Pakete konfigurieren |
apt-cache policy binärpaketname |
Verfügbare Version, Priorität und Archivinformationen eines Binärpakets anzeigen |
apt-cache madison paketname |
Verfügbare Version und Archivinformationen eines Pakets anzeigen |
apt-cache showsrc binärpaketname |
Quellpaket-Informationen eines Binärpakets anzeigen |
apt-get build-dep paketname |
Zum Bau eines Pakets benötigte Pakete installieren |
aptitude build-dep paketname |
Zum Bau eines Pakets benötigte Pakete installieren |
apt-get source paketname |
Ein Quellpaket herunterladen (aus dem Standardarchiv) |
dget URL für dsc-Datei |
Ein Quellpaket herunterladen (aus einem anderen Archiv) |
dpkg-source -x
paketname_version-debian.revision.dsc |
Einen Quellcodebaum aus einem Satz von Quellpaketen erstellen
("*.orig.tar.gz " und "*.debian.tar.gz "
/ "*.diff.gz ") |
debuild binärdatei |
Paket(e) aus einem lokalen Quellcodebaum bauen |
make-kpkg kernel_image |
Ein Kernelpaket aus einem Kernel-Quellcodebaum bauen |
make-kpkg --initrd kernel_image |
Ein Kernelpaket mit aktivierter initramfs aus einem Kernel-Quellcodebaum bauen |
dpkg -i
paketname_version-debian.revision_arch.deb |
Ein lokales Paket in das System installieren |
apt install /pfad/zu/paketname.deb |
Ein lokales Paket in das System installieren und dabei versuchen, die Abhängigkeiten automatisch aufzulösen |
debi
paketname_version-debian.revision_arch.dsc |
Lokale(s) Paket(e) in das System installieren |
dpkg --get-selections '*' >selection.txt |
dpkg -Paketauswahlinformationen sichern |
dpkg --set-selections <selection.txt |
dpkg -Paketauswahlinformationen setzen |
echo paketname hold | dpkg
--set-selections |
dpkg -Paketauswahlinformationen eines Pakets auf hold (halten) setzen (gleichbedeutend mit
"aptitude hold paketname ") |
Anmerkung | |
---|---|
Für ein Paket mit der multi-arch-Funktionalität müssen Sie unter
Umständen bei einigen Befehlen den Architekturnamen mit angeben. Verwenden
Sie zum Beispiel " |
Achtung | |
---|---|
Grundlegende Paketwerkzeuge wie " |
Bitte beachten Sie folgendes:
Alle System-Konfigurations- und Installationsbefehle müssen von root ausgeführt werden.
Anders als aptitude
, das reguläre Ausdrücke verwendet
(mehr dazu in Abschnitt 1.6.2, „Reguläre Ausdrücke“), nutzen andere
Paketmanagement-Befehle Suchmuster wie Shell-Globs (Details in Abschnitt 1.5.6, „Shell-Glob“).
Für apt-file
(1) aus dem apt-file
-Paket
muss zuvor "apt-file update
" ausgeführt werden.
configure-debian
(8) aus dem
configure-debian
-Paket führt
dpkg-reconfigure
(8) als Backend im Hintergrund aus.
dpkg-reconfigure
(8) führt Paketskripte aus, die
debconf
(1) als Backend im Hintergrund verwenden.
"apt-get build-dep
", "apt-get source
"
and "apt-cache showsrc
" commands require
"deb-src
" entry in the source
list.
dget
(1), debuild
(1) und
debi
(1) erfordern die Installation des
devscripts
-Pakets.
Infos zur Prozedur des (Neu-)Paketierens mittels "apt-get
source
" finden Sie in Abschnitt 2.7.13, „Ein Paket auf das Stable-System portieren“.
Der make-kpkg
-Befehl erfordert die Installation des
kernel-package
-Pakets (lesen Sie Abschnitt 9.10, „Der Kernel“).
Grundsätzliche Informationen über das Paketieren finden Sie in Abschnitt 12.9, „Erstellen von Debian-Paketen“.
Die Installation von debsums
ermöglicht die Verifizierung
installierter Pakete über MD5sum-Werte aus der Datei
"/var/lib/dpkg/info/*.md5sums
" mittels
debsums
(1). Details darüber, wie MD5sum arbeitet, finden
Sie in Abschnitt 10.3.5, „Die MD5-Prüfsumme“.
Anmerkung | |
---|---|
Da die MD5sum-Datenbank durch Eindringlinge gefälscht werden könnte, ist
|
Many users prefer to follow the testing (or unstable) releases of the Debian system for its new features and packages. This makes the system more prone to be hit by the critical package bugs.
Die Installation des apt-listbugs
-Pakets schützt Ihr
System vor kritischen Fehlern, indem bei Upgrades durch das APT-System
automatisch die Debian-Fehlerdatenbank (BTS) bezüglich kritischer Fehler
abgefragt wird.
Die Installation des apt-listchanges
-Pakets stellt Ihnen
wichtige Neuigkeiten aus "NEWS.Debian
" zur Verfügung,
wenn Upgrades durch das APT-System durchgeführt werden.
Obwohl der Besuch der Debian-Site https://packages.debian.org/ heutzutage einfache Möglichkeiten bietet, die Paket-Metadaten zu durchsuchen, wollen wir uns auch die traditionellen Wege anschauen.
Die Befehle grep-dctrl
(1),
grep-status
(1) und grep-available
(1)
können verwendet werden, um jegliche Datei zu durchsuchen, die das
grundsätzliche Format einer control-Datei für ein Debian-Paket hat.
"dpkg -S dateinamen_muster
" kann
verwendet werden, um durch dpkg
installierte Pakete zu
finden, die auf das Suchmuster passende Dateinamen enthalten. Hiermit werden
jedoch keine Dateien gefunden, die durch Skripte der Paketbetreuer erzeugt
wurden.
Wenn Sie eine tiefergehende Suche der dpkg-Metadaten benötigen, müssen Sie
den Befehl "grep -e regex_muster *
" im Verzeichnis
"/var/lib/dpkg/info/
" ausführen. So können Sie Wörter
finden, die in Paketskripten und Texten für Abfragen bei der Installation
auftauchen.
Wenn Sie Paketabhängigkeiten rekursiv abfragen möchten, sollten Sie
apt-rdepends
(8) verwenden.
Lassen Sie uns betrachten, wie das Debian-Paketmanagement-System intern funktioniert. Dies sollte Ihnen dabei helfen, eigene Lösungen für gewisse Paketprobleme zu finden.
Metadaten-Dateien für die jeweilige Distribution sind auf jedem
Debian-Spiegel unter "dist/codename
"
abgelegt, z.B. auf "http://deb.debian.org/debian/
". Sie
können die Archivstruktur mit einem Webbrowser durchsuchen. Es gibt sechs
Arten von wichtigen Metadaten:
Tabelle 2.14. Inhalt der Metadaten des Debian-Archivs
Datei | Speicherort | Inhalt |
---|---|---|
Release |
Wurzelverzeichnis der Distribution | Archivbeschreibung und Integritätsinformationen |
Release.gpg |
Wurzelverzeichnis der Distribution | Signaturdatei für die "Release "-Datei, mit dem
Archiv-Schlüssel signiert |
Contents-architektur |
Wurzelverzeichnis der Distribution | Liste aller Dateien für alle Pakete in dem entsprechenden Archiv |
Release |
Wurzelverzeichnis aller Distributions-/Bereichs-/Architektur-Kombinationen | Archivbeschreibung, die zur Festlegung von
apt_preferences (5) verwendet wird |
Packages |
Wurzelverzeichnis aller Distributions-/Bereichs-/Binärarchitektur-Kombinationen | vereinigte debian/control für Binärpakete |
Sources |
Wurzelverzeichnis aller Distributions-/Bereichs-/Quellen-Kombinationen | vereinigte debian/control für Quellpakete |
Im aktuellen Archiv sind diese Metadaten als komprimierte und differenzielle Dateien abgelegt, um Netzwerkverkehr zu reduzieren.
Tipp | |
---|---|
Die "Release"-Datei im Wurzelverzeichnis wird verwendet, um die Archive im Secure-APT-System zu signieren. |
Jede Suite im Debian-Archiv hat im Wurzelverzeichnis eine
"Release
"-Datei,
z.B.
"http://deb.debian.org/debian/dists/unstable/Release
",
wie hier:
Origin: Debian Label: Debian Suite: unstable Codename: sid Date: Sat, 14 May 2011 08:20:50 UTC Valid-Until: Sat, 21 May 2011 08:20:50 UTC Architectures: alpha amd64 armel hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 sparc Components: main contrib non-free Description: Debian x.y Unstable - Not Released MD5Sum: bdc8fa4b3f5e4a715dd0d56d176fc789 18876880 Contents-alpha.gz 9469a03c94b85e010d116aeeab9614c0 19441880 Contents-amd64.gz 3d68e206d7faa3aded660dc0996054fe 19203165 Contents-armel.gz ...
Anmerkung | |
---|---|
Hier finden Sie den Grund dafür, warum ich in Abschnitt 2.1.5, „Grundlagen über das Debian-Archiv“ "Suite" und "Codename" verwende. Die "Distribution" wird benutzt, um sowohl auf "Suite" wie auch auf "Codename" zu verweisen. Alle Namen der Archiv-Bereiche, die von dem Archiv angeboten werden, sind unter "Components" aufgelistet. |
The integrity of the top level "Release
" file is verified
by cryptographic infrastructure called the secure
apt as described in apt-secure
(8).
Die kryptografische Signaturdatei "Release.gpg
" wird aus
der authentischen "Release
"-Datei im Wurzelverzeichnis
und dem geheimen Debian-Archiv-Schlüssel erzeugt.
The public Debian archive keys are locally installed by the latest
debian-archive-keyring
package.
The secure APT system automatically
verifies the integrity of the downloaded top level
"Release
" file cryptographically by this
"Release.gpg
" file and the locally installed public
Debian archive keys.
Die Integrität all der "Packages
"- und
"Sources
"-Dateien wird über MD5sum-Werte in der
"Release
"-Datei im Wurzelverzeichnis verifiziert. Die
Integrität der Paketdateien wird über MD5sum-Werte in den
"Packages
"- und "Sources
"-Dateien
verifiziert. Lesen Sie dazu debsums
(1) und Abschnitt 2.4.2, „Verifizierung von installierten Paketdateien“.
Da die kryptografische Signaturverifizierung viel CPU-intensiver ist als die
Berechnung von MD5sum-Werten, bietet die Verwendung von MD5sum-Werten für
die Pakete bei gleichzeitiger Nutzung einer kryptografischen Signatur für
die "Release
"-Datei im Wurzelverzeichnis einen guten Kompromiss zwischen
Sicherheit und Performance (weiteres in Abschnitt 10.3, „Datensicherheits-Infrastruktur“).
If the source list entry specifies the
"signed-by
" option, the integrity of its downloaded top
level "Release
" file is verified using specified public
key. This is useful when the source list
contains non-Debian archives.
Tipp | |
---|---|
The use of |
Also, you can manually verify the integrity of the
"Release
" file with the "Release.gpg
"
file and the public Debian archive key posted on ftp-master.debian.org using
gpg
.
Tipp | |
---|---|
Die "Release"-Dateien im Archivverzeichnis werden zur Festlegung von
|
There are archive level "Release
" files for all archive
locations specified by the source list,
such as
"http://deb.debian.org/debian/dists/unstable/main/binary-amd64/Release
"
or
"http://deb.debian.org/debian/dists/sid/main/binary-amd64/Release
"
as follows.
Archive: unstable Origin: Debian Label: Debian Component: main Architecture: amd64
Achtung | |
---|---|
Für " |
Für einige Archive (wie experimental
und
bookworm-backports
), die Pakete enthalten,
welche nicht automatisch installiert werden sollten,
z.B.
"http://deb.debian.org/debian/dists/experimental/main/binary-amd64/Release
",
existiert eine zusätzliche Zeile, wie hier:
Archive: experimental Origin: Debian Label: Debian NotAutomatic: yes Component: main Architecture: amd64
Bitte beachten Sie, dass für normale Archive ohne "NotAutomatic:
yes
" der Wert für die Pin-Priorität 500 ist, während für besondere
Archive mit "NotAutomatic: yes
" dieser Wert 1 ist (lesen
Sie dazu apt_preferences
(5) und Abschnitt 2.7.7, „Tweaking candidate version with apt-pinning“).
When APT tools, such as aptitude
,
apt-get
, synaptic
,
apt-file
, auto-apt
, … are used, we
need to update the local copies of the meta data containing the Debian
archive information. These local copies have following file names
corresponding to the specified distribution
,
area
, and architecture
names in
the source list (see Abschnitt 2.1.5, „Grundlagen über das Debian-Archiv“).
"/var/lib/apt/lists/deb.debian.org_debian_dists_distribution_Release
"
"/var/lib/apt/lists/deb.debian.org_debian_dists_distribution_Release.gpg
"
"/var/lib/apt/lists/deb.debian.org_debian_dists_distribution_area_binary-architektur_Packages
"
"/var/lib/apt/lists/deb.debian.org_debian_dists_distribution_bereich_source_Sources
"
"/var/cache/apt/apt-file/deb.debian.org_debian_dists_distribution_Contents-architektur.gz
"
(für apt-file
)
First 4 types of files are shared by all the pertinent APT commands and
updated from command line by "apt-get update
" or
"aptitude update
". The "Packages
"
meta data are updated if the "deb
" is specified in
the source list. The
"Sources
" meta data are updated if the
"deb-src
" is specified in the
source list.
Die "Packages
"- und
"Sources
"-Metadaten enthalten einen
"Filename:
"-Eintrag, der auf den Speicherort der Binär-
und Quellpakete verweist. Derzeit sind diese Pakete in dem Verzeichnisbaum
unterhalb von "pool/
" abgelegt zwecks einfacher Übergänge
zwischen den Veröffentlichungen.
Lokale Kopien der "Packages
"-Metadaten können mit Hilfe
von aptitude
interaktiv durchsucht werden. Der
spezialisierte Suchbefehl grep-dctrl
(1) kann lokale
Kopien der "Packages
"- und
"Sources
"-Metadaten durchsuchen.
Lokale Kopien von
"Contents-architektur
"-Metadaten
können mittels "apt-file update
" aktualisiert werden und
ihr Speicherort unterscheidet sich von den vier anderen. Lesen Sie dazu
apt-file
(1). (auto-apt
nutzt
standardmäßig andere Speicherorte für die lokale Kopie von
"Contents-architektur.gz
".)
Zusätzlich zu den von außerhalb empfangenen Metadaten speichert das
APT-Werkzeug seit Lenny
seine lokal erzeugten
Installationsstatus-Informationen in der Datei
"/var/lib/apt/extended_states
", die von allen
APT-Programmen genutzt wird, um automatisch installierte Pakete zu
verfolgen.
Zusätzlich zu den von außerhalb empfangenen Metadaten speichert der
aptitude
-Befehl seine lokal erzeugten
Installationsstatus-Informationen in der Datei
"/var/lib/aptitude/pkgstates
", die nur von aptitude
selbst genutzt wird.
Alle über den APT-Mechanismus von außerhalb empfangenen Pakete werden im
Verzeichnis "/var/cache/apt/archives
" abgelegt, bis sie
gelöscht werden.
Sie können diese Richtlinie zur Entfernung von zwischengespeicherten Dateien
bei aptitude
unter "Optionen
" →
"Einstellungen
" festlegen; über das Menü unter
"Aktionen
" → "Paketcache komplett
leeren
" oder "Nur veraltete Paketdateien
löschen
" können Sie dies auch händisch erzwingen.
Die Dateien von Debian-Paketen haben eine bestimmte Namensstruktur:
Tabelle 2.15. Namensstruktur von Debian-Paketen
Pakettyp | Namensstruktur |
---|---|
Binärpaket (auch deb ) |
paketname_upstream-version-debian.revision_architektur.deb |
Binärpaket für den debian-installer (auch udeb ) |
paketname_upstream-version-debian.revision_architetur.udeb |
Quellpaket (Quellcode der Originalprogrammierer) | paketname_upstream-version-debian.revision.orig.tar.gz |
1.0 -Quellpaket (Debian-Änderungen) |
paketname_upstream-version-debian.revision.diff.gz |
3.0 (quilt) -Quellpaket (Debian-Änderungen) |
paketname_upstream-version-debian.revision.debian.tar.gz |
Quellpaket (Beschreibung) | paketname_upstream-version-debian.revision.dsc |
Tipp | |
---|---|
Hier sind nur die grundlegenden Quellpaketformate beschrieben. Lesen Sie
weitere Details in |
Tabelle 2.16. In den einzelnen Komponenten von Debian-Paketnamen zu verwendende Zeichen
Namenskomponente | zu verwendende Zeichen (erweiterter regulärer Ausdruck) | Existenz |
---|---|---|
paketname |
[a-z0-9][-a-z0-9.+]+ |
erforderlich |
epoche: |
[0-9]+: |
optional |
upstream-version |
[-a-zA-Z0-9.+:]+ |
erforderlich |
debian.revision |
[a-zA-Z0-9.+~]+ |
optional |
Anmerkung | |
---|---|
Sie können die Reihenfolge von Paketversionen (welche Versionsnummer höher
ist) mit |
Anmerkung | |
---|---|
Der debian-installer (d-i) nutzt
|
dpkg
(1) ist das Werkzeug, das beim Debian-Paketmanagement
auf der untersten Ebene arbeitet. Es ist sehr leistungsfähig und muss mit
Vorsicht verwendet werden.
Beim Installieren eines Pakets
"paketname
" arbeitet
dpkg
folgende Schritte ab:
die deb-Datei auspacken (gleichbedeutend mit "ar -x
");
ausführen von "paketname.preinst
"
mittels debconf
(1);
installieren des Paketinhalts in das System (gleichbedeutend zu
"tar -x
");
ausführen von "paketname.postinst
"
mittels debconf
(1).
Das debconf
-System bietet eine standardisierte
Benutzer-Schnittstelle mit Unterstützung für I18N und L10N (Näheres in Kapitel 8, I18N und L10N).
Tabelle 2.17. Erwähnenswerte Dateien, die durch dpkg
erzeugt werden
Datei | Beschreibung des Inhalts |
---|---|
/var/lib/dpkg/info/paketname.conffiles |
Liste der Konfigurationsdateien (durch den Benutzer änderbar) |
/var/lib/dpkg/info/paketname.list |
Liste von Dateien und Verzeichnissen, die durch das Paket installiert werden |
/var/lib/dpkg/info/paketname.md5sums |
Liste der MD5-Hash-Werte für Dateien, die durch das Paket installiert werden |
/var/lib/dpkg/info/paketname.preinst |
Paket-Skript, das vor der Paketinstallation ausgeführt wird |
/var/lib/dpkg/info/paketname.postinst |
Paket-Skript, das nach der Paketinstallation ausgeführt wird |
/var/lib/dpkg/info/paketname.prerm |
Paket-Skript, das vor der Paketentfernung ausgeführt wird |
/var/lib/dpkg/info/paketname.postrm |
Paket-Skript, das nach der Paketentfernung ausgeführt wird |
/var/lib/dpkg/info/paketname.config |
Paket-Skript für das debconf -System |
/var/lib/dpkg/alternatives/paketname |
alternative-Informationen, die durch den
update-alternatives -Befehl genutzt werden |
/var/lib/dpkg/available |
availability-Informationen (Verfügbarkeit) für alle Pakete |
/var/lib/dpkg/diversions |
die diversions-Informationen, die durch dpkg (1) genutzt
und durch dpkg-divert (8) gesetzt werden |
/var/lib/dpkg/statoverride |
die stat-override-Informationen, die durch dpkg (1)
genutzt und durch dpkg-statoverride (8) gesetzt werden |
/var/lib/dpkg/status |
Status-Informationen für alle Pakete |
/var/lib/dpkg/status-old |
Backup der ersten Generation von "var/lib/dpkg/status " |
/var/backups/dpkg.status* |
Backup der zweiten Generation und ältere von
"var/lib/dpkg/status " |
Die "status
"-Datei wird auch von Werkzeugen wie
dpkg
(1), "dselect update
" und
"apt-get -u dselect-upgrade
" verwendet.
Der spezialisierte Suchbefehl grep-dctrl
(1) kann lokale
Kopien der "status
"- und
"available
"-Metadaten durchsuchen.
Tipp | |
---|---|
In der debian-installer-Umgebung
wird der Befehl |
Das Debian-System hat Mechanismen, um Programme, die sich bei der
Funktionalität ein wenig überlappen, friedlich nebeneinander zu
installieren, und zwar mittels
update-alternatives
(1). Zum Beispiel können Sie den
vi
-Befehl so einrichten, dass er vim
ausführt, wenn Sie sowohl das vim
wie auch das
nvi
-Paket installiert haben.
$ ls -l $(type -p vi) lrwxrwxrwx 1 root root 20 2007-03-24 19:05 /usr/bin/vi -> /etc/alternatives/vi $ sudo update-alternatives --display vi ... $ sudo update-alternatives --config vi Selection Command ---------------------------------------------- 1 /usr/bin/vim *+ 2 /usr/bin/nvi Enter to keep the default[*], or type selection number: 1
Das Debian-alternatives-System setzt seine Auswahl als symbolischer Link in
"/etc/alternatives/
". Der Auswahlprozess nutzt die
entsprechende Datei in "/var/lib/dpkg/alternatives/
".
Stat overrides, bereitgestellt durch den
dpkg-statoverride
(8)-Befehl, sind ein Weg,
dpkg
(1) mitzuteilen, dass bei Installation eines Pakets
für eine Datei ein anderer Eigentümer
oder andere Berechtigungen verwendet werden sollen. Falls
"--update
" angegeben wurde und die Datei bereits
existiert, werden direkt der neue Eigentümer oder neue Berechtigungen
gesetzt.
Achtung | |
---|---|
Die direkte Abänderung von Benutzer oder Berechtigungen durch den
Systemadministrator (über die Befehle |
Anmerkung | |
---|---|
Ich verwende hier den Begriff Datei,
jedoch kann dies jegliches Objekt im Dateisystem sein, dass durch
|
Diversions, bereitgestellt durch den
dpkg-divert
(8)-Befehl, bieten die Möglichkeit,
dpkg
(1) zu zwingen, eine Datei nicht an Ihren Standardort
zu installieren, sondern an einen umgelenkten Speicherort (diverted). dpkg-divert
ist zur
Verwendung durch Paketverwaltungs-Skripte gedacht. Die beiläufige Verwendung
durch den Systemadministrator ist nicht mehr zeitgemäß.
Bei einem testing
- oder
unstable
-System sollte der Administrator darauf
vorbereitet sein, das System im Falle einer Beschädigung des
Paketmanagements wiederherstellen zu können.
Achtung | |
---|---|
Einige Methoden, die hier beschrieben werden, beinhalten ein hohes Risiko. Sie wurden gewarnt! |
Wenn Sie die Installation eines Pakets über "sudo dpkg -i
...
" auf einem System erzwingen, auf dem nicht alle erforderlichen
Pakete vorhanden sind, wird die Paketinstallation mit dem Status
"nicht vollständig installiert
" fehlschlagen.
Sie sollten alle benötigten Pakete (Depends) über das APT-System oder
"sudo dpkg -i ...
" installieren.
Konfigurieren Sie dann alle unvollständig installierten Pakete mit folgendem Befehl:
# dpkg --configure -a
Fehler beim Zwischenspeichern der Paketdaten führen zu verblüffenden Meldungen, wie "GPG error: ... invalid: BADSIG ..." bei APT.
Sie sollten alle zwischengespeicherten Daten mittels "sudo rm -rf
/var/lib/apt/*
" entfernen und es erneut versuchen. (Falls Sie
apt-cacher-ng
verwenden, führen Sie auch "sudo
rm -rf /var/cache/apt-cacher-ng/*
" aus.)
Wenn ein Desktop-GUI-Programm nach signifikanten Upgrades von Upstream Instabilitäten erkennen lässt, sollten Sie Behinderungen durch alte lokal erstellte Konfigurationsdateien als Ursache in Betracht ziehen. Falls das Programm unter einem neu erstellten Benutzerkonto stabil läuft, ist diese Hypothese bestätigt. (Dies ist ein Fehler beim Paketieren und wird für gewöhnlich durch den Paketersteller vermieden.)
Um das Programm wieder stabil zu bekommen, sollten Sie die entsprechenden lokalen Konfigurationsdateien beiseite schaffen und das GUI-Programm neu starten. Sie müssen möglicherweise die Inhalte alter Konfigurationsdateien lesen, um die Konfigurationsinformationen später wiederherstellen zu können. (Löschen Sie sie nicht zu früh.)
Paketmanagementsysteme für das Debian-Archiv wie
aptitude
(8) oder apt-get
(1) versuchen
erst gar nicht, Pakete mit überlappenden Dateien über Paketabhängigkeiten zu
installieren (weiteres in Abschnitt 2.1.7, „Paketabhängigkeiten“).
Fehler durch einen Paketbetreuer oder die Einrichtung von inkonsistent
gemischten Archivquellen durch den Systemadministrator (lesen Sie Abschnitt 2.7.6, „Packages from mixed source of archives without apt-pinning“) könnten Situationen
mit falsch definierten Paketabhängigkeiten hervorrufen. Wenn Sie in solch
einer Situation ein Paket mit überlappenden Dateien mittels
aptitude
(8) oder apt-get
(1)
installieren, stellt dpkg
(1), das das Paket entpackt,
sicher, dass ein Fehler an das aufrufende Programm zurückgegeben wird, ohne
dass vorhandene Dateien überschrieben werden.
Achtung | |
---|---|
Die Verwendung von Paketen aus Drittquellen bringt durch Betreuerskripte ein
erhebliches Risiko für das System mit sich, da diese mit root-Privilegien
ausgeführt werden und jegliche Aktion auf dem System ausführen können. Der
|
Sie können solche beschädigten Installationen umgehen, indem Sie vorher das
alte betroffene Paket altes-paket
entfernen:
$ sudo dpkg -P old-package
Wenn ein Befehl in einem Paketskript aus irgendeinem Grund einen Fehler zurückgibt und das Skript aufgrund des Fehlers abgebrochen wird, beendet das Paketmanagement die Aktion und es bleiben halb-installierte Pakete zurück. Enthält ein Paket Programmierfehler in seinen Skripten zum Löschen des Pakets, könnte es sein, dass das Paket nicht mehr entfernt werden kann und ziemlich unangenehm wird.
Wenn das Paket "paketname
" ein
Problem mit den Skripten hat, sollten Sie in folgenden Paketskripten
nachschauen:
"/var/lib/dpkg/info/paketname.preinst
"
"/var/lib/dpkg/info/paketname.postinst
"
"/var/lib/dpkg/info/paketname.prerm
"
"/var/lib/dpkg/info/paketname.postrm
"
Editieren Sie die angebotenen Paketskripte von Grund auf mittels folgender Techniken:
deaktivieren Sie die problematische Zeile, indem Sie ein
"#
" voranstellen;
erzwingen Sie, dass das Skript einen Rückgabewert für Erfolg zurück gibt,
indem Sie der fraglichen Zeile "|| true
" anhängen.
Folgen Sie dann den Anweisungen in Abschnitt 2.6, „Wiederherstellung eines beschädigten Systems“.
Da dpkg
ein Paketwerkzeug ist, das auf der untersten
Ebene arbeitet, kann es auch in sehr schlechten Situationen wie einem nicht
startfähigen System und ohne Netzwerkverbindung noch arbeiten. Wir gehen
hier davon aus, dass das Paket foo
beschädigt war und
ersetzt werden muss.
Sie könnten im cache-Verzeichnis
"/var/cache/apt/archives/
" zwischengespeicherte Kopien
von älteren, fehlerfreien Versionen des Pakets foo
finden. (Falls nicht, können Sie diese auch aus dem Archiv unter https://snapshot.debian.org/
herunterladen oder von einem funktionierenden System herüber kopieren.)
Ist das System boot-fähig, könnte es unter Umständen möglich sein, das Paket mit folgendem Befehl zu installieren:
# dpkg -i /path/to/foo_old_version_arch.deb
Tipp | |
---|---|
Wenn die Beschädigung des Systems nur gering ist, könnten Sie das ganze System möglicherweise mit dem APT-System auf eine ältere Version zurückrüsten, wie in Abschnitt 2.7.11, „Downgrade im Notfall“ beschrieben. |
Kann Ihr System überhaupt nicht mehr von Festplatte gestartet werden, suchen Sie nach anderen Wegen, das System zu starten:
Booten Sie das System, indem Sie den Rettungsmodus der debian-installer-CD verwenden.
Binden Sie die Festplattenpartitionen des nicht mehr zu startenden Systems
in "/target
" ein.
Installieren Sie wie folgt eine ältere Version des Pakets
foo
:
# dpkg --root /target -i /path/to/foo_old_version_arch.deb
Dies funktioniert sogar, wenn der dpkg
-Befehl auf der
Festplatte beschädigt ist.
Tipp | |
---|---|
Jegliches GNU/Linux-System, das von einem anderen System auf der Festplatte oder von Live-GNU/Linux-CD, bootfähigem USB-Stick oder per Netboot gestartet wird, kann auf ähnliche Art zur Rettung des beschädigten Systems verwendet werden. |
Falls der Versuch, ein Paket auf diese Art zu installieren, aufgrund von
verletzten Abhängigkeiten fehlschlägt, können Sie als letzten Ausweg
Abhängigkeiten mit den dpkg
-Optionen
"--ignore-depends
", "--force-depends
"
und weiteren überschreiben. Dabei müssen Sie besondere Sorgfalt darauf
verwenden, die Abhängigkeiten später korrekt wiederherzustellen. Details
finden Sie in dpkg
(8).
Anmerkung | |
---|---|
Falls Ihr System ernsthaft beschädigt ist, sollten ein vollständiges Backup aller Daten an einem sicheren Ort ablegen (siehe Abschnitt 10.2, „Datensicherung und -wiederherstellung“) und eine saubere Neuinstallation durchführen. Dies ist weniger zeitaufwändig und führt am Ende zu einem besseren Ergebnis. |
Falls "/var/lib/dpkg/status
" aus irgendeinem Grund
beschädigt wird, verliert das Debian-System die Daten über ausgewählte
Pakete und kommt dadurch erheblich zu Schaden. Sie finden alte
"/var/lib/dpkg/status
"-Dateien in
"/var/lib/dpkg/status-old
" oder
"/var/backups/dpkg.status.*
".
Es könnte eine gute Idee sein, "/var/backups/
" auf einer
separaten Partition abzulegen, da dieses Verzeichnis viele wichtige
Systemdaten enthält.
Bei ernsten Beschädigungen empfehle ich eine frische Neuinstallation,
nachdem eine Sicherung der Daten durchgeführt wurde. Sogar wenn alles in
"/var/
" verloren ist, können Sie trotzdem noch etliche
Informationen aus Verzeichnissen in "/usr/share/doc/
"
wiederherstellen, um Ihre neue Installation zu lenken:
Installieren Sie ein minimales (Desktop-)System.
# mkdir -p /path/to/old/system
Binden Sie die alten Systempartitionen in
"/pfad/zum/alten/system/
" ein.
# cd /path/to/old/system/usr/share/doc # ls -1 >~/ls1.txt # cd /usr/share/doc # ls -1 >>~/ls1.txt # cd # sort ls1.txt | uniq | less
Jetzt haben Sie eine Liste mit Paketnamen, die Sie installieren können. (Es
könnten auch einige Zeichenfolgen darunter sein, die keine Paketnamen sind,
wie z.B. "texmf
".)
For simplicity, the source list examples
in this section are presented as "/etc/apt/sources.list
"
in one-line-style after the bookworm
release.
Obwohl der Betreuername, der in "/var/lib/dpkg/available
"
und "/usr/share/doc/package_name/changelog
" aufgelistet
ist, Informationen darüber gibt, "wer hinter den Paketaktivitäten steht",
sind Informationen über den Uploader (die Person, die das Paket wirklich
hochgeladen hat) ein wenig verschleiert. who-uploads
(1)
aus dem devscripts
-Paket identifiziert die realen
Uploader von Debian-Quellpaketen.
Falls Sie die Download-Bandbreite für APT einschränken möchten, sagen wir z.B. auf 800Kib/sec (=100kiB/sec), sollten Sie APT mit folgenden Konfigurationsparametern einrichten:
APT::Acquire::http::Dl-Limit "800";
Das apt
-Paket enthält ein eigenes cron-Skript
("/etc/cron.daily/apt
"), um den automatischen Download
von Paketen zu unterstützen. Durch die Installation des
unattended-upgrades
-Pakets kann dieses Skript erweitert
werden, so dass auch die automatische Aktualisierung von Paketen
durchgeführt wird. Sie können dies über Parameter in
"/etc/apt/apt.conf.d/02backup
" und
"/etc/apt/apt.conf.d/50unattended-upgrades
" noch weiter
anpassen, wie in
"/usr/share/doc/unattended-upgrades/README
" beschrieben.
Das unattended-upgrades
-Paket ist hauptsächlich für
Sicherheits-Upgrades auf Stable
-Systemen gedacht. Wenn
das Risiko, ein vorhandenes Stable
-System über einen
automatischen Upgrade-Prozess zu beschädigen, geringer ist als das, welches
von einem Angreifer ausgeht, der über Ausnutzung einer Sicherheitslücke das
System schädigt, sollten Sie ein automatisches Upgrade in Erwägung ziehen,
das diese Lücke über ein Sicherheits-Upgrade schließt. Nutzen Sie dazu
folgende Konfigurationsparameter:
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "1";
If you are running an testing
or
unstable
system, you do not want to use the automatic
upgrade since it certainly breaks system some day. Even for such
testing
or unstable
case, you may
still want to download packages in advance to save time for the interactive
upgrade with configuration parameters as the following.
APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Download-Upgradeable-Packages "1"; APT::Periodic::Unattended-Upgrade "0";
There are stable-updates
("bookworm
-updates" during the
bookworm
-as-stable
release
cycle) and backports.debian.org
archives which provide upgrade packages for stable
.
Um diese Archive zu nutzen, listen Sie alle erforderlichen Archive in der
"/etc/apt/sources.list
"-Datei auf, wie hier:
deb http://deb.debian.org/debian/ bookworm main non-free-firmware contrib non-free deb http://security.debian.org/debian-security bookworm-security main non-free-firmware contrib non-free deb http://deb.debian.org/debian/ bookworm-updates main non-free-firmware contrib non-free deb http://deb.debian.org/debian/ bookworm-backports main non-free-firmware contrib non-free
Es ist nicht nötig, einen Wert für die Pin-Priorität in
"/etc/apt/preferences
" zu setzen. Wenn neuere Pakete
verfügbar werden, werden mit der Standardkonfiguration passende Upgrades
bereitgestellt (siehe Abschnitt 2.5.3, „"Release"-Dateien im Archivverzeichnis“).
Alle installierten veralteten Pakete werden auf die neuen von
bookworm-updates
aktualisiert.
Nur manuell installierte veraltete Pakete von
bookworm-backports
werden auf die neuen
Versionen von bookworm-backports
aktualisiert.
Wann immer Sie ein Paket namens
"paketname
" inklusive seiner
Abhängigkeiten von bookworm-backports
manuell
installieren möchten, verwenden Sie den folgenden Befehl, wobei Sie die
Zielveröffentlichung mit der Option "-t
" festlegen:
$ sudo apt-get install -t bookworm-backports package-name
Warnung | |
---|---|
Do not install too many packages from backports.debian.org archives. It may cause package dependency complications. See Abschnitt 2.1.11, „How to cope with conflicting requirements“ for alternative solutions. |
Warnung | |
---|---|
You should be aware that the external package gains the root priviledge to your system. You should only use the trusted external package archive. See Abschnitt 2.1.11, „How to cope with conflicting requirements“ for alternative solutions. |
You can use secure APT with Debian-compatible external package archive by
adding it to the source list and its
archive key file into the "/etc/apt/trusted.gpg.d/
"
directory. See sources.list
(5),
apt-secure
(8) and apt-key
(8).
Achtung | |
---|---|
Installing packages from mixed source of archives is not supported by the
official Debian distribution except for officially supported particular
combinations of archives such as |
Hier ein Beispiel von Befehlen, über die man spezielle neuere
Upstream-Versionen von Paketen aus Unstable
verwendet,
während ansonsten Testing
genutzt wird:
Ändern Sie die Datei "/etc/apt/sources.list
"
vorübergehend in "unstable
".
Führen Sie "aptitude update
" aus.
Führen Sie "aptitude install
packetname
" aus.
Stellen Sie die Originalversion von
"/etc/apt/sources.list
" für testing
wieder her.
Führen Sie "aptitude update
" aus.
You do not create the "/etc/apt/preferences
" file nor
need to worry about apt-pinning with this
manual approach. But this is very cumbersome.
Achtung | |
---|---|
Wenn Sie gemischte Paketquellen verwenden, müssen Sie die Kompatibilität selbst sicherstellen, da Debian diese in solchem Falle nicht garantieren kann. Falls Paketinkompatibilitäten existieren, könnten Sie Ihr System beschädigen. Sie müssen in der Lage sein, diese technischen Anforderungen zu beurteilen. Die Verwendung von gemischten Quellen zufällig ausgewählter Archive ist eine absolut optionale Operation und nicht zu empfehlen. |
Die grundsätzlichen Regeln für die Installation von Paketen aus unterschiedlichen Archiven sind wie folgt:
Nicht-binäre Pakete ("Architecture: all
") sind recht
unproblematisch zu installieren:
Dokumentationspakete: keine speziellen Anforderungen;
Pakete von Interpreter-Programmen: ein kompatibler Interpreter muss verfügbar sein.
Bei Binärpaketen (nicht "Architecture: all
") gibt es
gewöhnlich viele Stolpersteine und ihre Installation könnte problematisch sein:
Anmerkung | |
---|---|
Um die Installation eines Pakets unproblematischer zu machen, existieren möglicherweise einige nicht-freie Binärprogramm-Pakete mit vollständig statisch gelinkten Bibliotheken. Sie sollten diese immer auf ABI-Kompatibilitätsprobleme usw. kontrollieren. |
Anmerkung | |
---|---|
Except to avoid broken package for a short term, installing binary packages from non-Debian archives is generally bad idea. You should seek all available alternative safer technical solutions which are compatible with your current Debian syetem (see Abschnitt 2.1.11, „How to cope with conflicting requirements“). |
Warnung | |
---|---|
Use of apt-pinning by a novice user is sure call for major troubles. You must avoid using apt-pinning except when you absolutely need it. |
Ohne eine "/etc/apt/preferences
"-Datei wählt das
APT-System basierend auf dem Versionseintrag die letzte verfügbare Version
als Installationskandidat-Version
aus. Dies ist der normale Weg und die empfohlene Verwendung des
APT-Systems. Alle offiziell unterstützten Archivkombinationen erfordern
keine "/etc/apt/preferences
"-Datei, da bei Archiven, die
nicht als automatische Quelle für Aktualisierungen empfohlen werden, die
Einstellung NotAutomatic gesetzt ist und
diese entsprechend behandelt werden.
Tipp | |
---|---|
Die Regel zum Vergleich der Versionsnummern (welche Versionsnummer größer
ist) kann z.B. über " |
Wenn Sie regelmäßig Pakete aus gemischten Quellen installieren (siehe Abschnitt 2.7.6, „Packages from mixed source of archives without apt-pinning“), können Sie diese
komplizierten Operationen automatisieren, indem Sie eine Datei
"/etc/apt/preferences
" mit entsprechenden Einträgen
erstellen; so beeinflussen Sie die Auswahlregel für die Installationskandidat-Version; dies ist in
apt_preferences
(5) beschrieben. Dies Verfahren wird
apt-pinning genannt.
When using apt-pinning, you must ensure compatibility of packages by yourself since the Debian does not guarantee it. The apt-pinning is completely optional operation and its use is not something I encourage you to use.
Archive level Release files (see Abschnitt 2.5.3, „"Release"-Dateien im Archivverzeichnis“) are used for the rule of
apt_preferences
(5). Thus apt-pinning works only with "suite" name for normal Debian archives and security Debian archives. (This is
different from Ubuntu archives.) For example,
you can do "Pin: release a=unstable
" but can not do
"Pin: release a=sid
" in the
"/etc/apt/preferences
" file.
When you use non-Debian archive as a part of apt-pinning, you should check what they are intended for and also check their credibility. For example, Ubuntu and Debian are not meant to be mixed.
Anmerkung | |
---|---|
Even if you do not create the " |
Hier eine vereinfachte Beschreibung der Technik hinter apt-pinning:
Das APT-System wählt für ein Upgrade das
Paket mit der höchsten Pin-Priorität aus den verfügbaren (in
"/etc/apt/sources.list
" definierten) Paketquellen als
Installationskandidat-Version aus. Wenn
die Pin-Priorität des Pakets größer als 1000 ist, wird die Einschränkung für
Upgrades nicht beachtet, um ein Downgrade
(eine Zurückrüstung auf eine ältere Version) zu ermöglichen (siehe Abschnitt 2.7.11, „Downgrade im Notfall“).
Werte für die Pin-Priorität eines jeden Pakets werden über Einträge in der
"/etc/apt/preferences
"-Datei festgelegt oder verwenden
deren Standardwert.
Tabelle 2.18. Liste erwähnenswerter Pin-Prioritäts-Werte für apt-pinning
Pin-Priorität | apt-pinning effects to the package |
---|---|
1001 | das Paket installieren, auch wenn dies ein Downgrade des Pakets bedeutet |
990 | wird als Standardwert für das Archiv der Zielveröffentlichung verwendet |
500 | wird als Standardwert für das normale Archiv verwendet |
100 | wird als Standardwert für Archive mit NotAutomatic und ButAutomaticUpgrades verwendet |
100 | wird für das installierte Paket verwendet |
1 | wird als Standardwert für Archive mit NotAutomatic verwendet |
-1 | das Paket niemals installieren, selbst wenn es empfohlen wird |
The target release archive can be set by
the command line option, e.g., "apt-get install -t testing
some-package
"
Die NotAutomatic- und ButAutomaticUpgrades-Archive werden durch
Archiv-Server definiert, die in ihren Release-Dateien im
Archiv-Wurzelverzeichnis (siehe Abschnitt 2.5.3, „"Release"-Dateien im Archivverzeichnis“) sowohl "NotAutomatic:
yes
" wie auch "ButAutomaticUpgrades: yes
"
gesetzt haben. Das NotAutomatic-Archiv
wird über Server definiert, die in ihren Release-Dateien lediglich
"NotAutomatic: yes
" gesetzt haben.
Die apt-pinning-Situation von
package aus mehreren Archivquellen wird mittels
"apt-cache policy package
"
angezeigt.
Eine Zeile beginnend mit "Package pin:
" listet die
Paketversion von pin auf, wenn die
Zuordnung direkt über package definiert ist,
z.B. "Package pin: 0.190
".
Es existiert keine Zeile mit "Package pin:
", wenn keine
Zuordnung direkt über package definiert ist.
Der Pin-Prioritäts-Wert, der direkt zu package gehört,
ist rechts neben den Versionseinträgen aufgelistet, z.B. "0.181
700
".
"0
" wird rechts neben den Versionseinträgen aufgelistet,
wenn keine Zuordnung direkt mit package definiert ist,
z.B "0.181 0
".
Die Pin-Prioritäts-Werte von Archiven (definiert als "Package:
*
" in der "/etc/apt/preferences
"-Datei) sind
links von den Archivpfaden aufgelistet, z.B. "100
http://deb.debian.org/debian/ bookworm-backports/main
Packages
".
Warnung | |
---|---|
Use of apt-pinning by a novice user is sure call for major troubles. You must avoid using apt-pinning except when you absolutely need it. |
Wenn Sie verhindern möchten, dass bestimmte Pakete über
"Recommends"-Abhängigkeiten (Empfohlen) installiert werden, müssen Sie die
Datei "/etc/apt/preferences
" erstellen und explizit all
diese Pakete ganz oben in der Datei auflisten, wie in diesem Beispiel:
Package: package-1 Pin: version * Pin-Priority: -1 Package: package-2 Pin: version * Pin-Priority: -1
Warnung | |
---|---|
Use of apt-pinning by a novice user is sure call for major troubles. You must avoid using apt-pinning except when you absolutely need it. |
Hier ein Beispiel für eine apt-pinning-Technik, um neuere Upstream-Versionen
einzelner Pakete aus Unstable
regelmäßig aktualisieren zu
können und ansonsten Testing
zu nutzen. Sie listen alle
benötigten Archive in der "/etc/apt/sources.list
"-Datei
auf, wie hier:
deb http://deb.debian.org/debian/ testing main contrib non-free deb http://deb.debian.org/debian/ unstable main contrib non-free deb http://security.debian.org/debian-security testing-security main contrib
Richten Sie die "/etc/apt/preferences
"-Datei wie folgt
ein:
Package: * Pin: release a=unstable Pin-Priority: 100
Wenn Sie mit dieser Konfiguration ein Paket namens
"paketname
" aus dem
Unstable
-Archiv inklusive seiner Abhängigkeiten
installieren möchten, führen Sie folgenden Befehl aus, wobei über die Option
"-t
" die Zielveröffentlichung angepasst wird (die
Pin-Priorität von Unstable
wird 990):
$ sudo apt-get install -t unstable package-name
Mit dieser Konfiguration wird die normale Ausführung von "apt-get
upgrade
" und "apt-get dist-upgrade
" (oder
"aptitude safe-upgrade
" und "aptitude
full-upgrade
") Pakete, die aus Testing
installiert wurden, unter Verwendung des derzeitigen
Testing
-Archivs aktualisieren; Pakete, die aus
Unstable
installiert wurden, werden unter Verwendung des
derzeitigen Unstable
-Archivs aktualisiert.
Achtung | |
---|---|
Achten Sie darauf, dass Sie nicht den " |
Tipp | |
---|---|
Ich bearbeite für gewöhnlich die
" |
Tipp | |
---|---|
Wenn " |
Möchten Sie bestimmte Pakete in Unstable
automatisch ohne
vorangestelltes "-t unstable
" auf aktuellem Stand halten,
müssen Sie die "/etc/apt/preferences
"-Datei erstellen und
ganz oben in der Datei all diese Pakete wie folgt auflisten:
Package: package-1 Pin: release a=unstable Pin-Priority: 700 Package: package-2 Pin: release a=unstable Pin-Priority: 700
Dadurch wird die Pin-Priorität für jedes dieser Pakete spezifisch
gesetzt. Um zum Beispiel immer die aktuellste
Unstable
-Version dieser "Debian Reference" in Englisch zu
installieren, sollten Sie folgende Einträge in Ihrer
"/etc/apt/preferences
"-Datei haben:
Package: debian-reference-en Pin: release a=unstable Pin-Priority: 700 Package: debian-reference-common Pin: release a=unstable Pin-Priority: 700
Tipp | |
---|---|
This apt-pinning technique is valid even
when you are tracking |
Warnung | |
---|---|
Use of apt-pinning by a novice user is sure call for major troubles. You must avoid using apt-pinning except when you absolutely need it. |
Hier ein anderes Beispiel der apt-pinning-Technik, um neuere Upstream-Versionen
einzelner Pakete aus Experimental
zu integrieren und
ansonsten Testing
zu nutzen. Sie listen alle benötigten
Archive in der "/etc/apt/sources.list
"-Datei auf, wie
hier:
deb http://deb.debian.org/debian/ unstable main contrib non-free deb http://deb.debian.org/debian/ experimental main contrib non-free deb http://security.debian.org/ testing-security main contrib
Die Standard-Pin-Priorität für das Experimental
-Archiv
ist immer 1 (<<100), da es ein Archiv mit gesetztem NotAutomatic ist (siehe Abschnitt 2.5.3, „"Release"-Dateien im Archivverzeichnis“). Es ist nicht nötig, den Wert für
die Pin-Priorität explizit in der
"/etc/apt/preferences
"-Datei zu setzen, um das
Experimental
-Archiv nutzen zu können (außer wenn Sie
möchten, dass bestimmte Pakete daraus beim nächsten Upgrade automatisch
verwendet werden sollen).
Warnung | |
---|---|
Use of apt-pinning by a novice user is sure call for major troubles. You must avoid using apt-pinning except when you absolutely need it. |
Achtung | |
---|---|
Ein Downgrade wird von Debian aufgrund seines Designs nicht offiziell unterstützt. Es sollte nur als Teil einer Notfall-Rettungsmaßnahme durchgeführt werden. Davon einmal abgesehen ist bekannt, dass es in den meisten Fällen gut funktioniert. Bei kritischen Systemen sollten Sie nach der Wiederherstellung alle wichtigen Daten auf dem System sichern und dann das System von Grund auf neu installieren. |
Sie könnten Glück haben und ein Downgrade auf eine ältere Archiv-Version
durch Manipulation der Installationskandidat-Versionen hinbekommen (lesen
Sie dazu Abschnitt 2.7.7, „Tweaking candidate version with apt-pinning“). Dies ist die
tippfaule Alternative zu vielen langwierigen Befehlen der Art "dpkg
-i
beschädigtes-paket_alte-version.deb
"
(näheres dazu in Abschnitt 2.6.6, „Systemrettung mit dem dpkg-Befehl“).
Suchen Sie Zeilen in der "/etc/apt/sources.list
"-Datei
wie die folgende, die unstable
referenzieren:
deb http://deb.debian.org/debian/ sid main contrib non-free
Ersetzen Sie sie durch die folgende, um stattdessen auf
testing
zu verweisen:
deb http://deb.debian.org/debian/ trixie main contrib non-free
Richten Sie die "/etc/apt/preferences
"-Datei wie folgt
ein:
Package: * Pin: release a=testing Pin-Priority: 1010
Führen Sie "apt-get update; apt-get dist-upgrade
" aus, um
ein Downgrade aller Pakete im System zu erzwingen.
Entfernen Sie diese spezielle
"/etc/apt/preferences
"-Datei nach dem Downgrade.
Tipp | |
---|---|
Es ist eine gute Idee, so viele Pakete wie möglich zu löschen (nicht vollständig inklusive der Konfigurationsdateien entfernen!), um die Wahrscheinlichkeit von Abhängigkeitsproblemen zu minimieren. Sie müssen bei einem solchen Downgrade unter Umständen einige Pakete von Hand entfernen oder installieren. Linux-Kernel, Bootloader, udev, PAM, APT und Netzwerk-bezogene Pakete sowie deren Konfigurationsdateien erfordern besondere Aufmerksamkeit. |
Wenn Sie ein Programm aus den Quellen übersetzen möchten, um das
entsprechende Debian-Paket zu ersetzen, ist es das beste, ein echtes lokal
gebautes Paket nach Debian-Art zu erstellen (*.deb
) und
dafür ein privates Archiv zu nutzen.
Haben Sie sich jedoch entschieden, ein Programm aus den Quellen zu
kompilieren und es stattdessen in "/usr/local
" zu
installieren, können Sie möglicherweise equivs
als letzte
Rettung einsetzen, um die fehlenden Paketabhängigkeiten zu erfüllen:
Package: equivs Priority: optional Section: admin Description: Circumventing Debian package dependencies This package provides a tool to create trivial Debian packages. Typically these packages contain only dependency information, but they can also include normal installed files like other packages do. . One use for this is to create a metapackage: a package whose sole purpose is to declare dependencies and conflicts on other packages so that these will be automatically installed, upgraded, or removed. . Another use is to circumvent dependency checking: by letting dpkg think a particular package name and version is installed when it isn't, you can work around bugs in other packages' dependencies. (Please do still file such bugs, though.)
Achtung | |
---|---|
There is no gurantee for the procedure descried here to work without extra manual efforts for system differences. |
Für partielle Upgrades eines Stable
-Systems ist das
Neubauen von Paketen innerhalb ihrer Umgebung unter Verwendung der
Quellpakete sinnvoll. Sie vermeiden so riesige Upgrades aufgrund von
Paketabhängigkeiten.
Fügen Sie folgende Einträge zur "/etc/apt/sources.list
"
des Stable
-Systems hinzu:
deb-src http://deb.debian.org/debian unstable main contrib non-free
Installieren Sie für das Kompilieren erforderliche Pakete und laden Sie das Quellpaket wie folgt herunter:
# apt-get update # apt-get dist-upgrade # apt-get install fakeroot devscripts build-essential # apt-get build-dep foo $ apt-get source foo $ cd foo*
Aktualisieren Sie einige Pakete aus der Werkzeugkette wie
z.B. dpkg
und debhelper
aus
Paketquellen für zurück-portierte Pakete, falls diese für die Rückportierung
erforderlich sind.
Führen Sie folgendes aus:
$ dch -i
Erhöhen Sie die Paketversion, z.B. indem Sie ein "+bp1
"
in "debian/changelog
" angehängen.
Bauen Sie die Pakete und installieren Sie sie wie folgt im System:
$ debuild $ cd .. # debi foo*.changes
Obwohl das Spiegeln von vollständigen Sektionen des Debian-Archivs
Plattenplatz und Netzwerkbandbreite verschwendet, ist es der Einsatz eines
lokalen Proxy-Servers für APT wert in Erwägung gezogen zu werden, wenn Sie
viele Systeme im LAN (Netzwerk)
administrieren. APT kann konfiguriert werden, einen generischen
Web-(http-)Proxy-Server wie squid
(siehe auch Abschnitt 6.5, „Weitere Netzwerkanwendungs-Server“) zu verwenden, wie in
apt.conf
(5) und
"/usr/share/doc/apt/examples/configure-index.gz
"
beschrieben. Sie können die Umgebungsvariable
"$http_proxy
" nutzen, um die Proxy-Server-Einstellungen
aus der "/etc/apt/apt.conf
"-Datei zu überschreiben.
Es gibt Proxy-Hilfsprogramme, die für das Debian-Archiv spezialisiert sind. Sie sollten die Fehlerdatenbank (BTS) überprüfen, bevor Sie sie verwenden.
Tabelle 2.19. Liste von Proxy-Hilfsprogrammen speziell für das Debian-Archiv
Paket | Popcon | Größe | Beschreibung |
---|---|---|---|
approx
|
V:0, I:0 | 7124 | zwischenspeichernder Proxy-Server für Debian-Archiv-Dateien (kompiliertes OCaml-Programm) |
apt-cacher
|
V:0, I:0 | 266 | zwischenspeichernder Proxy-Server für Debian-Paket- und Quell-Dateien (Perl-Programm) |
apt-cacher-ng
|
V:4, I:4 | 1816 | zwischenspeichernder Proxy für die Verteilung von Software-Paketen (kompiliertes C++-Programm) |
Achtung | |
---|---|
Sollte Debian einmal seine Archivstruktur umorganisieren, benötigen diese spezialisierten Proxy-Hilfsprogramme eventuell eine Code-Änderung durch den Paketbetreuer und könnten eine Zeit lang nicht funktionsfähig sein. Generische Web-(http-)Proxy-Server sind andererseits robuster und können einfacher mit solchen Änderungen umgehen. |
Folgende Dokumentation bietet sich an, um mehr über das Paketmanagement zu lernen.
Primäre Dokumentation zum Paketmanagement:
aptitude
(8), dpkg
(1),
tasksel
(8), apt
(8),
apt-get
(8), apt-config
(8),
apt-secure
(8), sources.list
(5),
apt.conf
(5) und apt_preferences
(5);
"/usr/share/doc/apt-doc/guide.html/index.html
" und
"/usr/share/doc/apt-doc/offline.html/index.html
" aus dem
apt-doc
-Paket;
"/usr/share/doc/aptitude/html/en/index.html
" aus dem
aptitude-doc-en
-Paket.
Offizielle und detaillierte Dokumentation zum Debian-Archiv:
Anleitung zum Bau eines Debian-Pakets für Debian-Benutzer: