Softwarequellen und Update-Strategien
Die ordnungsgemäße Konfiguration von Softwarequellen und die Festlegung einer soliden Update-Strategie sind für die Systemsicherheit und -stabilität von entscheidender Bedeutung. In diesem Artikel wird erläutert, wie Sie Softwarequellen und verschiedene Aktualisierungsstrategien in Ubuntu 26.04 konfigurieren.
Grundlagen der Softwarequelle
Ubuntu 26.04 Quellformat
Ab Ubuntu 24.04 verwendet die Quellkonfiguration APT das neue DEB822-Format, wobei sich die Konfigurationsdatei unter /etc/apt/sources.list.d/ubuntu.sources befindet:
cat /etc/apt/sources.list.d/ubuntu.sourcesTypische Inhalte:
Types: deb deb-src
URIs: http://archive.ubuntu.com/ubuntu
Suites: resolute resolute-updates resolute-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpgBeschreibungen der Quellkomponenten
| Komponente | Beschreibung |
|---|---|
main | Von Canonical offiziell unterstützte Open-Source-Software |
restricted | Proprietäre Treiber mit offizieller Unterstützung |
universe | Von der Community gepflegte Open-Source-Software |
multiverse | Software, die durch Urheberrechte oder gesetzliche Beschränkungen eingeschränkt ist |
Suite-Beschreibungen
| Suite | Beschreibung |
|---|---|
resolute | Basis-Release-Repository |
resolute-updates | Empfohlene Updates |
resolute-backports | Neuere Softwareversionen zurückportiert |
resolute-security | Sicherheitsupdates |
Wechsel zu einem Spiegel
# Back up the original configuration
sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak
# Edit the source configuration
sudo nano /etc/apt/sources.list.d/ubuntu.sourcesErsetzen Sie den URIs durch einen Spiegel:
Types: deb deb-src
URIs: https://mirrors.aliyun.com/ubuntu
Suites: resolute resolute-updates resolute-backports resolute-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpgBevorzugen Sie bei der Auswahl eines Spiegels einen, der sich geografisch und netzwerknah in Ihrer Nähe befindet. Benutzer akademischer Netzwerke bevorzugen möglicherweise Tsinghua- oder USTC-Spiegel, während Benutzer von Cloud-Servern für die besten Geschwindigkeiten die internen Spiegel ihres Anbieters verwenden sollten.
Gemeinsame Spiegel:
| Spiegel | URL |
|---|---|
| Alibaba Cloud | https://mirrors.aliyun.com/ubuntu |
| Tsinghua-Universität | https://mirrors.tuna.tsinghua.edu.cn/ubuntu |
| USTC | https://mirrors.ustc.edu.cn/ubuntu |
| Huawei Cloud | https://mirrors.huaweicloud.com/ubuntu |
| Tencent Cloud | https://mirrors.cloud.tencent.com/ubuntu |
Aktualisieren Sie nach dem Wechsel den Index:
sudo apt updatePPAs sind von Dritten persönlich gepflegte Softwarequellen, deren Pakete nicht von Canonical überprüft wurden. Das Hinzufügen nicht vertrauenswürdiger PPAs kann Sicherheitsrisiken mit sich bringen oder Abhängigkeitskonflikte verursachen. Fügen Sie nur PPAs aus bekannten Projekten hinzu und deaktivieren Sie alle PPAs, bevor Sie Ihre Systemversion aktualisieren.
PPA-Management
PPAs (Personal Package Archives) ermöglichen Drittentwicklern die Verteilung von Softwarepaketen.
Hinzufügen eines PPA
# Add a PPA
sudo add-apt-repository ppa:graphics-drivers/ppa
# Update the index after adding
sudo apt update
# Install software from the PPA; choose the version reported by ubuntu-drivers devices
sudo apt install nvidia-driver-XXXEntfernen eines PPA
# Remove a PPA
sudo add-apt-repository --remove ppa:graphics-drivers/ppa
# Update the index
sudo apt updateManuelles Hinzufügen einer Drittanbieterquelle
Am Beispiel der offiziellen Quelle Docker:
# Download the GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Add the repository (DEB822 format)
# Note: Docker's official repository may not yet publish the resolute suite.
# If apt update reports a missing Release file, temporarily fall back to noble.
sudo tee /etc/apt/sources.list.d/docker.sources << 'EOF'
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: resolute
Components: stable
Signed-By: /usr/share/keyrings/docker-archive-keyring.gpg
EOF
# Update and install
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.ioAuflisten konfigurierter Quellen
# View all source files
ls /etc/apt/sources.list.d/
# View all sources used by APT
apt policy
# Check which source a package comes from
apt policy nginxAPT Update-Verwaltung
Grundlegende Update-Befehle
# Update the package index
sudo apt update
# Upgrade installed packages
sudo apt upgrade
# Smart upgrade (may install or remove dependencies)
sudo apt full-upgrade
# View upgradable packages without actually upgrading
apt list --upgradable
# Upgrade a specific package
sudo apt install --only-upgrade nginxUpdate-Verlauf anzeigen
# View APT operation history
cat /var/log/apt/history.log
# View compressed history logs
zless /var/log/apt/history.log.1.gz
# View dpkg operation log
cat /var/log/dpkg.logPaket-Pinning
So verhindern Sie, dass ein bestimmtes Paket aktualisiert wird:
# Hold a package version
sudo apt-mark hold package-name
# Unhold a package
sudo apt-mark unhold package-name
# View all held packages
apt-mark showholdUnattended-Upgrades Automatische Updates
Installation und Aktivierung
# Install (usually pre-installed on Ubuntu 26.04)
sudo apt install unattended-upgrades
# Enable automatic updates
sudo dpkg-reconfigure -plow unattended-upgradesAutomatische Updates konfigurieren
Bearbeiten Sie die Hauptkonfigurationsdatei:
sudo nano /etc/apt/apt.conf.d/50unattended-upgradesWichtige Konfigurationsoptionen:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
// Blacklist packages from auto-updating
Unattended-Upgrade::Package-Blacklist {
"linux-image*";
"linux-headers*";
"nginx";
};
// Automatically remove no-longer-needed dependencies
Unattended-Upgrade::Remove-Unused-Dependencies "true";
// Automatically remove no-longer-needed kernels
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
// Automatically reboot if necessary
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "03:00";
// Email notifications
Unattended-Upgrade::Mail "admin@example.com";
Unattended-Upgrade::MailReport "on-change";Aktualisierungshäufigkeit konfigurieren:
sudo nano /etc/apt/apt.conf.d/20auto-upgradesAPT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";Automatische Updates testen
# Dry run (does not actually install)
sudo unattended-upgrade --dry-run --debug
# Run automatic updates immediately
sudo unattended-upgrade -v
# View automatic update logs
cat /var/log/unattended-upgrades/unattended-upgrades.logStrategieempfehlungen aktualisieren
Desktop-Benutzer
# Recommended: auto-install security updates, manually install feature updates
# /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";Überprüfen Sie regelmäßig Updates und installieren Sie sie manuell:
sudo apt update && apt list --upgradable
sudo apt upgradeServerumgebungen
Für Produktionsserver wird Folgendes empfohlen:
- Nur Sicherheitsupdates automatisch installieren; Führen Sie andere Aktualisierungen manuell durch.
- Wartungsfenster festlegen für geplante Updates.
- Testen Sie in einer Staging-Umgebung, bevor Sie es in der Produktion anwenden.
- Aktivieren Sie E-Mail-Benachrichtigungen, um über Updates auf dem Laufenden zu bleiben.
# Recommended server configuration
# /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Mail "admin@example.com";Versions-Upgrades
Upgrade auf eine neue Ubuntu-Version
# Ensure the current system is fully updated
sudo apt update && sudo apt full-upgrade
# Check if a new version is available
do-release-upgrade -c
# Perform the version upgrade
sudo do-release-upgradeAufräumen nach Updates
# Clean the downloaded deb package cache
sudo apt clean
# Remove no-longer-needed dependencies
sudo apt autoremove
# Clean residual configuration files
dpkg -l | grep '^rc' | awk '{print $2}' | xargs sudo dpkg --purge