19

I was running out of space on an Ubuntu server, so I did this command to save space

sudo rm -rf /var/cache/apt/archives

However now when trying to do things with apt, I get the following errors:

E: Could not open lock file /var/cache/apt/archives/lock - open (2 No such file or directory)

E: Unable to lock the download directory

And things like

Archive directory /var/cache/apt/archives/partial is missing.

Clearly I have removed some directory structure. Is there some way to do a apt-get rebuild-var-tree or similar?

Amandasaurus
  • 30,211
  • 62
  • 184
  • 246
  • 3
    not a 'proper' answer so it'll need to be a comment but next time you could try apt-get autoclean (or possibly apt-get clean) – Journeyman Geek Feb 05 '10 at 13:25

2 Answers2

36

You need two things there:

sudo mkdir -p /var/cache/apt/archives/partial
sudo touch /var/cache/apt/archives/lock
sudo chmod 640 /var/cache/apt/archives/lock

Removing this directory manually is a bad idea generally. To clean archives cleanly, use:

sudo apt-get clean
raphink
  • 11,337
  • 6
  • 36
  • 47
  • Under debian, I think we should not use sudo. simply use: mkdir -p /var/cache/apt/archives/partial touch /var/cache/apt/archives/lock chmod 640 /var/cache/apt/archives/lock –  Jun 05 '11 at 16:49
  • 4
    You should always use sudo. – bahamat Jun 05 '11 at 17:49
  • 1
    In Buster, apt can set up its own directory structure if you just create the root directory: `sudo mkdir -p /var/cache/apt`. – Matt Ryall Nov 10 '20 at 23:44
2

For fresh APT versions, full solution looks like:

sudo mkdir -m 0700 /var/cache/apt/archives/partial
sudo chown _apt:root /var/cache/apt/archives/partial
Alexey Vazhnov
  • 497
  • 5
  • 13