HOWTO: Free Disk Space For An Apt Update
I try to limit the space available to my root partition, but sometimes that comes back to bite me in the ass. Especially if I haven’t updated in a while. The major problem with using binary package managers is that they need space for the downloaded tar.gz files AND the space to extract it. There are some tricks you can do to help free up some space for package upgrades.
- UPDATE A SUBSET. If you get a screen-full of packages that need to be updated and you don’t have the disk space to do it all at once, you can install a subset by using
sudo apt-get install [space-separated-package-list]. I usually go for at least two lines worth of packages at a time, skipping over big ones like mysql and linux kernel files.
- REMOVE THE OLD PACKAGE(S) FIRST. MySQL and the linux kernel files are quite big packages when your disk space is measured in megabytes. They’ll want well over 100MB each. A good trick is to remove the packages first. For MySQL, simply use the package names that
sudo apt-get upgradegives you. For the kernel, you need to specify:
You can find out what what kernel you currently have by typing
ls /lib/modulesat the console. Unless you’ve manually deleted the files, there will be a directory for each kernel you have installed. It’s safe to delete kernels on a running system as long as you get another working kernel installed before reboot.
- CLEAR OUT APT’S CACHE. By default, apt keeps a copy of everything you’ve upgraded and installed since the system was first installed. Clearing out the cache by using
sudo rm /var/cache/apt/archives/*and
sudo rm /var/cache/apt/archives/partial/*can clear out a good bit of disk space.
- REDUCE APT’S LIST SPACE. Apt keeps a copy of the package lists in
/var/lib/apt/lists. You can clear out some space by deleting these files using
sudo rm /var/lib/apt/lists/*, editing the
/etc/apt/sources.listfile to exclude lines with
multiverse, and then running
sudo apt-get update. You can re-enable the repositories again after the update.