===== 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 < === 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 # 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 < === 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:paketverwaltung|Paketverwaltung Übersicht]] * [[sammlung:apt|APT]] * [[sammlung:dnf|DNF]] * [[sammlung:zypper|Zypper]] * [[sammlung:pacman|Pacman]] * [[sammlung:gpg|GPG-Schlüsselverwaltung]] ==== Weiterführende Links ==== * Debian Sources List: https://wiki.debian.org/SourcesList * Ubuntu Repositories: https://help.ubuntu.com/community/Repositories * Fedora Repositories: https://docs.fedoraproject.org/en-US/quick-docs/repositories/ * openSUSE Build Service: https://build.opensuse.org/ * Arch Linux Mirrors: https://archlinux.org/mirrors/ ---- {{tag>cli package management basics, advanced}} ----