Mengatasi "E: Could not get lock /var/lib/dpkg/lock-frontend" di Ubuntu

Mengatasi Error "E: Could not get lock /var/lib/dpkg/lock-frontend" di Ubuntu Linux. Baru-baru ini saya mengalami error ketika ingin menginstall paket di Ubuntu. Error tersebut menyebabkan paket tidak bisa terinstall meski kita sudah menjalankan perintah dengan hak akses sudo atau root.


Kasus yang saya alami, error tersebut berbunyi E: Could not get lock /var/lib/dpkg/lock-frontend. Namun bisa jadi error lain yang sejenis contohnya:
  • 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?
  • 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?
Berikut beberapa cara memperbaikinya.

Menggunakan PS dan KILL
Hal tersebut biasanya dikarenakan adanya proses apt yang masih berjalan di background. Cara mengatasinya cukup mudah yakni dengan melakukan kill pada proses tersebut.

Pertama, kita cari proses apt yang berjalan dengan perintah ps.
ps aux | grep -i apt

Selanjutnya tinggal kita kill proses yang berjalan dengan perintah
kill -9 PID
contoh
kill -9 1397
Atau yang lebih simple kalian bisa jalankan perintah killall untuk menghentikan seluruh proses dari apt dan apt-get.
sudo killall apt apt-get
Sekarang tinggal kita jalankan perintah apt kembali.

Menggunakan LSOF dan KILL
Namun di beberapa kasus, tidak ada proses yang berjalan di background, namun error tetap muncul. Misalnya terjadi "insiden" secara tidak sengaja kalian meng-close terminal saat melakukan update. Tidak ada proses yang berjalan, namun lock files masih ada. Lock files sendiri digunakan untuk mencegah adanya dua proses apt yang berjalan bersamaan di sistem yang sama. 

Kita bisa memperbaikinya dengan emnghentikan proses dan menghapus lock files tersebut dan mengkonfigurasi ulang dpkg.
sudo lsof /var/lib/dpkg/lock
sudo lsof /var/lib/dpkg/lock-frontend
sudo lsof /var/lib/apt/lists/lock
Jalankan perintah diatas satu persatu. Mungkin tidak semua perintah diatas keluar outputnya, namun jika sudah ketemu PID dari proses yang menganggu tersebut bisa kita kill dengan perintah
sudo kill -9 <PID>

Sekarang kalian bisa hapus file lock yang menghambat proses instalasi. 

sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock 
sudo dpkg --configure -a
Seharusnya perintah diatas sudah bisa untuk memperbaiki masalah yang ada. Tinggal kita jalankan perintah apt kembali.


Solusi Permanen
Setelah mengatasi masalah diatas, ada kemungkinan masalah ini akan kembali terjadi di masa mendatang. Cara mengatasinya adalah dengan melakukan disable service daily update package repository yang memang diaktifkan oleh Canonical di Ubuntu 18.04 keatas. Caranya adalah dengan melakukan mask ke service systemd pada service apt-daily.service dan apt-daily-upgrade.service.
sudo systemctl mask apt-daily.service apt-daily-upgrade.service
Oke mungkin sekian tutorial kali ini. Jika ada yang kurang jelas silahkan ditanyakan.