After installing pacman packages (last one was ‘ungoogled-chromium’) my root partition of 20GB is completly full. Now I can’t update new packages.
My partition structure is: root (20GB) /home (470GB) swap (10GB)
How can I delete the garbage that is piling up in my root, and how to prevent it from happening again.
You can start to delete pachage caches, and see how much you gain… If not done often you can have a pile of old stuff. Check out the paccache arch wiki page for more info!
This. You might have to clear up some space before installing pacman-contrib though.
paccache -rk1
once in a while and you’re good, maybe even create a hookThanks! This realy helped me out. Saved 1GB on my root.
When I install things with pacman, is it storing files in the root partition? If so, can I specify installations to install inside the home partition?
Pacman installs binaries in the root partition because they are installed system-wide. I don’t think that pacman can install binaries for a single user (inside the home partition).
One way of achieving that would be compiling or downloading the binaries manually as a normal user and putting the
.desktop
file in.local/share/applications
. The program would then be only accessible for a single user though.
Run
ncdu
(CLI) or Filelight (GUI) on your/
and see what’s taking up all that space first, then we can figure out what to do about it.This realy helped my out. /var/cache/pacman took up over 5GB of space in my root partition. To prevent this from happening again, is there a way to move pacman cache to my home partition where I have over 300GB of space for pacman to consume?
I’m not currently using Arch so I can’t test, but from this forum post it looks like you can change the
CacheDir
variable in/etc/pacman.conf
to point anywhere you want.Yes, this did work! Thanks for your help!
Could you create a new partition out of that 300 for /var?
check to see howuch space your log files are using.
to prevent it from happening …
I would consider 20GB for / to be too small for long term desktop use.
and with just 470GB for /home, I would not split the two up.
log files only took up 800MB, but I fixed most of the problems now, by setting up pacman to put the cache in the home partition.
You are right, it was better to leave /home in the same partition, but now it is difficult to chance that. I thought it had advantages when something goes wrong with my root i can swap it out, but it only caused problems for me. Why do so many people split up there /home then? I thought it was common practice.
The main advantage of having a /home partition is that you can easily preserve it during reinstalls or during a distro hop. Reinstalls used to be more common in the past when some distros didn’t allow full distro upgrades without reinstalling. See this result which is still ranked #1 on duckduckgo
I personally use a @home btrfs subvolume which has most of the same advantages to me, and additionally allows @home and @root to share the same partition. It also allows me to use luks on everthing without bothering with lvm.
Yes, typically with two entirely separate disks, not just partitions on the same physical disk.
Sounds like you don’t clean your package cache. You can enable the paccache.timer to handle it for you on a weekly basis.
https://wiki.archlinux.org/title/pacman#Cleaning_the_package_cache
Clean up your AUR cache!
Also pacman cache.
Try uninstalling packages that are not required anymore:
sudo pacman -c
Delete some of the stuff you installed, and don’t install more stuff than you have space for?
To be clear, I have a home partition with over 300GB of free space left. Is there maybe a way to specify packages to be installed in my home partition instead of my root?
As people have mentioned there are alternate package managers that can provide this if you are concerned about resizing ur root partition and expect it to fill up again soon. Check out Guix, nix, or flatpaks (definitely the easiest to quickly setup )
https://gist.github.com/rumansaleem/083187292632f5a7cbb4beee82fa5031
A very useful gist for cleaning up arch
One quick suggestion is running
sudo pacman -Sc
. Also switch to flatpak on some apps since these are stored in /home. If these don’t work/are not suitable to your situation, give more information like mentioned on the other comments.Not sure about arch but one thing I’ve found takes up a fair amount of space is older kernel versions that remain installed
Nope, not the case in Arch
In addition to everything else, if you’re not using hibernate you could reclaim some of the swap partition, 10 GB is completely wasted.
I would delete and merge the swap space into root if they’re neighbors. You can create swap files instead of any size you want, and place them anywhere you want, like /home.
I would recommend starting with 1 GB of swap and see how much is actually being used.
To create and use a swap file:
- Use
dd if=/dev/zero of=/swapfile bs=1M count=1024
to create a file. - Use
mkswap
to format the swap file. - Use
swapon /swapfile
to activate it. - Add
/swapfile none swap sw 0 0
in/etc/fstab
to activate on every reboot.
- Use
If the other answers don’t help, you could increase your root partition’s size, with gparted. (do a backup of your important data before doing it)
I had this issue so many times, I ended up re installing and having everything on 1 partition instead of separating root and home
Not sure if arch is too different, but Linux is Linux. I suggest you get any live distro you can such as Ubuntu or fedora on a live usb stick and boot into it, once in it run gparted (or first install it if not available) and simply resize your partitions around as in to allocate some space from your home partition to your root partition. Should be a fairly simple operation especially with an easy and intuitive GUI such as gparted.
Just in case you use Docker, you should clean images and containers on disk. They usually live on the root partition and take huge amounts of space.