Ubuntu'da "Yönetim dizini (/var/lib/dpkg/) kilitlenemiyor" sorununu düzeltin


Ubuntu Linux'ta veya Linux Mint gibi türevlerinde (aslında ana işletim sistemim olarak kullanıyorum) apt-get komutunu veya nispeten yeni APT paket yönetim aracını kullanırken günlük iş yaparken), şu hatayla karşılaşmış olabilirsiniz: "yönetim dizinini kilitleyemiyor (/var/lib/dpkg/) onu kullanan başka bir işlem " komut satırı.

Bu hata, özellikle hatanın nedenini tam olarak bilmeyen yeni Linux (Ubuntu) kullanıcıları için çok can sıkıcı olabilir.

Aşağıda Ubuntu 16.10'daki kilit dosyası hatasını gösteren bir örnek verilmiştir:

tecmint@TecMint:~$ sudo apt install neofetch
[sudo] password for tecmint:
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg), is another process using it?

Aşağıdaki çıktı aynı hatanın başka bir olası örneğidir:

E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/ 
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) 
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

Gelecekte karşılaşmanız durumunda yukarıdaki hatayı nasıl çözebilirsiniz? Bu hata(lar)la başa çıkmanın birkaç yolu vardır, ancak bu kılavuzda, bunu çözmenin en kolay ve muhtemelen en etkili iki yolunu inceleyeceğiz.

1. Tüm apt-get veya apt Süreçlerini Bul ve Öldür

Adı apt kelimesinden oluşan tüm işlemlerin bir listesini oluşturmak için aşağıdaki komutu çalıştırın; tüm apt veya apt-get<'i içeren bir liste elde edeceksiniz., ps ve grep komutlarını bir ardışık düzen ile birlikte kullanarak işler.

ps -A | grep apt

Yukarıdaki komutun çıktısında görebileceğiniz her apt-get veya apt işlemi için, aşağıdaki komutu kullanarak her işlemi sonlandırın.

İşlem Kimliği (PID), yukarıdaki ekran görüntüsündeki ilk sütunda bulunur.

sudo kill -9 processnumber
OR
sudo kill -SIGKILL processnumber

Örneğin, 9'un SIGKILL sinyalinin sinyal numarası olduğu aşağıdaki komutta, ilk apt sürecini sonlandıracaktır:

sudo kill -9 13431
OR
sudo kill -SIGKILL 13431

2. Kilit Dosyalarını silin

Kilit dosyası, Linux sisteminizdeki başka dosyalara veya bazı verilere erişimi engeller; bu kavram Windows'ta ve diğer işletim sistemlerinde de mevcuttur.

Bir apt-get veya apt komutunu çalıştırdığınızda, /var/lib/apt/lists/ dizinlerinden herhangi birinin altında bir kilit dosyası oluşturulur. Strong>, /var/lib/dpkg/ ve /var/cache/apt/archives/.

Bu, halihazırda çalışmakta olan apt-get veya apt işleminin bir kullanıcı veya kullanıcı tarafından kullanılan dosyalarla çalışması gereken diğer sistem işlemleri tarafından kesintiye uğramasının önlenmesine yardımcı olur. apt-get veya apt. İşlemin yürütülmesi tamamlandığında kilit dosyası silinir.

Önemli: Yukarıdaki iki dizinde gözle görülür bir apt-get veya apt işlemi çalışmıyorken hala bir kilit çıkıyorsa, bu, işlemin bir nedenden dolayı bekletildiği anlamına gelebilir veya diğeri, bu nedenle hatayı temizlemek için kilit dosyalarını silmeniz gerekir.

/var/lib/dpkg/ dizinindeki kilit dosyasını kaldırmak için öncelikle aşağıdaki komutu çalıştırın:

sudo rm /var/lib/dpkg/lock

Daha sonra paket(ler)i şu şekilde yeniden yapılandırmaya zorlayın:

sudo dpkg --configure -a

Alternatif olarak, /var/lib/apt/lists/ ve önbellek dizinindeki kilit dosyalarını aşağıdaki gibi silin:

sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock

Daha sonra paket kaynakları listenizi aşağıdaki şekilde güncelleyin:

sudo apt update
OR
sudo apt-get update

Sonuç olarak, Ubuntu (ve türevleri) kullanıcılarının apt-get veya apt'i çalıştırırken karşılaştığı ortak bir sorunla başa çıkmak için iki önemli yöntemi inceledik. yetenek komutları.

Bu yaygın hatayla başa çıkmak için paylaşabileceğiniz başka güvenilir yöntemleriniz var mı? O halde aşağıdaki geri bildirim formunu kullanarak bizimle iletişime geçin.

Buna ek olarak, çalışan süreçleri nasıl bulacağınızı ve sonlandıracağınızı öğrenmek ve Linux'ta bir süreci sonlandırmak için kill, pkill ve killall komutlarını içeren basit bir kılavuzu okumak da isteyebilirsiniz.