Perbaiki "Tidak dapat mengunci direktori administrasi (/var/lib/dpkg/)" di Ubuntu


Saat menggunakan perintah apt-get atau alat manajemen paket APT yang relatif baru di Ubuntu Linux atau turunannya seperti Linux Mint (yang sebenarnya saya gunakan sebagai sistem operasi utama saya untuk melakukan pekerjaan sehari-hari), Anda mungkin mengalami kesalahan – “tidak dapat mengunci direktori administrasi (/var/lib/dpkg/) adalah proses lain yang menggunakannya ” pada baris perintah.

Kesalahan ini bisa sangat mengganggu terutama bagi pengguna baru Linux (Ubuntu) yang mungkin tidak mengetahui secara pasti penyebab kesalahan tersebut.

Di bawah ini contoh yang menunjukkan kesalahan file kunci di Ubuntu 16.10:

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?

Output di bawah ini adalah kemungkinan contoh lain dari kesalahan yang sama:

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?

Bagaimana cara mengatasi kesalahan di atas jika Anda mengalaminya lagi di masa mendatang? Ada beberapa cara untuk mengatasi kesalahan ini, namun dalam panduan ini, kita akan membahas dua cara termudah dan mungkin paling efektif untuk mengatasinya.

1. Temukan dan Matikan semua Proses apt-get atau apt

Jalankan perintah di bawah ini untuk membuat daftar semua proses yang namanya terdiri dari kata apt, Anda akan mendapatkan daftar yang mencakup semua apt atau apt-get< memproses dengan menggunakan perintah ps dan grep bersama dengan pipeline.

ps -A | grep apt

Untuk setiap proses apt-get atau apt yang dapat Anda lihat pada output perintah di atas, matikan setiap proses menggunakan perintah di bawah ini.

Proses ID (PID) ditemukan di kolom pertama dari tangkapan layar di atas.

sudo kill -9 processnumber
OR
sudo kill -SIGKILL processnumber

Misalnya, pada perintah di bawah ini yang mana 9 adalah nomor sinyal untuk sinyal SIGKILL, akan mematikan proses apt pertama:

sudo kill -9 13431
OR
sudo kill -SIGKILL 13431

2. Hapus File kunci

File kunci hanya mencegah akses ke file lain atau beberapa data di sistem Linux Anda, konsep ini juga ada di Windows dan sistem operasi lain.

Setelah Anda menjalankan perintah apt-get atau apt, file kunci akan dibuat di salah satu direktori berikut /var/lib/apt/lists/, /var/lib/dpkg/ dan /var/cache/apt/archives/.

Hal ini membantu menghindari proses apt-get atau apt yang sudah berjalan agar tidak terganggu oleh pengguna atau proses sistem lain yang perlu bekerja dengan file yang sedang digunakan oleh apt-get atau tepat. Ketika proses selesai dijalankan, file kunci kemudian dihapus.

Penting: Jika kunci masih keluar di dua direktori di atas tanpa ada proses apt-get atau apt yang berjalan, ini mungkin berarti proses ditahan karena satu alasan atau yang lain, oleh karena itu Anda perlu menghapus file kunci untuk menghapus kesalahan.

Pertama jalankan perintah di bawah ini untuk menghapus file kunci di direktori /var/lib/dpkg/:

sudo rm /var/lib/dpkg/lock

Setelah itu paksa paket untuk mengkonfigurasi ulang seperti:

sudo dpkg --configure -a

Alternatifnya, hapus file kunci di /var/lib/apt/lists/ dan direktori cache seperti di bawah ini:

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

Selanjutnya, perbarui daftar sumber paket Anda sebagai berikut:

sudo apt update
OR
sudo apt-get update

Sebagai kesimpulan, kami telah membahas dua metode penting untuk menangani masalah umum yang dihadapi oleh pengguna Ubuntu (dan turunannya), saat menjalankan apt-get atau apt serta perintah bakat.

Apakah Anda memiliki metode lain yang dapat diandalkan untuk dibagikan untuk mengatasi kesalahan umum ini? Kemudian hubungi kami melalui formulir umpan balik di bawah.

Selain itu, Anda mungkin juga ingin mempelajari cara menemukan dan mematikan proses yang sedang berjalan dan membaca panduan sederhana untuk perintah kill, pkill, dan killall untuk menghentikan proses di Linux.