I recently set up a pi to act as a dedicated headless server with a default install of Raspbian (from NOOBS). It is solely to serve information and a couple services. In that case, there are a lot of things that aren’t needed for a headless server. One of those things (and the biggest) is X11. On a headless server, you don’t need graphical interfaces 99% of the time. I also don’t need sound or printing capability (although you could share a printer with it). Below are some suggestions on freeing up some of that already thin SD card space:
First, it’s important to understand what is installed so you can see what you have, and what might be a candidate for removal:
dpkg --get-selections | grep -v deinstall
This will get you a very long list of what’s all installed. It’s great software, but in my case, completely unneeded. X11 has processes running, and everything I didn’t need took up about 2GB of space. Sure, on a desktop hard-drive that’s just a drop in the bucket these days, but SD cards are still cramped for space. Below are just suggestions on what can be removed.
Note: Be sure to scroll to the right, as these commands are very long.
apt-get --purge remove x11-*
Doing this command will free up the most space and resources by far. About 2GB will be freed, and several running processes will be stopped, freeing up memory and CPU. All 3 of the most restricted and important resources on a pi. This does however remove every GUI piece on the Pi, which means console only from here on out.
Removing Extra Multimedia:
sudo apt-get remove alsa-base alsa-utils gstreamer1.0-alsa:armhf gstreamer1.0-libav:armhf gstreamer1.0-omx gstreamer1.0-plugins-base:armhf gstreamer1.0-plugins-good:armhf gstreamer1.0-x:armhf
I don’t plan on listening to music on my pi server, so all of this was also removed.
sudo apt-get remove cups-common
I don’t plan on doing any printing, or sharing any printers (my printer is networked anyway), so CUPS was removed.
After removing everything:
sudo apt-get --purge autoremove
This will remove any leftover packages (usually mostly libraries) from other stuff that was removed above.
sudo apt-get clean;sudo apt-get autoclean
I ran these commands after just to clean up apt-get, so I don’t run into any problems in the future.
After doing all of the above, I ended up with only 879MB of SD card space used, which is fantastic for a still fully functioning and working pi. You will probably end up with even more free space, as I have other stuff installed. Remember, everything you remove can always be put back.