Terkadang ketika menginstal sesuatu di linux berbasis debian (ubuntu, linux mint, dll) terutama melalui terminal, kita menemui permasalahan muncul pesan eror seperti ini.
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?
Dan kemudian biasanya kita tidak dapat melakukan install apapun. Sebenarnya apa penyebabnya dan bagaimana solusinya?
"could not get lock"
"unable to lock the administration directory"
Dari pesan eror tersebut dapat kita ketahui bahwa DPKG tidak dapat mengunci direktori untuk kemudian melakukan sesuatu.

"is another process using it?"
Kemudian di akhir pesan eror ada pertanyaan, apakah ada proses lain yang menggunakannya (menggunakan /var/lib/dpkg/)? Menggunakan untuk apa?

Dapat kita ketahui bahwa untuk melakukan sesuatu, DPKG harus terlebih dahulu mengunci direktori /var/lib/dpkg. Nah, jika muncul pesan tersebut, berarti ada proses instalasi lain. Seperti,
  • instalasi di jendela terminal lain yang belum selesai
  • instalasi dari aplikasi lain seperti ubuntu software center dan synaptic
  • instalasi driver sedang berjalan
  • instalasi update otomatis sedang berjalan
  • dll
Maka Solusi termudah adalah menunggu instalasi tersebut selesai.

Bagaimana jika tidak ada instalasi apapun yang sedang berjalan?

Jika begitu , maka kemungkinan terbesar adalah ada proses instalasi yang sebelumnya terhenti (terinterupsi). Mungkin karena ditutup secara paksa, atau laptop yang tiba-tiba reboot. Maka berikut adalah solusinya.

Cek proses mana yang menggunakan folder tersebut. Dengan cara mengetik perintah berikut:
$ sudo lsof /var/lib/dpkg/lock
setelah anda masukkan password (jika diminta), maka akan muncul  jawaban seperti berikut (misal),
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/tyler/.gvfs Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dpkg 2825 root 3uW REG 8,1 0 7078501 /var/lib/dpkg/lock
Perhatikan angka yang saya cetak tebal. Angka tersebut adalah nomor identitas proses lain yang sedang menggunakan direktori /var/lib/dpkg/. Maka kemudian kita akan kill proses tersebut dengan perintah berikut,
$ sudo kill -TERM nomor_proses
Contoh, saya akan kill proses tersebut dengan perintah seperti ini:
$ sudo kill -TERM 2825

Nah, setelah kita bereskan proses tersebut tinggal kita tes apakah sudah bisa melakukan instalasi dengan semestinya dengan mengupdate repositori.
$ sudo apt-get update
Jika update berjalan, maka yang muncul adalah seperti berikut
Ign http://extras.ubuntu.com precise InRelease
Ign http://ppa.launchpad.net precise InRelease
Ign http://id.archive.ubuntu.com precise InRelease
Ign http://id.archive.ubuntu.com precise-updates InRelease
Ign http://id.archive.ubuntu.com precise-backports InRelease
Ign http://security.ubuntu.com precise-security InRelease
..........................
..........................
dan seterusnya
Tetapi terkadang muncul masalah lain, seperti muncul pesan eror berikut.
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
Di dalam pesan eror tersebut, sudah jelas dikatakan bahwa proses dpkg sebelumnya terlah terinterupsi. Karena memang kita sendiri kan yang kill secara paksa. hehehe.
Maka kita tinggal menjalankan perintah sesuai petunjuk pada pesan eror tersebut,
$ sudo dpkg --configure -a
Perintah ini akan melanjutkan proses instalasi yang sebelumnya kita hentikan secara paksa.

Setelah instalasi dari dpkg sebelumnya sukses selesai, dapat kita tes kembali dengan apt get update.
$ sudo apt-get update
Semoga kali ini sudah berhasil :D
Selamat mencoba :))
 
Top