Ubuntu ve Debian VPS'te Yaygın APT Hatalarını Giderme

2 min
VPS/VDS Hosting

En geç bir gün VPS Linux Infrawire sunucunuzda apt update bir yığın kırmızı yazıyla başarısız olur: eksik bir GPG anahtarı, artık var olmayan bir depo ya da bir türlü gitmeyen bir kilit. Her hatanın net bir nedeni ve kısa bir çözümü vardır.

Bu rehber Ubuntu 24.04 ve Debian 12'deki en sık sorunları, en az müdahaleli düzeltmeden en kapsamlısına doğru adım adım anlatır.

📋 Ön koşullar

  • Ubuntu 24.04 veya Debian 12 çalıştıran bir VPS
  • Root SSH erişimi (IP ve root parolası müşteri alanınızda bulunur)
  • Temel komut satırı bilgisi

1. Önce kaynakları bulun

Bir şeyi düzeltmeden önce depolarınızın nerede tanımlandığını öğrenin:

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:)'

Ubuntu 24.04'te ana depolar deb822 biçiminde (.sources dosyaları) /etc/apt/sources.list.d/ubuntu.sources içinde yer alır. Debian 12 hâlâ /etc/apt/sources.list içinde klasik tek satırlık biçimi kullanır ve iki biçim birlikte çalışır.

Bash
# deb822 girdisi örneği (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. Kilit hataları ve yarım kalan dpkg

Could not get lock /var/lib/dpkg/lock-frontend mesajı apt'yi başka bir sürecin kullandığı anlamına gelir; çoğu zaman açılıştan hemen sonra çalışan unattended-upgrades olur. Harekete geçmeden önce kontrol edin:

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

Bir süreç çalışıyorsa birkaç dakika bekleyin. Kilit dosyasını yalnızca hiçbir şey onu tutmuyorsa silin (yanılırsanız risklidir), ardından yarım kalan durumu onarın:

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

dpkg was interrupted, you must manually run 'dpkg --configure -a' mesajını tam olarak bu komutların ilki çözer.

3. NO_PUBKEY ve eksik GPG anahtarları

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ABCD1234 hatası, üçüncü taraf bir deponun güvenilir anahtarının olmadığını gösterir. Kullanımdan kalkan apt-key yerine anahtarı /etc/apt/keyrings/ içine koyun ve signed-by ile belirtin.

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

Yazılımın resmî belgelerinde verilen anahtar URL'sini kullanın; eksikse önce curl gnupg kurun. Hata Ubuntu veya Debian arşivinin kendisiyle ilgiliyse anahtar paketini yeniden kurun: apt install --reinstall ubuntu-keyring veya debian-archive-keyring.

4. Bozuk üçüncü taraf depolar

Bir PPA veya üretici deposunda 404 Not Found ya da does not have a Release file hatası, genellikle deponun sürümünüzü artık desteklemediği anlamına gelir. Silmek yerine devre dışı bırakın:

Bash
# Klasik .list dosyası: yeniden adlandırın mv /etc/apt/sources.list.d/broken.list /etc/apt/sources.list.d/broken.list.disabled # deb822 .sources dosyası: bloğun içine şu satırı ekleyin Enabled: no

Ardından apt update komutunu yeniden çalıştırın. Hata kaybolur, kurulu paketler çalışmaya devam eder.

5. Saat hataları: Release file not valid yet

Release file for ... is not valid yet (invalid for another 3h 12min) mesajı, sistem saatinin deponun zaman damgasının gerisinde kaldığını gösterir. Kontrol edip yeniden eşitleyin:

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

systemd-timesyncd kurulu değilse (bazı minimal Debian imajları) bunun yerine apt install -y chrony kullanın.

6. Destek süresi biten sürümler

Bir sürümün desteği bittiğinde paketleri taşınır ve apt update 404 ya da no longer has a Release file döndürür. LTS olmayan bir Ubuntu sürümü için kaynakları eski sürümler arşivine yönlendirin:

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

Eski bir Debian için http://archive.debian.org/debian kullanın ve güvenlik satırını kaldırın. EOL bir sistemi geçici çözüm olarak görün: güvenlik düzeltmesi almaz, bu yüzden desteklenen bir sürüme yükseltmeyi planlayın.

7. Doğrulama

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

apt update hiç Err veya E: satırı olmadan bitmeli, apt-get check ise hiçbir şey yazdırmamalıdır.

🛠️ Sorun giderme

Kilit her denemede geri geliyor: büyük olasılıkla unattended-upgrades çalışıyor. systemctl status unattended-upgrades ile bakın ve bitmesini bekleyin.

Conflicting values set for option Signed-By: aynı depo farklı anahtarlarla iki kez tanımlanmış. grep -r example.com /etc/apt/ ile bulun ve tek bir girdi bırakın.

apt --fix-broken install bir paket betiğinde hata veriyor: son hata satırlarını okuyun, ardından dpkg --remove --force-remove-reinstreq PACKAGE deneyip normal yeniden kurulum yapın.


✅ Paket yöneticiniz yeniden sağlıklı: güncellemeler ve kurulumlar hatasız çalışıyor!

En yeni teklifler, indirimler ve özel promosyonlardan haberdar olun.

Promosyonları gör

Çerez kullanıyoruz

Sitemizdeki deneyiminizi iyileştirmek için analiz çerezleri kullanıyoruz. Hiçbir veri üçüncü taraflara satılmaz. Daha fazlasını şurada öğrenin: gizlilik politikası.