What to do when Debian's Apt archives are full
Cleaning Apt Cache
![© Danila_Krylov, 123rf.com © Danila_Krylov, 123rf.com](/var/linux_magazin/storage/images/online/features/what-to-do-when-debian-s-apt-archives-are-full/appt-cache-image/834328-1-eng-US/Appt-Cache-image_medium.png)
© Danila_Krylov, 123rf.com
Full Apt archives might be unexpected, but there are a few solutions if you encounter the issue.
After decades of using Linux, I often imagine that I know my way around. Yet, humblingly, sometimes it can still surprise me. The latest example came with the sudden discovery that I could no longer install or delete packages, although applications continued to run normally. My search for a solution eventually led me to a full apt-cache archives, the directory in which removed packages are stored in case they are wanted. But let me start with the symptoms first so others can save time by going directly to ways to fix the problem.
I had never had such a problem before, so I was unprepared when it struck. In the last eight months, however, I had been exploring and deleting packages more often than usual, unknowingly setting up the condition that would cause the problem to strike. The first sign was a Flatpak package that suddenly refused to start. There was no notification of a newer version of the package, and at first I put the problem down to some vagary of Flatpak. To my bewilderment, I could not delete the package. Stranger still, I could not delete any DEBs, either. Instead, running apt-get dist-upgrade, alone of all the basic actions attempted, produced a "no space left" message. Yet typical productivity apps such as Firefox and LibreOffice continued to run as usual.
That was a clue, had I realized it at the time, but the message had misled me to the conclusion that the system as a whole had a memory problem. Yet managing packages is far from the most intensive action on a Debian installation, and the free command showed that the installed RAM had barely been touched, let alone the swap partition. Perhaps my use of six filesystems was the problem? Either /tmp or /var, the two most changeable partitions, could have filled without me noticing? I was quite prepared to crop a few gigabytes from the /home partition, the largest of my filesystems, but GNU Parted showed plenty of space remained on all of them. Clearly, the problem was not system-wide, but what was it then? I began searching through /var for deletable files, and there I discovered Apt's cache.
Cleaning the Apt Cache
The Apt cache is a relatively little-known part of Debian package management. Located in /var/cache/apt/archives, its purpose is to store old packages in case they are needed (Figure 1). Because dpkg generally looks for the more recent version of a package or the repository pinned during the addition of a package, the cache is easy to overlook. Users have to deliberately seek it out, and for many, there may be little reason to do so. On many systems, the archives continues to work quietly in the background, unnoticed until it is full and the installation no longer has the space to perform as it should. In fact, an installation may go its entire life span with the cache ever becoming full.
This obscurity explains why, like many users, I was caught by surprise when it filled. The obscure error message does not help, either, because nothing indicates that the space that is full is a specific part of the system, rather than the whole. The problem can be avoided if you always purge discard files, rather simply remove them, but it is easy to forget. Fortunately, there are at least four ways to restore functionality and prevent the problem from happening again.
When the problem occurs, the quickest course of action may be to create free space. If the filesystem that the /var directory is on is full, you can used Parted or GParted to increase the size of the filesystem, assuming that you have enough free space on other partitions. Alternatively, you can delete files on the partition. The /var directory contains several directories whose content can often be safely deleted, such as ./lost+found, ./logs, /mail, ./spool, and .tmp (Figure 2). Generally, though, you should check what you are deleting first, and avoid deleting files in ./cache, where more permanent directories such as ./fontconfig or ./dictionaries-common are stored. Provided you are cautious, any future inconvenience is likely to be minor.
![](/var/linux_magazin/storage/images/media/linux-magazine-eng-us/images/apt-cache_f2/834322-1-eng-US/Apt-Cache_F2_reference.png)
However, to be completely safe, you can just delete the files in /var/cache/apt/archives. At worst, deleting the files in the archives will be a minor inconvenience, because Debian maintains an old stable repository that you an easily enable should you need to restore an older version of a package. Deleting the contents of the archives alone should restore the functionality of package management, although you may need to repeat the process in the future.
A more permanent solution is to regularly run Apt's housekeeping subcommands:
- apt-get purge PACKAGE: Removes all traces of a package from the system, including in the archive. This does a more thorough job of removal than apt-get autoremove.
- apt-get autoclean: Removes obsolete packages (Figure 3). However, deleted current packages are not deleted.
- apt-get clean: Removes install scripts and all packages in /var/cache/apt/archives.
The easiest way to use these subcommands is to set up a cron job to run them as part of a regular maintenance routine. Set them up to run weekly or even daily, and you are unlikely to have full archives ever again.
Yet another solution is to customize how the cache is handled in a configuration file. If /etc/apt/apt.conf.d/99local-archive does not already exist, create it. On some Debian derivatives, you may need to use /etc/apt/apt.conf instead, especially with older releases. Either way, then add one of the following three options to the file:
- APT::Periodic::MaxSize "SIZE MiB"
- APT::Periodic::MaxAge "DAYS"
- APT::Periodic::MinAge "DAYS"
Of the three, MaxAge is probably the most useful, providing the same results as a cron job for apt-get clean. Note, though, that if you set MaxSize and the archives are already larger, some files will be deleted, starting with the largest files first. Whenever the archives' contents are deleted, the list of deleted packages remains in case you need to search, but the files do not.
A Relic of Memory Shortage
Setting a size limit for the package archives probably made sense in the days when memory was scarce. Yet now, in the five years or less of the average computer's working life, users are far less likely to be concerned with conserving memory. I have to wonder why a configuration setting is not installed by default, or perhaps an archive rotation, such as logrotate for logs, which switches logs as one is full, and then deletes the first file when the last one is full. As things are, solutions are obscure when a problem suddenly appears and an unnecessary complication occurs.
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
![Learn More](https://www.linux-magazine.com/var/linux_magazin/storage/images/media/linux-magazine-eng-us/images/misc/learn-more/834592-1-eng-US/Learn-More_medium.png)
News
-
NVIDIA Released Driver for Upcoming NVIDIA 560 GPU for Linux
Not only has NVIDIA released the driver for its upcoming CPU series, it's the first release that defaults to using open-source GPU kernel modules.
-
OpenMandriva Lx 24.07 Released
If you’re into rolling release Linux distributions, OpenMandriva ROME has a new snapshot with a new kernel.
-
Kernel 6.10 Available for General Usage
Linus Torvalds has released the 6.10 kernel and it includes significant performance increases for Intel Core hybrid systems and more.
-
TUXEDO Computers Releases InfinityBook Pro 14 Gen9 Laptop
Sporting either AMD or Intel CPUs, the TUXEDO InfinityBook Pro 14 is an extremely compact, lightweight, sturdy powerhouse.
-
Google Extends Support for Linux Kernels Used for Android
Because the LTS Linux kernel releases are so important to Android, Google has decided to extend the support period beyond that offered by the kernel development team.
-
Linux Mint 22 Stable Delayed
If you're anxious about getting your hands on the stable release of Linux Mint 22, it looks as if you're going to have to wait a bit longer.
-
Nitrux 3.5.1 Available for Install
The latest version of the immutable, systemd-free distribution includes an updated kernel and NVIDIA driver.
-
Debian 12.6 Released with Plenty of Bug Fixes and Updates
The sixth update to Debian "Bookworm" is all about security mitigations and making adjustments for some "serious problems."
-
Canonical Offers 12-Year LTS for Open Source Docker Images
Canonical is expanding its LTS offering to reach beyond the DEB packages with a new distro-less Docker image.
-
Plasma Desktop 6.1 Released with Several Enhancements
If you're a fan of Plasma Desktop, you should be excited about this new point release.