APT/Repositories
topic - Beschreibung
Beschreibung
Installation
Aufruf
Optionen
Parameter
Umgebung
Rückgabewert
Anwendungen
Problembehebung
Konfiguration
Dateien
Sicherheit
Siehe auch
Dokumentation
RFC
Man-Page
Info-Pages
Links
Projekt
Weblinks
TMP
- Ein Repository enthält die URL's und Informationen zu aktuellen Programmen, welche von Debian unterstützt, getestet und für vertrauenswürdig befunden wurden.
- Das Hauptrepository befindet sich in der Datei sources.list im Ordnet /etc/apt/ .
Unterteilungen von Repositories
- Es ist möglich im Ordnet sources.list.d Dateien anzulegen mit jeweiligen URL's zu entsprechenden Repositories.
- Das ist hilfreich, um die Übersicht zu behalten.
Backport Repository
- Um ein Backport Repository anzulegen muss man zunächst in den Ordner /etc/apt/sources.list.d/ wechseln.
- Anschließend die Datei backport.list anlegen
touch backport.list
Nun muss die Datei mit Inhalt befüllt werden
cat > backport.list [Enter drücken] deb http://deb.debian.org/debian buster-backports main [Enter drücken] [CTRL+D]
Vertrauenswürdigkeit
- Normalerweise benötigt man zum Einbinden eines Repositories einen GnuPG-Key.
- Dieser stellt die Vertrauenswürdigkeit des Repositories sicher.
- Bei den Backport-Repositories ist dies jedoch nicht nötig.
GnuPG-Key bei Fremdquellen
- Deb-Pakete in Paketquellen werden mit GnuPG-Schlüsseln digital signiert.
- Passt die Signatur zu keinem der Paketverwaltung bekannten Schlüssel, so wird der Benutzer bei der Installation eines Paketes aus solch einer Quelle gewarnt (in neueren Ubuntu-Version sogar verweigert).
- Drittanbieter stellen daher oft ihren GnuPG-Key zur Verfügung, den man dann in seinen Keyring importieren muss.
Schlüssel hinzuzufügen
Synaptic
- Schlüssel als Textdatei abspeichern
- System -> Systemverwaltung -> Synaptic Paketverwaltung -> Einstellungen -> Paketquellen -> Authentifizierung importieren
Terminal
# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com FINGERPRINT_DES_SCHLÜSSELS
Beispiel
# wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg # apt-key add apt.gpg # apt-key add php.gpg
- wget lädt den gpg Key herunter (in diesem Beispiel sind es zwei Schlüssel)
- apt-key add fügt den Schlüssel zum Keyring hinzu
Debian Sources List Generator
- Sources List Generator ist ein Tool zur Erstellung einer sources.list
- Dabei kann zwischen den verschiedenen Versionen von Debian gewählt werden (Stable, Testing, Unstable).
- Es können auch Repositorys von Dritten eingebunden werden
- In diesem Fall muss man den GnuPG-Key manuell hinzufügen. Die Adresse des GnuPG-Keys wird angezeigt.
Was ist ein Repository
- Ein Debian - Repository ist ein spezieller Verzeichnissbaum, der mithilfe von APT angesprochen werden kann, um manuelle Updates ziehen zu können.
- Debian-Paketarchive werden hauptsächlich zum automatischen Speichern und Abrufen von Paketen verwendet.
- Die meisten Paketmanager verwenden libapt zum Abrufen von Paketen von externen Medien und aus dem Internet.
Aufbau eines Repository
Das Debian Repository enthällt mehrere Versionen die nach Toy Story Figuren benannt sind wie zum Beispiel
- Wheezy (Der Pinguin),
- Jessie (Cowgirl),
- Stretch,(Der Lila Oktopus) ...
Jede version hat auch noch verschiedene Aliase wie
Version | Status |
---|---|
stable | Stabil versionen |
unstable | instablile version (sie wurde noch nicht in die test fase aufgenommen) |
testet | Die version ist in einer test fase |
Des Weiteren wird jede Version in mehrere Komponenten unterteilt.
In Debian werden die in
- main
- non-free
- contrib
angegeben und geben die Lizenzierung der Software an
Der Release
Der Release enthält Pakete, die für verschiedene Architekturen wie ... amd64, i386, mips, powerpc, s390x sowie Quellen und Architekturen abhängiger Pakete.
Das Wurzelverzeichnis eines Repositorys
(Wurzelverzeichnis des Repositories) | +-dists | |-stable | |-main | | |-binary-alpha | | |-binary-arm | | |-binary-... | | +-source | |-contrib | | |-binary-alpha | | |-binary-arm | | |-binary-... | | +-source | +-non-free | |-binary-alpha | |-binary-arm | |-binary-... | +-source | |-testing | |-main | | |-binary-alpha | | |-binary-arm | | |-binary-... | | +-source | |-contrib | | |-binary-alpha | | |-binary-arm | | |-binary-... | | +-source | +-non-free | |-binary-alpha | |-binary-arm | |-binary-... | +-source | +-unstable |-main | |-binary-alpha | |-binary-arm | |-binary-... | +-source |-contrib | |-binary-alpha | |-binary-arm | |-binary-... | +-source +-non-free |-binary-alpha |-binary-arm |-binary-... +-source
Links
Dateien
Man-Page
Intern
Weblinks
- https://wiki.debian.org/DebianRepository/Format
- https://wiki.debian.org/DebianRepository
- https://wiki.debian.org/SourcesList
- https://debiananwenderhandbuch.de/debianrepositories.html
- https://debgen.simplylinux.ch/
Kontrollfragen
Testfrage 1
Testfrage 2
Testfrage 3
Testfrage 4
Testfrage 5
TMP
Unstable-Repository
Repository hinzufügen
# vi /etc/apt/sources.list deb http://deb.debian.org/debian/ unstable main contrib non-free
Pin-Priorität festlegen
Es sollen nur Unstable-Pakete installiert werden, wenn die ausdrücklich angefordert wird. /etc/apt/preferences.d/99pin-unstable
Fügen Sie Folgendes in diese Datei ein:
Package: * Pin: release a=stable Pin-Priority: 900 Package: * Pin release a=unstable Pin-Priority: 10
Unstable-Pakete wieder herunterstufen
Obwohl nur Pakete aus dem Unstable-Repository wurde, sind auch deren Abhängigkeiten installiert worden. Falls sich das als Problem herausstellt, kann dies rückgängig gemacht werden.
# vi /etc/apt/preferences.d/99pin-unstable
Ändern von stablePin-Priorität zu 1001, und unstablePin-Priorität zu -1
Package: * Pin: release a=stable Pin-Priority: 1001 Package: * Pin release a=unstable Pin-Priority: -1
Danach die Repositories aktualisieren und mit apt full-upgrade die Pakete auf die Stable-Version downgraden und solche entfernen, die nur im Unstable-Repository verfügbar sind.
sudo apt update sudo apt full-upgrade
Danach können Sie die entfernen /etc/apt/preferences.d/99pin-unstable Datei und das Debian Unstable apt-Repository von /etc/apt/sources.list.
TMP
Advanced Package Tool (APT)
Zugriff auf ältere Debian Releases
Manchmal kann es notwendig oder sinnvoll sein, ältere Debian Releases einzusetzen, beispielsweise um Debian auf älterer Hardware zu installieren.
- Eine Übersicht der verfügbaren Debian Releases ist unter http://www.debian.org/distrib/archive zu finden.
Zugriff auf tägliche Versionen von Paketen
Die jeweils aktuell in der Entwicklung befindliche Debian Version („testing“ oder „unstable“) unterliegt einem häufigen Wechsel der Paketversionen.
- Manchmal ist ein Paket nur für einen oder wenige Tage verfügbar.
- Da nun neuere Versionen nicht immer eine Verbesserung mit sich bringen, wollen Sie vielleicht auf ein älteres Paket ausweichen.
Leider sind auf den Debian Servern ältere Pakete nicht mehr verfügbar.
- Unter http://snapshot.debian.net sind alle Pakete, auch in älteren Versionen, weiterhin zugänglich.
Der Zugriff auf dieses Archiv erfolgt mit einigen besonderen Einträgen in der Datei /etc/sources.list.
- Hierbei kann zwischen dem Zugriff über ein absolutes oder ein relatives Datum gewählt werden.
deb http://snapshot.debian.net/archive/YYYY/MM/DD/debian unstable main contrib non-free deb http://snapshot.debian.net/archive/YYYY/MM/DD/debian-non-US unstable/non-US main contrib non-free deb-src http://snapshot.debian.net/archive/YYYY/MM/DD/debian unstable main contrib non-free deb-src http://snapshot.debian.net/archive/YYYY/MM/DD/debian-non-US unstable/non-US main contrib non-free
Im vorhergehenden Beispiel kann gezielt auf den tagesaktuellen Stand zugegriffen werden.
- Die Buchstabenkombination YYYY/MM/DD ist dabei durch das gewünschte Datum zu ersetzen.
deb http://snapshot.debian.net/archive/date/datestr/debian unstable main contrib non-free deb http://snapshot.debian.net/archive/date/datestr/debian-non-US unstable/non-US main contrib non-free deb-src http://snapshot.debian.net/archive/date/datestr/debian unstable main contrib non-free deb-src http://snapshot.debian.net/archive/date/datestr/debian-non-US unstable/non-US main contrib non-free
In diesem Beispiel muss datestr durch einen String ersetzt werden, der dem Kommando date als Datum bekannt ist.
- Dies kann beispielsweise yesterday, 2-days-ago oder last-week sein.