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?
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.
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 )
Try uninstalling packages that are not required anymore:
sudo pacman -c
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
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)
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
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.
Any particular reason why you have root so small and an dedicated /home partition?
Because you don’t need to
dd
your entire /home partition to a drive, wipe your system drive, thendd
your /home back.