Benutzer-Werkzeuge

Webseiten-Werkzeuge


sammlung:repository_konfiguration

Repository-Konfiguration

Repositories sind zentrale Paketquellen, aus denen Software-Pakete heruntergeladen und installiert werden können. Jede Distribution verwendet eigene Konfigurationsdateien und -methoden.

Debian/Ubuntu

Konfigurationsdateien

/etc/apt/sources.list              # Hauptkonfigurationsdatei
/etc/apt/sources.list.d/           # Zusätzliche Repository-Dateien (*.list)
/etc/apt/sources.list.d/*.sources  # Neue DEB822-Format-Dateien

Repository-Syntax (klassisch)

deb [optionen] http://repo.url/ubuntu focal main restricted
deb-src http://repo.url/ubuntu focal main restricted

# Format:
# deb [optionen] URL Distribution Komponenten
# deb     = Binärpakete
# deb-src = Quellpakete

Komponenten

  • main - Offiziell unterstützte Open-Source-Software
  • restricted - Proprietäre Treiber
  • universe - Community-gepflegte Open-Source-Software
  • multiverse - Software mit Copyright-/rechtlichen Einschränkungen

Repository-Optionen

# Mit Architektur-Einschränkung
deb [arch=amd64,i386] http://repo.url/ubuntu focal main

# Mit signed-by (GPG-Schlüssel)
deb [signed-by=/usr/share/keyrings/repo.gpg] http://repo.url/ubuntu focal main

# Mehrere Optionen kombinieren
deb [arch=amd64 signed-by=/usr/share/keyrings/repo.gpg] http://repo.url/ubuntu focal main

Praktische Beispiele

# Repository hinzufügen
echo "deb http://repo.url/ubuntu focal main" | sudo tee /etc/apt/sources.list.d/custom.list

# Mit GPG-Schlüssel
wget -qO- https://repo.url/KEY.gpg | sudo gpg --dearmor -o /usr/share/keyrings/repo.gpg
echo "deb [signed-by=/usr/share/keyrings/repo.gpg] http://repo.url/ubuntu focal main" | \
  sudo tee /etc/apt/sources.list.d/custom.list

# PPA hinzufügen (Ubuntu)
sudo add-apt-repository ppa:user/ppa-name
sudo add-apt-repository --remove ppa:user/ppa-name  # PPA entfernen

# Nach Änderungen aktualisieren
sudo apt update

DEB822-Format (modern)

# /etc/apt/sources.list.d/custom.sources
Types: deb deb-src
URIs: http://repo.url/ubuntu
Suites: focal
Components: main restricted universe
Signed-By: /usr/share/keyrings/repo.gpg
Architectures: amd64 i386

Red Hat Enterprise Linux / CentOS / Fedora

Konfigurationsdateien

/etc/yum.repos.d/          # Repository-Konfigurationen (*.repo)
/etc/dnf/dnf.conf          # DNF-Hauptkonfiguration
/etc/yum.conf              # YUM-Hauptkonfiguration (ältere Systeme)

Repository-Datei-Format

# /etc/yum.repos.d/custom.repo
[repository-id]
name=Repository Name
baseurl=http://repo.url/centos/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.url/RPM-GPG-KEY

# Oder mit mirrorlist
[repository-id]
name=Repository Name
mirrorlist=http://mirrorlist.url/?repo=centos-$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Repository-Optionen

  • enabled - 1 (aktiviert) oder 0 (deaktiviert)
  • gpgcheck - 1 (GPG-Prüfung aktiv) oder 0 (deaktiviert)
  • gpgkey - Pfad oder URL zum GPG-Schlüssel
  • priority - Priorität (niedrigere Zahl = höhere Priorität)
  • includepkgs - Nur bestimmte Pakete einbeziehen
  • exclude - Bestimmte Pakete ausschließen

Praktische Beispiele

# Repository hinzufügen (DNF)
sudo dnf config-manager --add-repo https://repo.url/repo.repo

# Repository aktivieren/deaktivieren
sudo dnf config-manager --set-enabled repo-id
sudo dnf config-manager --set-disabled repo-id

# GPG-Schlüssel importieren
sudo rpm --import https://repo.url/RPM-GPG-KEY

# Repository manuell erstellen
sudo tee /etc/yum.repos.d/custom.repo <<EOF
[custom]
name=Custom Repository
baseurl=http://repo.url/\$releasever/\$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.url/RPM-GPG-KEY
EOF

# Repository-Liste anzeigen
dnf repolist
dnf repolist all

# Metadaten neu laden
sudo dnf clean all
sudo dnf makecache

EPEL Repository (Extra Packages for Enterprise Linux)

# RHEL/CentOS 8/9
sudo dnf install epel-release

# RHEL/CentOS 7
sudo yum install epel-release

# Manuell hinzufügen (RHEL 9)
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

openSUSE / SUSE Linux Enterprise

Konfigurationsdateien

/etc/zypp/repos.d/         # Repository-Konfigurationen (*.repo)
/etc/zypp/zypp.conf        # Zypper-Hauptkonfiguration

Repository-Datei-Format

# /etc/zypp/repos.d/custom.repo
[custom-repo]
name=Custom Repository
enabled=1
autorefresh=1
baseurl=http://repo.url/opensuse/
type=rpm-md
gpgcheck=1
gpgkey=http://repo.url/repodata/repomd.xml.key

Praktische Beispiele

# Repository hinzufügen
sudo zypper addrepo http://repo.url/opensuse/ custom-repo
sudo zypper addrepo -f http://repo.url/opensuse/ custom-repo  # Mit Auto-Refresh

# Repository mit GPG-Schlüssel
sudo zypper addrepo -f -G http://repo.url/opensuse/ custom-repo

# Repository entfernen
sudo zypper removerepo custom-repo

# Repository aktivieren/deaktivieren
sudo zypper modifyrepo --enable custom-repo
sudo zypper modifyrepo --disable custom-repo

# Auto-Refresh aktivieren
sudo zypper modifyrepo --refresh custom-repo

# Priorität setzen (niedrigere Zahl = höhere Priorität)
sudo zypper modifyrepo --priority 50 custom-repo

# Repositories anzeigen
zypper repos
zypper lr              # Kurzform
zypper lr -u           # Mit URLs

# Metadaten aktualisieren
sudo zypper refresh
sudo zypper ref

Offizielle openSUSE Repositories

# OSS (Open Source Software)
sudo zypper addrepo -f http://download.opensuse.org/distribution/leap/15.5/repo/oss/ repo-oss

# Non-OSS (proprietäre Software)
sudo zypper addrepo -f http://download.opensuse.org/distribution/leap/15.5/repo/non-oss/ repo-non-oss

# Update-Repository
sudo zypper addrepo -f http://download.opensuse.org/update/leap/15.5/oss/ repo-update

Arch Linux

Konfigurationsdateien

/etc/pacman.conf           # Hauptkonfiguration mit Repository-Definitionen
/etc/pacman.d/mirrorlist   # Mirror-Liste

Repository-Konfiguration

# /etc/pacman.conf

# Offizielle Repositories
[core]
Include = /etc/pacman.d/mirrorlist

[extra]
Include = /etc/pacman.d/mirrorlist

[multilib]  # 32-Bit-Pakete auf 64-Bit-System
Include = /etc/pacman.d/mirrorlist

# Benutzerdefiniertes Repository
[custom]
SigLevel = Optional TrustAll
Server = http://repo.url/arch/$arch

# Lokales Repository
[local]
SigLevel = Optional TrustAll
Server = file:///home/repo/arch

Praktische Beispiele

# Multilib-Repository aktivieren (32-Bit auf 64-Bit)
sudo sed -i '/\[multilib\]/,/Include/s/^#//' /etc/pacman.conf

# Mirror-Liste aktualisieren mit reflector
sudo reflector --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

# Manuell Mirror hinzufügen
echo "Server = http://mirror.url/archlinux/\$repo/os/\$arch" | \
  sudo tee -a /etc/pacman.d/mirrorlist

# Paketdatenbank synchronisieren
sudo pacman -Sy
sudo pacman -Syy           # Erzwungene Synchronisation

# Cache leeren und neu synchronisieren
sudo pacman -Scc
sudo pacman -Syy

AUR (Arch User Repository)

# AUR-Helper installieren (yay als Beispiel)
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

# Mit yay verwenden
yay -S <paket>             # AUR-Paket installieren
yay -Syu                   # System und AUR aktualisieren

Mirror-Verwaltung

Debian/Ubuntu

# Auf schnellsten Mirror umschalten
sudo apt install netselect-apt
sudo netselect-apt

# Mirror in sources.list ändern
sudo sed -i 's|http://de.archive.ubuntu.com|http://mirror.url|g' /etc/apt/sources.list

Fedora/CentOS

# Fastest mirror Plugin (DNF)
sudo dnf install dnf-plugin-fastestmirror

# In /etc/dnf/dnf.conf
fastestmirror=True

openSUSE

# Nächsten Mirror automatisch wählen
sudo zypper modifyrepo --enable repo-oss
sudo zypper refresh

Arch Linux

# Reflector für automatische Mirror-Auswahl
sudo pacman -S reflector

# Beste 20 Mirrors nach Rate sortieren
sudo reflector --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

# Systemd-Timer für automatische Updates
sudo systemctl enable reflector.timer
sudo systemctl start reflector.timer

GPG-Schlüsselverwaltung

Debian/Ubuntu

# Schlüssel herunterladen und hinzufügen (alte Methode)
wget -qO - https://repo.url/KEY.gpg | sudo apt-key add -

# Moderne Methode (empfohlen)
wget -qO- https://repo.url/KEY.gpg | sudo gpg --dearmor -o /usr/share/keyrings/repo.gpg

# Schlüssel von Keyserver
sudo gpg --keyserver keyserver.ubuntu.com --recv-keys KEYID
sudo gpg --export KEYID | sudo tee /usr/share/keyrings/repo.gpg > /dev/null

# Installierte Schlüssel anzeigen
apt-key list              # Veraltet
ls /usr/share/keyrings/

RHEL/Fedora/CentOS

# GPG-Schlüssel importieren
sudo rpm --import https://repo.url/RPM-GPG-KEY
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora

# Importierte Schlüssel anzeigen
rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n'

openSUSE

# Schlüssel automatisch importieren beim Repository-Add
sudo zypper addrepo -f -G http://repo.url/opensuse/ repo

# Manuell Schlüssel importieren
sudo rpm --import https://repo.url/repodata/repomd.xml.key

Arch Linux

# Pacman-Schlüssel verwalten
sudo pacman-key --init
sudo pacman-key --populate archlinux

# Schlüssel hinzufügen
sudo pacman-key --recv-keys KEYID
sudo pacman-key --lsign-key KEYID

# Alle Schlüssel aktualisieren
sudo pacman-key --refresh-keys

Proxy-Konfiguration

Debian/Ubuntu (APT)

# /etc/apt/apt.conf.d/proxy.conf
Acquire::http::Proxy "http://proxy.server:port/";
Acquire::https::Proxy "http://proxy.server:port/";

# Mit Authentifizierung
Acquire::http::Proxy "http://user:password@proxy.server:port/";

RHEL/Fedora (DNF/YUM)

# /etc/dnf/dnf.conf oder /etc/yum.conf
proxy=http://proxy.server:port/
proxy_username=user
proxy_password=password

openSUSE (Zypper)

# /etc/sysconfig/proxy
PROXY_ENABLED="yes"
HTTP_PROXY="http://proxy.server:port/"
HTTPS_PROXY="http://proxy.server:port/"

Arch Linux (Pacman)

# Umgebungsvariablen in /etc/environment
http_proxy=http://proxy.server:port/
https_proxy=http://proxy.server:port/

Lokale Repositories erstellen

Debian/Ubuntu

# Verzeichnis erstellen
mkdir -p /var/local-repo/pool

# Pakete kopieren
cp *.deb /var/local-repo/pool/

# Repository-Index erstellen
cd /var/local-repo
dpkg-scanpackages pool/ /dev/null | gzip -9c > pool/Packages.gz

# In sources.list hinzufügen
deb [trusted=yes] file:///var/local-repo pool/

RHEL/Fedora

# createrepo installieren
sudo dnf install createrepo

# Repository erstellen
mkdir -p /var/local-repo
cp *.rpm /var/local-repo/
createrepo /var/local-repo/

# Repository-Datei erstellen
sudo tee /etc/yum.repos.d/local.repo <<EOF
[local]
name=Local Repository
baseurl=file:///var/local-repo
enabled=1
gpgcheck=0
EOF

openSUSE

# Repository-Index erstellen
sudo zypper addrepo file:///var/local-repo local
sudo createrepo /var/local-repo/
sudo zypper refresh

Troubleshooting

Häufige Probleme

# Debian/Ubuntu: GPG-Fehler
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEYID
sudo apt update

# RHEL/Fedora: Repository-Metadaten fehlerhaft
sudo dnf clean all
sudo dnf makecache

# openSUSE: Repository-Konflikte
sudo zypper refresh --force
sudo zypper clean

# Arch Linux: Paketdatenbank beschädigt
sudo rm -rf /var/lib/pacman/sync/
sudo pacman -Syy

Logs überprüfen

# Debian/Ubuntu
cat /var/log/apt/history.log
cat /var/log/apt/term.log

# RHEL/Fedora
cat /var/log/dnf.log
cat /var/log/yum.log

# openSUSE
cat /var/log/zypper.log

# Arch Linux
cat /var/log/pacman.log

Best Practices

  • Offizielle Repositories bevorzugen - Nur vertrauenswürdige Quellen nutzen
  • GPG-Prüfung aktiviert lassen - Signaturprüfung für Sicherheit
  • Repository-URLs über HTTPS - Verschlüsselte Verbindungen wenn möglich
  • Backups der Konfiguration - Vor größeren Änderungen sichern
  • Prioritäten setzen - Bei mehreren Repositories Konflikte vermeiden
  • Regelmäßige Updates - Metadaten aktuell halten
  • Nicht benötigte Repos deaktivieren - Statt zu löschen
  • Dokumentation - Änderungen dokumentieren

Siehe auch

sammlung/repository_konfiguration.txt · Zuletzt geändert: von 127.0.0.1