Linux'ta apt hatası: "Could not get lock /var/lib/dpkg/lock-frontend"

Linux Sunucu (SSH) 71 görüntülenme Markdown

Yeni bir paket kurmaya çalışırken ekrana şuna benzer bir mesaj düşer:

E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1423 (unattended-upgr)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

Bu, başka bir programın paket sistemini şu anda kullandığını ve aynı anda iki işlem yapılamayacağını söyler. Hata mesajının sonundaki parantezde kilidi tutan programın adı yazar; çözüm de o programa göre değişir.

1. Önce kilidi kimin tuttuğuna bakın

sudo fuser -v /var/lib/dpkg/lock-frontend
ps aux | grep -E "apt|dpkg|unattended" | grep -v grep

Çoğu yeni kurulan Ubuntu sunucuda kilidi unattended-upgr yani otomatik güvenlik güncellemeleri tutar. Sunucu ilk açıldığında güncellemeleri arka planda kurar ve buna birkaç dakika harcayabilir.

2. Genelde yapılacak şey: beklemek

Güncelleme bitene kadar 5 ila 15 dakika bekleyip komutu yeniden deneyin. Bitip bitmediğini şuradan izleyebilirsiniz:

sudo tail -f /var/log/unattended-upgrades/unattended-upgrades.log

Süreç listede görünmüyorsa kilit çözülmüştür. Komutu tekrar çalıştırın.

3. Kilit takıldıysa (süreç yok ama hata sürüyor)

Bu nadiren, bir kurulum yarıda kesildiğinde (bağlantı koptu, sunucu yeniden başladı) olur. Önce hiçbir apt ya da dpkg sürecinin çalışmadığından emin olun, ardından yarım kalan kurulumu tamamlayın:

sudo dpkg --configure -a
sudo apt update

Çoğu zaman bu komut her şeyi düzeltir. Kilit dosyalarını elle silmeyi (rm /var/lib/dpkg/lock*) son çare olarak düşünün; çalışan bir güncellemenin ortasında silerseniz paket veritabanını bozabilirsiniz.

Kilidi tutan program ne zaman bitti anlarım?

Komutu yeniden denediğinizde hata yerine paket listesi güncelleniyorsa kilit çözülmüştür. İşlem bitmeden başka bir apt penceresi açıp komut vermeyin; her deneme yeni bir kilit isteği oluşturur ve bekleyen sıra uzar. Terminalde "Waiting for cache lock" yazıyorsa apt zaten sıranızı bekliyordur, bir şey yapmanıza gerek yoktur.

4. Sürekli çıkıyorsa

  • Bir betik ya da cron görevi düzenli olarak apt çalıştırıyor olabilir. Çakışan saatleri ayırın.
  • Başka bir SSH oturumunuzda unuttuğunuz bir apt açık olabilir. Orayı kapatın.
  • Otomatik güncellemeleri durdurmak istemezsiniz; kapatmak yerine bitmesini beklemek daha güvenlidir. Zamanlamaları sunucu güncelleme makalesinde anlattık.

Sık sorulanlar

Bu hata sunucumda bir sorun olduğu anlamına mı gelir?

Hayır. Çoğu zaman sunucunun kendi bakım işini yaptığını gösterir. Özellikle yeni kurulan sunucuda ilk 10 ila 20 dakika sık görülür.

Debian'da da aynı mı?

Mesaj aynıdır. Debian'da unattended-upgrades kurulu olmayabilir; o zaman kilidi tutan program başka bir apt komutudur.

sudo yazmayı unutursam ne olur?

Farklı bir hata alırsınız: Permission denied. Kilit hatasıyla karıştırmayın, komutun başına sudo ekleyin.

İlgili makaleler

Sorununuz çözülmediyse destek talebi açın. Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.