Pertanyaan Tidak dapat mengunci direktori administrasi (/ var / lib / dpkg /) adalah proses lain yang menggunakannya?


Saya mendapatkan kesalahan ini saat mencoba menggunakannya apt-get:

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?  

Bagaimana saya bisa memperbaiki ini?


837
2017-11-30 02:12


asal


Ini juga berlaku jika Anda reboot? Mungkin beberapa thread apt tua mengunci file, Anda perlu mencari tahu dan membunuhnya atau hanya me-reboot akan melakukannya. - Bruno Pereira
Prosedur ini hampir selalu memperbaiki masalah ini, dan ketika tidak, outputnya (teks dari Terminal) terkadang berguna. Jika Anda memutuskan untuk melakukannya, Anda dapat menambahkan teks ini ke pertanyaan Anda. - Eliah Kagan
Saya akan menyarankan satu hal lagi yang mungkin Anda perhatikan ketika dihadapkan dengan masalah ini. Periksa apakah disk drive Anda sudah terpasang. Jika tidak, Anda mungkin tidak dapat memperoleh kunci karena penginstal paket tidak akan dapat mengakses sistem file. Semoga ini membantu. :) - Hari
Kamu dapat memakai sudo lsof /var/lib/dpkg/lock untuk menemukan proses yang memiliki file kunci (jika kosong, asumsikan kunci yang tersisa dari boot sebelumnya dan dapat sudo rmd), kemudian pertimbangkan untuk melakukan sudo kill -9 <PID> (Dapatkan <PID> dari lsof keluaran. - waltinator
Ini bisa menjadi tanda bahwa ada hal lain yang menginstal atau menghapus perangkat lunak dan telah mengunci database apt ketika melakukan tindakan. - Foreever


Jawaban:


Ini harus digunakan sebagai pilihan terakhir. Jika Anda menggunakan ini sembarangan Anda dapat berakhir dengan sistem rusak. Silakan coba lain  jawaban  pertama sebelum melakukan ini.

Anda dapat menghapus file kunci dengan perintah berikut:

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

Anda mungkin juga perlu menghapus file kunci dalam direktori cache

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

Setelah itu, coba buka Synaptic lagi.


719
2018-02-07 02:22



ok ... tapi kenapa terjadi ini? - Jaime Hablutzel
@jaime: mungkin apt-get (atau beberapa frontend GUI untuk itu) dihentikan saat mengeksekusi, meninggalkan apt dalam keadaan terkunci. - bouke
Saya akan menerima ini sebagai jawaban terbaik. yang benar. - Anwar
@AnwarShah tidak, ada pertimbangan lain sebelum berkeliling menghapus file sistem. - Braiam
rm / var / lib / dpkg / lock; dpkg --configure -a: - WitchCraft


Saya melihat hampir semua jawaban merekomendasikan untuk menghapus kunci. Saya tidak menyarankan melakukan itu sebagai ukuran pertama; mungkin jika tidak ada alternatif. Kunci ditempatkan ketika proses apt sedang berjalan, dan dihapus ketika proses selesai. Jika ada kunci tanpa proses yang jelas, ini mungkin berarti proses macet karena suatu alasan.

Jika kamu mencoba

ps aux | grep apt

yang akan menangkap proses yang mengandung kata apt, paling sedikit. Jika Anda melihat apt-get proses atau aptitude proses yang tampak macet, bisa Anda coba

kill processnumber

dan jika itu tidak berhasil, coba

kill -9 processnumber

Ini harus mematikan proses dan dapat melepas kunci. Membunuh apt atau aptitude Proses tidak berbahaya kecuali itu sebenarnya di tengah instalasi paket. Bagaimanapun juga, jika prosesnya macet, Anda mungkin tidak punya pilihan selain membunuhnya.

Membunuh a dpkg proses langsung, jika ada, bukanlah ide yang baik, karena jika dpkg aktif, itu mungkin memanipulasi paket database, dan membunuhnya mungkin meninggalkan database paket dalam keadaan yang tidak konsisten; yaitu rusak.

Membunuh apt-get atau aptitude Proses pada umumnya jauh lebih aman.


548
2017-07-03 09:01



@Link Saya tidak berpikir membunuh dpkg adalah ide yang bagus, karena biasanya dpkg memanipulasi paket database secara langsung, dan ini dapat menyebabkan korupsi. - Faheem Mitha
Jika membunuh dpkg dapat merusak database-nya, dpkg dirancang dengan buruk. Periode. - Jay Sullivan
bagi saya, ini menghasilkan kesalahan dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. saat berlari sudo apt-get dist-upgrade lagi. Menjalankan perintah kemudian menyelesaikan masalah. Saya suka Nix! - Wayne Phipps
Catatan, killall apt-get melakukan hal yang sama dengan Anda ps/kill combo. - Cerin
Perhatikan bahwa saya menemukan bahwa saya harus berlari sudo dkpg --configure -a setelah membunuh proses rogue apt agar semuanya kembali normal. - starbeamrainbowlabs


Hapus Anda /var/lib/dpkg/lock file dan memaksa rekonfigurasi paket.

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

Ini harus berfungsi setelah ini.


175
2018-01-29 11:27



perintah ini membantu, tetapi sekarang ketika saya mencoba menginstal lagi, dapatkan balasan ini: Tidak dapat mengunci / var / cache / apt / archives / lock - buka. Saya pikir saya harus melakukan seperti masalah pembukaan kunci sebelumnya, tapi tolong katakan padaku kata kunci yang tepat untuk perintah. Saya seorang pemula mutlak. - kern
sudo - jalankan perintah sebagai root, rm - hapus file. Mungkin mencoba sudo rm /var/cache/apt/archives/lock - kubahaha
Ini bukan saran yang bagus: membabi buta menghapus keberuntungan bisa merusak keadaan dpkg. - poolie
Mengapa tidak memperbaikinya sendiri saat ini? - Marian Klühspies
Ini berhasil bagi saya. Aws di atas tidak. - 1rq3fea324wre


Anda akan mendapatkan pesan ini jika Anda lupa menggunakannya sudo saat mengeksekusi perintah yang tepat.

Kalau tidak, ini adalah tanda bahwa sesuatu yang lain sedang menginstal atau menghapus perangkat lunak dan telah mengunci database apt ketika melakukan tindakan. Program yang dapat melakukan ini adalah:

  • Pusat Perangkat Lunak
  • Manajer Pembaruan
  • Penginstal tautan apt (Saya rasa ini sekarang melewati SC)
  • Utilitas baris perintah apt-get atau aptitude.
  • Manajer Paket Synaptic

PENTING: hanya coba yang berikut sebagai pilihan terakhir karena dapat merusak sistem Anda. Pertama coba bunuh contoh apa pun yang sedang berjalan apt atau aptitude seperti yang dijelaskan dalam Jawaban Faheem.

Anda dapat memaksa kunci mati dengan menghapus file, tetapi itu tidak disarankan tanpa terlebih dahulu menutup program yang menahan kunci dengan aman, karena Anda dapat menyebabkan korupsi atau mengganggu instalasi (buruk). Perintah yang diberikan oleh João harus menutup program yang menahan kunci dan kemudian menghapus kunci tetapi tidak akan melindungi Anda dari gangguan instalasi:

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

Dan perintah yang sama dapat digunakan untuk kunci cache apt:

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

96
2017-11-30 02:17



Saya memperbarui perangkat lunak saya ketika saya menerima pesan kesalahan. - raindrop
Ini jatuh untuk saya - umpirsky
sudo fuser -cuk /var/cache/apt/archives/lock langsung me-reboot komputer saya. apt-get sekarang tidak terkunci. - Maxime R.
Ini merusak seluruh server saya. - 에이바
Membunuh apt atau dpkg setengah jalan bukanlah ide bagus. - poolie


Cara paling mungkin untuk memukul ini adalah:

  • boot Ubuntu
  • memulai terminal
  • mengetik sudo apt-get install whatever

dan baris perintah apt tumpang tindih dengan update-manager secara otomatis melakukan polling.

Jadi jika Anda mencoba lagi dalam beberapa menit yang seharusnya memperbaikinya.


66
2017-11-30 03:08



Petunjuk bagus berbeda dengan setengah lusin balasan yang menyarankan untuk menghapus file ;-) Saya secara acak berlari dalam masalah dan kemungkinan besar ini dia! - Alex
Cukup aman, harus menunggu sedikit sebelumnya sudo apt-get install bisa bekerja. - sargas
Yah ini tidak berfungsi selalu, ya saya sudah menggunakan reboot berkali-kali. Jika tidak cocok coba ini askubuntu.com/a/315791/378845 sebelum Anda menghapus kunci - Menuka Ishan
@menuka, mengapa tidak biarkan saja selesai. - poolie
@poolie Karena ada kendala lain yang menghentikan proses dari finishing - Menuka Ishan


Hanya satu program yang dapat menahan kunci. Pastikan bahwa Anda tidak menjalankan kecerdasan, sinaptik atau mahir. Tutup program dan jalankan kembali, itu harus bekerja. Anda mungkin telah membuka sinaptik, atau memiliki jendela terminal lain yang menjalankan apt-get, atau jalankan pengelola pembaruan. Periksa dan lihat apakah ada yang berjalan, jika ada mereka menjalankannya dan mencoba lagi.

Coba perintah ini di terminal untuk menemukan apa yang sedang berjalan

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

catatan:
Jika itu tidak mencetak apa pun, ketik berikut di terminal untuk menghapus kunci

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

Sekarang Anda dapat menginstal Paket apa pun.


48
2017-11-30 04:55



Menghapus file kunci adalah, apa yang akan saya pertimbangkan, hal yang berbahaya untuk dilakukan. Jika proses lain mengunci untuk alasan yang sah - dan Anda menghapus file kunci itu dan memaksa menginstal dengan apa yang Anda lakukan sebelumnya - Anda bisa serius, dengan cara negatif, mempengaruhi sistem Anda. - Marco Ceppi♦
Itulah mengapa saya telah memberikannya pada Note.Jika semua cara di atas gagal, satu-satunya cara adalah dengan menghapus kunci. Ini tidak akan menyebabkan masalah apa pun selama proses dpkg dan apt-get / aptitude tidak berjalan. - karthick87
pgrep -f 'apt|adept|dpkg'jauh lebih pendek. - Barry
Terima kasih! ini bekerja. pgrep -f 'apt | adept | dpkg' dan kemudian sudo skill (angka), bunuh semua nomor dan kemudian instal bekerja! - creator


Sejauh ini cara terbaik untuk membuatnya bekerja tanpa melanggar latar belakang yang mungkin menjalankan instalasi (seperti yang bisa terjadi dengan menghapus file kunci), menghentikan layanan menggunakan apt:

Kesalahan:

# 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?`

Larutan:

sudo systemctl stop apt-daily.timer

Setelah meningkatkan sistem, saya sarankan untuk mengaktifkannya kembali, karena penguncian bug itu dapat diperbaiki dengan peningkatan.

sudo systemctl start apt-daily.timer 

Saya belum memverifikasi kesalahan ini diperbaiki setelah peningkatan. Saya akan menambahkan komentar baru setelah saya memverifikasi itu


34
2018-02-02 10:01



Setelah memperbarui sistem dan memulai layanan apt-daily.timer lagi, saya tidak menghadapi masalah ini sejauh ini. - Jairelee
Ini memecahkan masalah saya, terima kasih. - inkredibl
Ini mungkin merupakan metode yang paling bersih dibandingkan dengan semua jawaban pilihan yang lebih tinggi di atas. Ini bekerja dalam kasus saya dengan sempurna, terima kasih! - CygnusX1
Ini bekerja dengan sempurna pada 17.10 juga - Elder Geek
Bekerja dengan baik di 18.04. :) - Naveen Kumar V


Pertama-tama kita harus memeriksa proses apa yang dibuat menggunakan file kunci lsof:

sudo lsof /var/lib/dpkg/lock

atau dalam situasi lain di mana /var/lib/apt/lists/lock bermasalah:

sudo lsof /var/lib/apt/lists/lock

Outputnya akan mendekati sesuatu seperti:

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

Lalu kita harus memeriksa apa yang dilakukan komune, kita bisa menemukannya ps, pgrep dll; perintahnya apt-get jadi saya jalankan:

pgrep apt-get -a

Itu -a beralih daftar perintah lengkap untuk saya, dalam kasus saya itu:

 pgrep -a apt-get
 12127 apt-get update

kita dapat melihat bahwa itu berjalan update subcommand, saya bisa menjalankan sesuatu seperti ini juga:

ps -f 12127

yang menghasilkan:

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

Dalam hal ini saya akan menunggu beberapa menit agar sumber daya dibebaskan dan jika setelah 2 atau 3 menit masalah masih ada atau perintah itu adalah sesuatu yang tidak saya pedulikan atau tidak berbahaya bagi sistem (seperti ini apt-get update) Saya mengirim SIGTERM untuk proses:

sudo kill -15 12127

Itu harus melakukan pekerjaan, Jika itu tidak saya akan kirim SIGINT kali ini (Ini seperti menekan CTRL+C):

sudo kill -2 12127

Jika tidak berhasil juga, kita harus mengirim SIGHUP (kill -1), dan akhirnya jika tidak ada yang berhasil, saya cukup membunuh prosesnya:

sudo kill -9 12127

atau

sudo pkill -9 apt-get

Lalu saya menghapus sumber daya yang sibuk:

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

24
2018-04-24 07:29



Satu hal kecil adalah itu /var/lib/dpkg/lock daripada /var/lib/apt/lists/lock adalah file dalam pertanyaan itu. - Chai T. Rex
@ ChaiT.Rex terima kasih, lakukan pembaruan;) - Ravexina
Berterima kasih kepada dewa-dewa akar yang seseorang sebutkan pada akhirnya pgrep dan pkill. - Barry
Ini harus menjadi jawaban yang diterima. - Marwan Nabil