Polski

Naprawa typowych błędów APT na VPS z Ubuntu i Debianem

2 min
Hosting VPS/VDS

Prędzej czy później apt update na Twoim VPS Linux Infrawire zakończy się ścianą czerwonego tekstu: brakującym kluczem GPG, repozytorium, które już nie istnieje, albo blokadą, która nie znika. Każdy błąd ma jasną przyczynę i krótkie rozwiązanie.

Poradnik omawia najczęstsze problemy w Ubuntu 24.04 i Debianie 12, od najmniej do najbardziej inwazyjnych poprawek.

📋 Wymagania

  • VPS z Ubuntu 24.04 lub Debianem 12
  • Dostęp SSH jako root (IP i hasło roota znajdziesz w panelu klienta)
  • Podstawowa znajomość wiersza poleceń

1. Najpierw znajdź źródła

Zanim cokolwiek naprawisz, sprawdź, gdzie zdefiniowane są repozytoria:

Bash
cat /etc/os-release cat /etc/apt/sources.list ls -l /etc/apt/sources.list.d/ apt update 2>&1 | grep -E '^(Err|W:|E:)'

W Ubuntu 24.04 główne repozytoria znajdują się w /etc/apt/sources.list.d/ubuntu.sources w formacie deb822 (pliki .sources). Debian 12 nadal używa klasycznego formatu jednowierszowego w /etc/apt/sources.list, a oba formaty działają obok siebie.

Bash
# Przykład wpisu deb822 (Ubuntu 24.04) Types: deb URIs: http://archive.ubuntu.com/ubuntu/ Suites: noble noble-updates noble-backports Components: main restricted universe multiverse Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

2. Błędy blokady i przerwany dpkg

Komunikat Could not get lock /var/lib/dpkg/lock-frontend oznacza, że apt używa inny proces, najczęściej unattended-upgrades tuż po starcie. Sprawdź to, zanim cokolwiek zrobisz:

Bash
ps aux | grep -E 'apt|dpkg|unattended' | grep -v grep lsof /var/lib/dpkg/lock-frontend

Jeśli proces działa, poczekaj kilka minut. Plik blokady usuwaj tylko wtedy, gdy nic go nie trzyma (ryzykowne, jeśli się mylisz), a potem napraw przerwany stan:

Bash
rm -f /var/lib/dpkg/lock-frontend /var/lib/dpkg/lock /var/cache/apt/archives/lock dpkg --configure -a apt --fix-broken install

Komunikat dpkg was interrupted, you must manually run 'dpkg --configure -a' rozwiązuje właśnie pierwsze z tych poleceń.

3. NO_PUBKEY i brakujące klucze GPG

Błąd The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ABCD1234 oznacza, że repozytorium zewnętrzne nie ma zaufanego klucza. Nie używaj przestarzałego apt-key: umieść klucz w /etc/apt/keyrings/ i wskaż go przez signed-by.

Bash
install -d -m 0755 /etc/apt/keyrings curl -fsSL https://example.com/repo/key.gpg | gpg --dearmor -o /etc/apt/keyrings/example.gpg chmod 644 /etc/apt/keyrings/example.gpg echo 'deb [signed-by=/etc/apt/keyrings/example.gpg] https://example.com/repo stable main' > /etc/apt/sources.list.d/example.list apt update

Użyj adresu klucza z oficjalnej dokumentacji oprogramowania i w razie braku najpierw zainstaluj curl gnupg. Jeśli błąd dotyczy samego archiwum Ubuntu lub Debiana, zainstaluj ponownie pakiet z kluczami: apt install --reinstall ubuntu-keyring lub debian-archive-keyring.

4. Uszkodzone repozytoria zewnętrzne

Błąd 404 Not Found lub does not have a Release file przy PPA albo repozytorium producenta zwykle oznacza, że nie wspiera już Twojej wersji. Wyłącz je zamiast usuwać:

Bash
# Klasyczny plik .list: zmień nazwę mv /etc/apt/sources.list.d/broken.list /etc/apt/sources.list.d/broken.list.disabled # Plik .sources w deb822: dodaj tę linię wewnątrz bloku Enabled: no

Uruchom ponownie apt update. Błąd zniknie, a zainstalowane już pakiety nadal będą działać.

5. Błędy zegara: Release file not valid yet

Release file for ... is not valid yet (invalid for another 3h 12min) oznacza, że zegar systemowy spóźnia się względem znacznika czasu repozytorium. Sprawdź i zsynchronizuj ponownie:

Bash
timedatectl timedatectl set-ntp true systemctl restart systemd-timesyncd

Jeśli systemd-timesyncd nie jest zainstalowany (niektóre minimalne obrazy Debiana), użyj apt install -y chrony.

6. Wersje po zakończeniu wsparcia (EOL)

Gdy wersja kończy wsparcie, jej pakiety są przenoszone, a apt update zwraca 404 lub no longer has a Release file. Dla wersji Ubuntu innej niż LTS wskaż źródła na archiwum starych wydań:

Bash
sed -i 's|http://archive.ubuntu.com/ubuntu|http://old-releases.ubuntu.com/ubuntu|g; s|http://security.ubuntu.com/ubuntu|http://old-releases.ubuntu.com/ubuntu|g' /etc/apt/sources.list /etc/apt/sources.list.d/*.sources 2>/dev/null apt update

Dla starego Debiana użyj http://archive.debian.org/debian i usuń linię security. Traktuj system EOL jako rozwiązanie tymczasowe: nie dostaje już poprawek bezpieczeństwa, więc zaplanuj aktualizację do wspieranej wersji.

7. Weryfikacja

Bash
apt update apt upgrade --dry-run apt-get check

apt update musi zakończyć się bez linii Err i E:, a apt-get check nie powinien nic wypisać.

🛠️ Rozwiązywanie problemów

Blokada wraca przy każdej próbie: prawdopodobnie działa unattended-upgrades. Sprawdź systemctl status unattended-upgrades i poczekaj na koniec.

Conflicting values set for option Signed-By: to samo repozytorium jest zadeklarowane dwa razy z różnymi kluczami. Znajdź je przez grep -r example.com /etc/apt/ i zostaw jeden wpis.

apt --fix-broken install kończy się błędem skryptu pakietu: przeczytaj ostatnie linie błędu, a potem spróbuj dpkg --remove --force-remove-reinstreq PACKAGE i zwykłej ponownej instalacji.


✅ Menedżer pakietów znów jest zdrowy: aktualizacje i instalacje działają bez błędów!

Bądź na bieżąco z najnowszymi ofertami, zniżkami i promocjami specjalnymi.

Zobacz promocje

Używamy plików cookie

Używamy plików cookie analitycznych, aby ulepszać nasz serwis. Nie sprzedajemy danych stronom trzecim. Więcej w polityce prywatności.