53

when I try to apt-get update I'm getting the below error,

E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/
hari
  • 531
  • 1
  • 4
  • 3

3 Answers3

73

This just means that there is an application using apt.

First try to find out which application it is by using this command in the terminal

ps aux | grep '[a]pt'

If there is a process running using apt (like apt-get or aptitude), the best thing to do is just to let it finish what its doing. Otherwise you can kill it using

kill <PID of the process (2nd column in output of ps aux)>

After making sure there is no process or killing it, you can just remove the lock using

sudo rm /var/lib/apt/lists/lock
zwets
  • 12,354
Fahad Yousuf
  • 1,224
  • 7
    drop the second pipe by adding some square brackets ps aux | grep [a]pt – Chris Montanaro Mar 28 '14 at 14:24
  • 1
    The trick by @shtuff.it requires quotes for me ps aux |grep "[t]mux" . It works by changing the ps COMMAND listing for grep into grep [t]mux, which does not match the regex [t]mux . Clever. – here Apr 17 '14 at 18:03
3

You can find out which process is using the file with fuser and optionally kill it:

sudo fuser -vik -TERM /var/lib/apt/lists/lock
rubo77
  • 32,486
  • This type of error : Unable to lock directory could occur when there is a software update happening in parallel. Not more than one sudo code can call the root directory at the same time. – DivyaMaheswaran Dec 23 '22 at 01:30
0

try this commad : sudo fuser -vik -TERM /var/lib/apt/lists/lock

The fuser command is a Linux utility designed to find which process is using a given file, directory, or socket. It also provides information about the user owning running that process, and the type of access.