Repositories sind zentrale Paketquellen, aus denen Software-Pakete heruntergeladen und installiert werden können. Jede Distribution verwendet eigene Konfigurationsdateien und -methoden.
/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
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
# 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
# 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
# /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
/etc/yum.repos.d/ # Repository-Konfigurationen (*.repo) /etc/dnf/dnf.conf # DNF-Hauptkonfiguration /etc/yum.conf # YUM-Hauptkonfiguration (ältere Systeme)
# /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 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
# 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
/etc/zypp/repos.d/ # Repository-Konfigurationen (*.repo) /etc/zypp/zypp.conf # Zypper-Hauptkonfiguration
# /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
# 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
# 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
/etc/pacman.conf # Hauptkonfiguration mit Repository-Definitionen /etc/pacman.d/mirrorlist # Mirror-Liste
# /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
# 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-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
# 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
# Fastest mirror Plugin (DNF) sudo dnf install dnf-plugin-fastestmirror # In /etc/dnf/dnf.conf fastestmirror=True
# Nächsten Mirror automatisch wählen sudo zypper modifyrepo --enable repo-oss sudo zypper refresh
# 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
# 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/
# 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'
# 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
# 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
# /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/";
# /etc/dnf/dnf.conf oder /etc/yum.conf proxy=http://proxy.server:port/ proxy_username=user proxy_password=password
# /etc/sysconfig/proxy PROXY_ENABLED="yes" HTTP_PROXY="http://proxy.server:port/" HTTPS_PROXY="http://proxy.server:port/"
# Umgebungsvariablen in /etc/environment http_proxy=http://proxy.server:port/ https_proxy=http://proxy.server:port/
# 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/
# 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
# Repository-Index erstellen sudo zypper addrepo file:///var/local-repo local sudo createrepo /var/local-repo/ sudo zypper refresh
# 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
# 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