it-swarm-tr.com

Yönetim dizini kilitleyememek (/ var / lib / dpkg /) onu kullanan başka bir işlem midir?

apt-get kullanmaya çalışırken bu hatayı alıyorum:

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?  

Bunu nasıl düzeltebilirim?

1017

Bu son çare olarak kullanılmalıdır. Bunu dikkatsizce kullanırsanız, kırık bir sistemle sonuçlanabilir. Lütfen bunu yapmadan önce diğercevaplarilk deneyin.

Kilit dosyasını aşağıdaki komutla silebilirsiniz:

Sudo rm /var/lib/apt/lists/lock

Önbellek dizinindeki kilit dosyasını da silmeniz gerekebilir.

Sudo rm /var/cache/apt/archives/lock
Sudo rm /var/lib/dpkg/lock

Ondan sonra tekrar Synaptic'i açmayı deneyin.

866
zurdo

Hemen hemen tüm cevapların kilidi silmeyi önerdiğini görüyorum. Bunu ilk önlem olarak yapmayı tavsiye etmiyorum; belki alternatif yoksa. Kilit, uygun bir işlem çalışırken yerleştirilir ve işlem tamamlandığında kaldırılır. Sürecinde herhangi bir işlemin olmadığı bir kilit varsa, bu işlemin bir nedenden dolayı sıkışmış olduğu anlamına gelebilir.

Eğer denersen

ps aux | grep [a]pt

veya

pgrep -a apt

en azından apt kelimesini içeren süreçleri yakalayacaktır. Sıkışmış görünen bir apt-get işlemi veya aptitude işlemi görürseniz, deneyebilirsiniz

Sudo kill processnumber

ve bu işe yaramazsa deneyin

Sudo kill -9 processnumber

Bu işlemi öldürmelidir ve kilidi kaldırabilir. Bir apt veya aptitude işlemini öldürmek, aslında paket kurulumunun ortasında olmadığı sürece zararsızdır. Her durumda, süreç sıkışmışsa, muhtemelen öldürmekten başka seçeneğiniz yoktur.

dpkg işleminin doğrudan varsa öldürülmesi iyi bir fikir değildir, çünkü dpkg aktifse, muhtemelen paket veritabanını manipüle eder ve öldürmek paket veritabanını tutarsız bir durumda bırakabilir; yani bozuk.

Bir apt-get veya aptitude işleminin öldürülmesi genelde daha güvenlidir.

657
Faheem Mitha

/var/lib/dpkg/lock dosyanızı kaldırın ve paketi yeniden yapılandırmaya zorlayın.

Sudo rm /var/lib/dpkg/lock
Sudo dpkg --configure -a

Bundan sonra çalışması gerekir.

219
Bruno Pereira

Bir apt komutu yürütürken Sudo kullanmayı kullanmayı unutursanız, bu mesajı alacaksınız.

Aksi halde bu, başka bir şeyin yazılım yüklediğini veya kaldırdığını ve eylemleri gerçekleştirirken apt veritabanını kilitlediğinin bir işaretidir. Bunu yapabilen programlar:

  • Yazılım Merkezi
  • Güncelleme Yöneticisi
  • Apt link installer (Sanırım bu şimdi SC'den geçiyor)
  • Apt-get veya yetenek komut satırı yardımcı programları.
  • Sinaptik Paket Yöneticisi

ÖNEMLİ: sisteminizi çökertebileceği için aşağıdakileri yalnızca son çare olarak deneyin. Öncelikle Faheem'in cevabı . 'da açıklandığı şekilde apt veya aptitude çalışan herhangi bir örneğini öldürmeyi deneyin.

Dosyayı kaldırarak kilidi zorlayabilirsiniz, ancak önce kilidi güvenli bir şekilde tutan programı kapatmadan , yolsuzluğa veya yüklemeyi kesmek (kötü). João tarafından verilen komut, kilidi tutan programı kapatmalı ve ardından kilidi çıkarmalı ancak sizi kurulum kesintisinden korumaz:

Sudo fuser -cuk /var/lib/dpkg/lock; Sudo rm -f /var/lib/dpkg/lock   

Ve aynı komut apt önbellek kilidi için kullanılabilir:

Sudo fuser -cuk /var/cache/apt/archives/lock; Sudo rm -f /var/cache/apt/archives/lock
108

Bunu vurmanın en olası yolu şudur:

  • önyükleme Ubuntu
  • terminal başlatmak
  • Sudo apt-get install whatever yazın

ve apt komut satırı otomatik olarak yoklama update-manager ile çakışıyor.

Birkaç dakika içinde tekrar denerseniz bu sorunu çözmelidir.

96
poolie

Sadece bir program kilidi tutabilir. Yetenek, sinaptik veya usta olmadığınızdan emin olun. Programı kapatıp tekrar çalıştırması gerekir. Çalışması gerekir. Sinaptik açık olabilir veya apt-get komutunu çalıştıran açık bir terminal penceresi açabilir veya güncelleme yöneticisinin çalışmasını sağlayabilirsiniz. Onları kapatın ve tekrar deneyin.

Neyin çalıştığını bulmak için bu komutu terminalde deneyin

ps -e | grep -e apt -e adept | grep -v grep

Not:
Bu bir şey yazdırmazsa, kilidi çıkarmak için terminalde aşağıdakileri yazın

Sudo rm /var/lib/dpkg/lock    
Sudo rm /var/cache/apt/archives/lock

Şimdi herhangi bir paketi kurabilirsiniz.

52
karthick87

Şimdiye kadar kurulumunu çalıştıran olası bir arka planı (kilit dosyasını kaldırarak olduğu gibi) bozmadan çalışmanın en iyi yolu, apt kullanarak hizmeti durdurmaktır:

Hata:

# Sudo apt-get upgrade
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?`

Çözüm:

Sudo systemctl stop apt-daily.timer

Sistemi yükselttikten sonra yeniden etkinleştirmeyi öneririm, kilitleme hatası olarak yükseltme ile düzeltilebilir.

Sudo systemctl start apt-daily.timer

Güncellemeden sonra bu hatanın çözüldüğünü doğrulamadım. Bunu doğruladıktan sonra yeni bir yorum ekleyeceğim

46
Jairelee

Öncelikle, lsof kullanarak kilit dosyasını hangi işlemin oluşturduğunu kontrol etmeliyiz:

Sudo lsof /var/lib/dpkg/lock

veya /var/lib/apt/lists/lock’in problemli olduğu başka bir durumda:

Sudo lsof /var/lib/apt/lists/lock

Çıktı, aşağıdaki gibi bir şeye yakın olacaktır:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
apt-get   12127 root   4uW  REG  252,1        0    86   /var/lib/apt/lists/lock

O zaman komutanın ne yaptığını kontrol etmeliyiz, ps, pgrep etc; komut apt-get: bu yüzden çalıştırıyorum:

pgrep apt-get -a

-a anahtarı benim için tam komutları listeler, benim durumumda:

 pgrep -a apt-get
 12127 apt-get update

update alt komutunun çalıştığını görebiliriz, bunun gibi bir şey de çalıştırabilirim:

ps -f 12127

hangi üretir:

UID        PID  PPID  C STIME TTY      STAT   TIME CMD
root     12127 12126  0 09:39 pts/0    S+     0:00 apt-get update

Bu durumda, kaynağın serbest bırakılması için bir dakika beklerim ve 2 veya 3 dakika sonra sorun devam ederse veya komut umursamadığım veya sisteme zarar vermeyen bir şeyse (bunun gibi apt-get update ) Sürece bir SIGTERM gönderirim:

Sudo kill -15 12127

İşi yapmalı, Bu sefer göndermeseydim, bu sefer SIGINT gönderecektim (tuşuna basmak gibi. CTRL+C):

Sudo kill -2 12127

Eğer işe yaramadıysa, bir SIGHUP (kill -1) göndermeliyiz ve sonunda hiçbir şey işe yaramazsa süreci öldürürüm:

Sudo kill -9 12127

veya

Sudo pkill -9 apt-get

Sonra meşgul kaynakları kaldırıyorum:

Sudo rm /var/lib/apt/lists/lock
32
Ravexina

Bu hata may Güncelleme Yöneticisi'nin arka plandaki paketleri otomatik olarak yenilemeye çalışmasından kaynaklanır, genellikle giriş yaptıktan hemen sonra, dizini kilitler.

Bu durumda durumu kontrol etmesi için birkaç saniye bekleyin (ya da son güncellemeniz uzun zaman önce olsaydı), durumu kontrol etmek için Güncelleme Yöneticisi'ni başlatın.

21
Batsu

Bir şeyi çıkarmak için çok hızlı olmayın, sisteminize tamamen zarar verebilir; yerine şu anda yükleme veya kaldırma programı görevini tamamlayana kadar bekleyin ve bundan sonra erişebilirsiniz. Şu anda yükleyen veya kaldırılan bir şey olmadığını düşünüyorsanız, sisteminizi Sudo reboot komutuyla yeniden başlatmanız yeterlidir.

16
Wessi

Bu, herhangi bir güncelleme kontrolü için paralel olarak çalışan 'Güncelleme Yöneticisi'ni kullanıyorsanız ya da yükleme işlemi yerleri olarak yükleyinse Kilitleyin. Eğer 'Update Manager' olmadan aynı hatayı yaşıyorsanız, onu kesinlikle [manuel] yapamayacağınız /var/lib/dgkg/lock

Sudo fuser -cuk /var/lib/dpkg/lock
Sudo rm -f /var/lib/dpkg/lock

iyi çalışıyor. Alınan: https://askubuntu.com/a/15469/68707

16
Nabeel Ahmed

Otomatik yüklemeye ayarlanmış güvenlik güncelleştirmeleriniz varsa, bu sıkça olur. Kelimenin tam anlamıyla 30 saniye beklerim ve sorunu çözerim Bu konuda bir başkasıyla karşılaşması durumunda, sadece bunu oraya atmak.

10
Wh33t

Benim durumumda, kilidin serbest bırakılması için birkaç dakika beklemem gerekiyordu (görünüşe göre apt tutmak için kullanılır). Tüm bunlar sistem açılışından hemen sonra oldu.

5
Pavel Vlasov

Bu konuyu defalarca yaşadım. Benim için, neredeyse her zaman apt-get ya da nedense askıda kalmasını isteyen bir GUI'den kaynaklanıyordu. Yerine çeşitli kilitler bırakan onu öldürmek zorunda kaldım.

Diğer cevaplar, kilit dosyalarının kaldırılması gibi sert bir şey yapmadan önce, hiçbir güncellemenin çalışmamasını sağlamak için çok iyi puanlar getirir. Ancak, böyle olmadığından emin olduğunuzda, aşağıdaki genellikle benim için çalışır. Bunun gibi sorulara birçok cevap okuyarak anladım.

Bunların çoğu veya tümü diğer cevaplarda sunulmuş olsa da, bu düzeltmeyi birkaç komuta indirgiyor.

Sudo fuser -vki /var/lib/dpkg/lock
Sudo fuser -vki /var/cache/apt/archives/lock
Sudo fuser -vki /var/cache/debconf/config.dat
Sudo dpkg --configure -a

Bir çeşit güncellemenin ardından başka bir şekilde bitirmeden çökmeden veya sonlandırıldıktan sonra paket sisteminin kilidini açmak için kullanın. Bu komutlar verilen sıraya göre çalıştırılmalıdır.

4
Joe

Sadece Sudo rm -f /var/lib/apt/lists/lock ve tekrar deneyin.

apt-fast MAYIR düzgün kilidini açmamaktan sorumlu olabilir; Bu, bazen apt-get veya dpkg öğesini de iptal ettiğinizde olur.

4
ish

Benim durumumda, X düştü; apt-get hala eski çekirdeği kaldırıyordu. Sistem Monitörü'nün hala çalıştığını ve sıkışmadığını onaylamak için kullandım. İşlem bittiğinde her şey yolundaydı.

3
wjandrea

Bu cevabı yukarıda hiçbir yerde göremiyorum ama Ubuntu 16.04'te bu problemle de karşılaştım. Sebebi bilgisayarımdaki zaman gelecekteki olarak ayarlanmış. (Bunun nedeni bir Windows + Ubuntu çift önyükleme sistemindeyim ve sanırım UTC saati ile yerel saati karıştırdım.)

Tuhaf bir şey, kilitli dosyanın tarih ve saatinin, programı koştuğum tarih ve saatti.

Daha sonra önceki yazılarda açıklandığı gibi "kaynaştırıcı" kullandım ve apt çalıştı, ancak dpkg -a -reconfigure çalıştırması gerektiğine dair şikayetler alıyordum. Bunu yaptığımda şu gibi hatalar var:

newline in field name #padding

'/ var/lib/dpkg/updates/0003' gibi dosyalarda.

Bunların hepsi daha önce hiç görmediğim kadar garipti. Bu yüzden bunların semptom olduğunu düşündüm ve verilerimi ve zamanımı manuel olarak değiştirdim. Giriş yaptığım tarih/saatte bir sorun olduğunu biliyordum ama görmezden geliyordum. (Önceden, İnternet ve NTP üzerinden otomatik olarak ayarlıyordu).

Sonra, yukarıdaki sorunların tümü giderildi ... Umarım, bu başka birine yardım eder! En dikkat çeken belirti, muhtemelen, kilitli dosyanın tarihi/saati, komutu çalıştırmaya çalıştığınız tarih/saattir.

3
Ray

Software Updater çalışıp çalışmadığını görmek için Başlatıcı'yı kontrol edin. Eğer öyleyse, onu en üst düzeye çıkarın ve ne yaptığını bir göz atın. Hala kontrol ediyorsa, tamamlanmasını bekleyin. Tamamlandığında, yazılımın güncel olduğunu söyleyebilir, bu yüzden uygulamayı kapatın. Mevcut güncellemeler olduğunu söylüyorsa güncellemeyi yapın veya "daha sonra hatırlat" ı tıklayın. Bu uygulama kapandıktan sonra apt-get veya apt kullanmaya geri dönebilirsiniz.

Software Updater çalışmıyorsa, onu çağırmak ve tamamlama için beklemek için Dash'i kullanın ve ardından "daha sonra hatırlat" ı güncellemek mi yoksa tıklatmak mı istediğinize karar verin. Bu uygulama kapandıktan sonra apt-get veya apt kullanmaya geri dönebilirsiniz.

3
H2ONaCl
Sudo killall -9 apt && Sudo killall -9 dpkg

Kendi sorumluluğunuzdadır kullanın

2
noone

Benim durumumda aynı mesajı alıyorum, kök kullanıcıya geçtim ve deniyordum Sudo apt-get. Bunu fark ettiğimde apt-get koştum ve işe yaradı. Saçma, ama yine de bazılarına hatayı açıklayabilir.

2
BluePython

Diğer herkes gibi ben de kilidin kaldırılmasını bekledim. 30 dakika sonra pes ettim ve farklı bir dağılıma zorla başladım. Oradan interneti, beni buraya getiren bir araştırma için kullandım.

Görünüşe göre unattended-upgrades.service çalışıyor. Bunun kırık sisteme yeniden başladığını ve çalıştığını gördüm:

Sudo systemctl disable apt-daily.service
Sudo systemctl disable unattended-upgrades.service
Sudo systemctl disable apt-daily-upgrade.service
Sudo systemctl disable apt-daily-upgrade.timer
Sudo systemctl disable apt-daily.timer
Sudo shutdown -r # Note it will take a couple minutes to reboot

bozuk sistemi tekrar çalışmamı sağladı:

Sudo apt update
Sudo apt upgrade
Sudo apt install -f

Bununla birlikte, geri saklanan paketleri ve apt tarafından belirtilen imkansız durumu ilk önce düzeltmedi. Bunun, ilk bakışta apt'in kilitlenmesinde kilitlenmesine neden olduğu görülüyordu.

0
WinEunuuchs2Unix

Bu hatayı senaryolarında proaktif olarak önlemeyle ilgilenen insanlar için, apt upgrade -yq üzerindeki -q bayrağının benim için bu soruna yol açtığını gördüm. Yükseltme işlemi sırasında zaman zaman bana uyarıları (masaüstünü güncelleme satırları boyunca devam ettirmek istiyorum) devam edeceğini tahmin ediyorum ve bu uyarılar bastırılmışsa, o zaman korumalı dosyaların kilidini açmamaya neden olduğunu düşünüyorum. ve sıkışmış.

Kuşkusuz, bu hatayı% 100 oranında çoğaltmakta zorlandım, ancak -q seçeneğini ortadan kaldırmak benim için sorunu tamamen düzeltti.

0
Tyrel Kostyk