Depends. Best case, you built your system using LVM and have reserved
space. You can check this using the df command. If your filesystems
start with /dev/mapper, then you are using LVM. You can check for free
space using the vgdisplay command (as root):
# vgdisplay
...Snip...
Alloc PE / Size 96637 / 377.49 GiB
Free PE / Size 80065 / 312.75 GiB
The free PE/Size line shows you the available space. You could then extend the filesystem that is having issues:
# lvextend -L+10G /dev/VG00/foo
If you are using standard hard drive partitions (/dev/sda1, /dev/sdb2, etc), then you have to do it the old school way.
Using a tool like df, find a directory tree that is large enough that moving it off of the filesystem would make a difference, then copy it to a partition with more space, then symlink it back to its original location.
This is an older and uglier way to do it as you could, over time wind up with a bunch of these symlinks all over your hard drive.