Automatically clearing the /usr/tmp/portage directory in Gentoo Linux
April 7, 2019 1 Comment
Gentoo Linux has been in use for nine years on one of my old laptops. A couple of days ago I performed the usual rolling update of the installation, but the latest version of a large package that normally takes several hours to compile failed to compile due to a lack of disk space. Sure enough, the command ‘df -h
‘ showed me that the root partition was full. After a little digging I discovered that the directory /usr/tmp/portage/
contained a whopping 30GB of directories and files.
Portage uses the directory /usr/tmp/portage/
as a temporary store for the package source code when merging a package. The temporary files are not deleted if a merge fails, but the emerge
command should delete them on the next merge of that package. On the other hand the ebuild
command does not delete the temporary files, although normally you only use the ebuild
command if you are creating a manifest.
Anyway, in the nine years that Gentoo Linux has been installed on the laptop I had never bothered to check that /usr/tmp/portage/
was actually empty, and its contents had slowly increased. The cure to my immediate problem was simply to empty the directory:
root # rm -rf /usr/tmp/portage/*
I doubt the laptop would still be working by the time /usr/tmp/portage
would become that full again, but the situation got me thinking: What if I were to create a script to delete the temporary directories and files in /usr/tmp/portage/
at shutdown?
Gentoo Linux on this laptop uses OpenRC so I simply created a file /etc/local.d/99delete_tmp_files_from_failed_merges.stop
containing the following code:
#!/bin/bash # If root partition is more than 90% full, delete any temporary directories and # files that were left in /var/tmp/portage/ instead of being deleted. # # The root partition is on /dev/sda6 and the emerge command must not be running. # if [ `pgrep -c emerge` -eq 0 ] && [ `df | awk '/sda6/ {print $5}' | awk -F% '{print $1}'` -gt 90 ]; then rm -rf /usr/tmp/portage/* fi
I made the script executable:
root # chmod +x /etc/local.d/99delete_tmp_files_from_failed_merges.stop
Now, if the root partition is more than 90% full when I shut down the laptop, the script will automatically empty that directory. One less thing to think about.
Pingback: My system upgrade procedure for Gentoo Linux | Fitzcarraldo's Blog