Ada beberapa jawaban yang bagus di sini, tetapi hanya ingin menambahkan metode non-lsof untuk menemukan pengguna kunci dpkg
Langkah 1: Cari tahu siapa yang mengunci dpkg:
Opsi # 1: Menggunakan lsof (tidak selalu diinstal pada mesin)
lsof /var/lib/dpkg/lock
Opsi # 2: Menggunakan bash
for pid in $(ls /proc | egrep [0-9]+); do sudo ls -l /proc/$pid/fd 2>/dev/null | grep /var/lib/dpkg/lock && echo $pid; done
Langkah 2: Putuskan apa yang ingin Anda lakukan dengan pengguna dpkg saat ini
Jika tidak ada proses seperti itu, tidak ada yang perlu diputuskan, langsung saja ke langkah selanjutnya.
Jika tidak, Anda harus memutuskan apakah Anda ingin mematikan proses atau membiarkannya selesai dengan anggun. Jika Anda memutuskan untuk membunuhnya, gunakan saja kill <pid>
. Jika prosesnya masih belum mati, Anda dapat mempertimbangkan untuk membunuhnya menggunakan kill -9 <pid>
, tetapi itu mungkin menciptakan inkonsistensi tertentu dan saya menyarankan untuk tidak melakukannya kecuali Anda tahu apa yang Anda lakukan.
Langkah 3: Hapus file kunci
sudo rm /var/lib/dpkg/lock
Langkah 4: Perbaiki keadaan internal dpkg
sudo dpkg --configure -a