APT/Repositories

Aus Foxwiki
Version vom 8. September 2024, 10:25 Uhr von Dirkwagner (Diskussion | Beiträge) (Textersetzung - „= Umgebungsvariablen =“ durch „= Umgebung =“)

topic - Kurzbeschreibung

Beschreibung

Installation

Syntax

Optionen

Parameter

Umgebung

Rückgabewert

Anwendungen

Fehlerbehebung

Konfiguration

Dateien

Sicherheit

Siehe auch

Dokumentation

RFC

Man-Pages

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

  1. Schlüssel als Textdatei abspeichern
  2. 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-Pages

Intern

Weblinks

  1. https://wiki.debian.org/DebianRepository/Format
  2. https://wiki.debian.org/DebianRepository
  3. https://wiki.debian.org/SourcesList
  4. https://debiananwenderhandbuch.de/debianrepositories.html
  5. https://debgen.simplylinux.ch/

Kontrollfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5


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.

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.

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.