Saya mendapatkan kesalahan ini ketika mencoba menggunakan 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 memperbaikinya?
apt
package-management
dpkg
La Ode Adam Saputra
sumber
sumber
sudo lsof /var/lib/dpkg/lock
untuk menemukan proses yang memiliki file kunci (jika kosong, anggap kunci tersebut tersisa dari boot sebelumnya dan dapatsudo rm
d), kemudian pertimbangkan untuk melakukansudo kill -9 <PID>
(dapatkan <PID> darilsof
output.root <pid> <ppid> 0 15:58 ? 00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install
dijalankan oleh proses seperti , yang tampaknya menjalankan pembaruan apt setiap kali saya menyalakan mesin. Bergantung pada ukuran pembaruan (yang sering kali berhubungan dengan berapa lama sejak saya menggunakan mesin itu terakhir kali), ini dapat digunakan dari 1-10 menit untuk menyelesaikannya. Setelah itu, kunci dibebaskan untuk menginstal dan memperbarui manual. Coba:sudo ps aux|grep apt
atau `sudo ps aux | grep tanpa pengawasan.Jawaban:
Ini harus digunakan sebagai pilihan terakhir. Jika Anda menggunakan ini dengan sembarangan, Anda bisa berakhir dengan sistem yang rusak. Silakan coba jawaban lain terlebih dahulu sebelum melakukan ini.
Anda dapat menghapus file kunci dengan perintah berikut:
Anda juga mungkin perlu menghapus file kunci di direktori cache
Setelah itu, coba buka lagi Synaptic.
sumber
Saya melihat hampir semua jawaban merekomendasikan menghapus kunci. Saya tidak merekomendasikan melakukan itu sebagai langkah pertama; mungkin kalau tidak ada alternatif. Kunci ditempatkan ketika proses apt sedang berjalan, dan dihapus ketika proses selesai. Jika ada kunci tanpa proses yang jelas berjalan, ini mungkin berarti proses macet karena beberapa alasan.
Jika kamu mencoba
atau
itu akan menangkap proses yang mengandung kata
apt
, setidaknya. Jika Anda melihat suatuapt-get
proses atauaptitude
proses yang terlihat macet, Anda dapat mencobadan jika itu tidak berhasil coba
Ini harus mematikan proses dan dapat menghapus kunci. Membunuh
apt
atauaptitude
proses tidak berbahaya kecuali sebenarnya di tengah instalasi paket. Bagaimanapun, jika prosesnya macet, Anda mungkin tidak punya pilihan selain membunuhnya.Membunuh suatu
dpkg
proses secara langsung, jika ada, bukanlah ide yang baik, karena jikadpkg
aktif, mungkin memanipulasi basis data paket, dan mematikannya mungkin meninggalkan basis data paket dalam keadaan tidak konsisten; yaitu rusak.Membunuh suatu
apt-get
atauaptitude
proses secara umum jauh lebih aman.sumber
dpkg
adalah ide yang baik, karena biasanyadpkg
memanipulasi paket database secara langsung, dan ini dapat menyebabkan korupsi.dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
saat berjalansudo apt-get dist-upgrade
lagi. Menjalankan perintah kemudian menyelesaikan masalah. Saya suka Nix!killall apt-get
lakukan hal yang sama denganps
/kill
kombo Anda.sudo dkpg --configure -a
setelah membunuh proses yang benar agar semuanya kembali normal.Hapus
/var/lib/dpkg/lock
file Anda dan paksa konfigurasi ulang paket.Seharusnya bekerja setelah ini.
sumber
sudo
- jalankan perintah sebagai root,rm
- hapus file. Mungkin cobasudo rm /var/cache/apt/archives/lock
Anda akan mendapatkan pesan ini jika Anda lupa menggunakan
sudo
ketika menjalankan perintah apt.Kalau tidak, ini adalah pertanda bahwa ada orang lain yang menginstal atau menghapus perangkat lunak dan telah mengunci basis data tepat ketika melakukan tindakan. Program yang dapat melakukan ini adalah:
PENTING: hanya coba yang di bawah ini sebagai pilihan terakhir karena dapat merusak sistem Anda. Pertama-tama coba bunuh instance berjalan
apt
atauaptitude
seperti yang dijelaskan dalam jawaban Faheem .Anda dapat memaksa kunci dimatikan dengan menghapus file, tetapi tidak disarankan tanpa terlebih dahulu menutup program yang memegang kunci dengan aman , karena Anda dapat menyebabkan korupsi atau mengganggu instalasi (buruk). Perintah yang disediakan oleh João harus menutup program yang memegang kunci dan kemudian menghapus kunci tetapi tidak akan melindungi Anda dari gangguan yang dipasang:
Dan perintah yang sama dapat digunakan untuk kunci cache apt:
sumber
sudo fuser -cuk /var/cache/apt/archives/lock
langsung reboot komputer saya.apt-get
sekarang tidak dikunci.Cara yang paling mungkin untuk mencapai hal ini adalah:
sudo apt-get install whatever
dan baris perintah
apt
tumpang tindih denganupdate-manager
pemungutan suara secara otomatis.Jadi, jika Anda mencoba lagi dalam beberapa menit, itu akan memperbaikinya.
sumber
sudo apt-get install
bisa bekerja.Hanya satu program yang dapat menahan kunci. Pastikan Anda tidak menjalankan aptitude, synaptic, atau mahir. Tutup program dan jalankan lagi itu harus bekerja. Anda mungkin memiliki sinaptik terbuka, atau memiliki jendela terminal lain yang menjalankan apt-get, atau menjalankan pembaruan manajer. Periksa dan lihat apakah ada yang sedang berjalan, jika ada mereka berlari menutupnya dan coba lagi.
Coba perintah ini di terminal untuk menemukan apa yang sedang berjalan
Catatan:
Jika itu tidak mencetak apa pun, ketikkan terminal di bawah ini untuk menghapus kunci
Sekarang Anda dapat menginstal Paket apa pun.
sumber
pgrep -f 'apt|adept|dpkg'
jauh lebih pendek.pgrep -a 'apt|adept|dpkg'
ini setara lebih pendek lebih baik.Sejauh ini cara terbaik untuk membuatnya bekerja tanpa melanggar kemungkinan instalasi yang berjalan di latar belakang (seperti yang bisa terjadi dengan menghapus file kunci), adalah menghentikan layanan menggunakan apt:
Kesalahan:
Larutan:
Setelah memutakhirkan sistem, saya sarankan mengaktifkannya kembali, karena penguncian bug 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
sumber
Pertama-tama kita harus memeriksa proses apa yang membuat file kunci menggunakan
lsof
:atau dalam situasi lain di mana
/var/lib/apt/lists/lock
bermasalah:Outputnya akan mendekati sesuatu seperti:
Maka kita harus memeriksa apa yang dilakukan oleh commad, kita dapat menemukannya menggunakan
ps
,pgrep
dll; perintahnyaapt-get
jadi saya jalankan:The
-a
saklar daftar perintah penuh bagi saya, dalam kasus saya itu:kita dapat melihat bahwa itu menjalankan
update
sub-perintah, saya dapat menjalankan sesuatu seperti ini juga:yang menghasilkan:
Dalam hal ini saya akan menunggu beberapa menit untuk sumber daya dibebaskan dan jika setelah 2 atau 3 menit masalah masih ada atau perintah itu adalah sesuatu yang saya tidak pedulikan atau tidak berbahaya untuk sistem (seperti ini
apt-get update
) saya mengirimSIGTERM
ke proses:Seharusnya berhasil, Jika tidak saya akan mengirim
SIGINT
waktu ini (Ini seperti menekan CTRL+ C):Jika tidak berhasil juga, kita harus mengirim
SIGHUP
(kill -1
), dan akhirnya jika tidak ada yang berhasil saya cukup menghentikan proses:atau
Lalu saya menghapus sumber daya yang sibuk:
sumber
/var/lib/dpkg/lock
bukan/var/lib/apt/lists/lock
file dalam pertanyaan.pgrep
dan seseorangpkill
.dpkg --configure -a
mungkin diperlukan jugaKesalahan ini mungkin disebabkan oleh Pembaruan Manajer yang mencoba untuk secara otomatis memperbarui daftar paket di latar belakang, biasanya tepat setelah login Anda, sehingga mengunci direktori.
Dalam hal ini, tunggu beberapa detik saja (atau lebih, jika pembaruan terakhir Anda sudah lama) untuk menyelesaikan atau meluncurkan Pembaruan Manajer untuk memeriksa status.
sumber
ps
beberapa kali saya bisa melihatdpkg
sedang memperbarui seluruh beban barang dan saya menunggu dengan sabar untuk menyelesaikan semuanya. . Saya kemudian menjalankan Pembaruan Perangkat Lunak sampai semuanya diperbarui sebelum mencoba menginstal sesuatu yang baru.Ini akan terjadi jika Anda memiliki 'Pembaruan Manajer' yang berjalan secara paralel untuk setiap pembaruan pembaruan atau pemasangan karena proses pemasangan menempatkan Lock. Jika Anda menghadapi kesalahan yang sama tanpa menjalankan 'Update Manager', Anda harus menghapusnya
/var/lib/dgkg/lock
, yang tentunya Anda tidak dapat melakukannya secara manualbekerja dengan baik. Diambil dari: https://askubuntu.com/a/15469/68707
sumber
Jangan terlalu cepat untuk menghapus sesuatu, itu dapat benar-benar merusak sistem Anda; lebih baik menunggu sampai program yang sedang menginstal atau menghapus instalan menyelesaikan tugasnya dan setelah itu Anda akan mendapatkan akses. Jika Anda berpikir bahwa tidak ada yang menginstal atau menghapus instalan saat ini, maka cukup reboot sistem Anda dengan perintah tersebut
sudo reboot
.sumber
Jika Anda memiliki pembaruan keamanan yang diatur untuk menginstal otomatis ini akan sering terjadi. Saya benar-benar menunggu 30 detik dan itu memperbaiki masalah. Hanya membuang ini di luar sana kalau-kalau ada orang lain menghadapi masalah ini.
sumber
Dalam kasus saya, saya harus menunggu beberapa menit agar kunci dilepaskan (sepertinya
apt
digunakan untuk menahannya). Ini semua terjadi tepat setelah boot sistem.sumber
Hanya
sudo rm -f /var/lib/apt/lists/lock
dan coba lagi.apt-fast MUNGKIN bertanggung jawab untuk tidak membuka kunci dengan benar; ini kadang-kadang terjadi ketika Anda membatalkan
apt-get
ataudpkg
juga.sumber
Saya telah mengalami masalah ini beberapa kali. Bagi saya, itu hampir selalu disebabkan oleh apt-get atau GUI yang menyebutnya hang karena suatu alasan. Saya harus membunuhnya yang meninggalkan berbagai kunci di tempatnya.
Jawaban lain memunculkan poin yang sangat baik tentang memastikan tidak ada pembaruan yang sedang berjalan sebelum melakukan sesuatu yang drastis seperti menghapus file kunci. Namun, begitu Anda yakin bukan itu masalahnya, berikut ini biasanya berfungsi untuk saya. Saya mendapatkannya dengan membaca banyak jawaban untuk pertanyaan seperti ini.
Sementara sebagian besar atau semua ini disajikan dalam jawaban lain, ini menyaring perbaikan ke beberapa perintah.
Gunakan untuk membuka kunci sistem paket setelah pembaruan dari beberapa jenis crash atau dihentikan tanpa menyelesaikan dengan cara lain. Perintah-perintah ini harus dijalankan dalam urutan yang disajikan.
sumber
Saya tidak melihat jawaban ini di mana pun di atas tetapi pada Ubuntu 16.04, saya juga mengalami masalah ini. Penyebabnya adalah waktu di komputer saya diatur ke masa depan . (Ini karena saya menggunakan sistem dual boot Windows + Ubuntu dan saya kira saya telah mengacaukan waktu lokal vs waktu UTC.)
Satu hal yang aneh adalah bahwa tanggal dan waktu file yang terkunci adalah tanggal dan waktu yang tepat ketika saya menjalankan program.
Saya kemudian menggunakan "fuser" seperti yang dijelaskan dalam posting sebelumnya dan apt berfungsi, tapi saya mendapat keluhan tentang perlunya menjalankan
dpkg -a -reconfigure
. Ketika saya melakukan itu, saya mendapat kesalahan seperti:dalam file seperti '/ var / lib / dpkg / updates / 0003'.
Semua ini sangat aneh karena saya belum pernah melihatnya sebelumnya. Jadi, saya pikir ini adalah gejala dan mengubah data dan waktu saya secara manual. Saya tahu ada masalah dengan tanggal / waktu ketika saya masuk, tetapi mengabaikannya. (Sebelumnya, pengaturan itu secara otomatis melalui Internet dan NTP).
Kemudian, semua masalah di atas telah diperbaiki ... Semoga ini bisa membantu orang lain! Gejala yang paling menonjol mungkin adalah tanggal / waktu file kunci menjadi tanggal / waktu yang tepat saat Anda mencoba menjalankan perintah.
sumber
Dalam kasus saya, X mogok saat
apt-get
masih mengeluarkan kernel lama. Saya menggunakan Monitor Sistem untuk mengonfirmasi masih berjalan dan tidak macet. Semuanya baik-baik saja setelah proses selesai.sumber
Periksa Peluncur untuk melihat apakah
Software Updater
sedang berjalan. Jika demikian maksimalkan dan lihat apa yang dilakukannya. Jika masih memeriksa, maka tunggu sampai selesai. Ketika selesai, ini mungkin memberi tahu Anda bahwa perangkat lunaknya sudah mutakhir, jadi tutup aplikasinya. Jika ada pembaruan yang tersedia, lakukan pembaruan atau klik "ingatkan saya nanti". Setelah ini aplikasi ini ditutup, Anda dapat kembali menggunakanapt-get
atauapt
.Jika
Software Updater
tidak berjalan, cukup gunakan Dash untuk memintanya dan menunggu penyelesaian dan kemudian memutuskan apakah Anda ingin memperbarui atau klik "ingatkan saya nanti". Setelah ini aplikasi ini ditutup, Anda dapat kembali menggunakanapt-get
atauapt
.sumber
Dalam kasus saya, saya menerima pesan yang sama dengan tidak menyadari bahwa saya telah beralih ke pengguna root dan mencoba sudo apt-get. Begitu saya menyadari hal ini, saya hanya menjalankan apt-get, dan itu berhasil. Konyol, tetapi mungkin masih menjelaskan kesalahan untuk beberapa.
sumber
sudo
sebagai root (dan bahkan jika Anda tidak bisa, itu tidak akan menghasilkan pesan kesalahan ini). Lebih mungkin apa yang terjadi adalah bahwa proses lainnya selesai saat Anda sedang menulis perintah berikutnya.Gunakan dengan risiko Anda sendiri
sumber
dalam kasus saya, setelah:
saya mengetik
maka saya mendapatkan masalah itu Saya memperbaikinya, menjalankan perintah yang ditunjukkan kepada saya setelah dijalankansudo apt update
Perintah ini akan menunjukkan kepada Anda daftar program dalam kasus saya hanya Firefox, saya menutup Firefox, kemudian bisa menjalankan perintah lagi tanpa masalah.
sumber
Bagi orang-orang yang tertarik untuk secara proaktif mencegah bug ini dalam skrip mereka, saya menemukan bahwa flag -q on
apt upgrade -yq
menyebabkan masalah ini bagi saya. Selama proses peningkatan, saya kira itu kadang-kadang akan memberi saya peringatan (sesuatu di sepanjang memperbarui desktop, apakah saya ingin melanjutkan), dan jika peringatan ini ditekan, maka saya kira itu menyebabkan cenderung untuk tidak membuka kunci file yang dilindungi. dan itu macet.Memang, saya mengalami kesulitan mereproduksi kesalahan ini 100% dari waktu, tetapi menghilangkan opsi -q yang sepenuhnya memperbaiki masalah bagi saya .
sumber
Seperti kebanyakan orang, saya menunggu kunci dibuka. Setelah 30 menit saya menyerah dan boot dengan keras ke distribusi yang berbeda. Dari sana saya menggunakan internet untuk beberapa penelitian yang mendaratkan saya di sini.
Ternyata
unattended-upgrades.service
sedang berjalan. Saya menemukan bahwa me-reboot ke sistem yang rusak dan berjalan:memungkinkan saya membuat sistem yang rusak berfungsi kembali untuk:
Namun itu tidak memperbaiki paket yang disimpan dan situasi yang tidak mungkin dilaporkan oleh
apt
sejak awal. Tampaknya ini menyebabkanapt
penguncian saat boot di tempat pertama.sumber