The Raspbian image is available in two sizes from the Official download page. If SD card storage space is an issue it can sometimes be useful to reduce the size of these images. This guide will show how you can remove approximately 1GB of packages that you may not need for your Raspberry Pi project.
SD Card Image Sizes
The main difference between the two images is the inclusion of the desktop environment on the larger version. Using the “lite” image is fine but what if you want the desktop environment but still want to reduce the size of the image?
The “RASPBIAN STRETCH WITH DESKTOP” image is a 1.7GB download that expands to 4.8GB. The “RASPBIAN STRETCH LITE” version is a 350MB download which expands to a 1.8GB image file.
There are a number of large packages that come installed on the full Raspbian image that can be removed to free up space on your SD card.
For details on writing these images to an SD card please see the Write SD Card Images Using Etcher On Windows, Linux and Mac tutorial.
Displaying Current SD Card Usage
To see how much space is being used on your SD card you can run the following command :
df -h
This will give an output like this :
This shows my SD card is 15GB in size with 4.3GB used.
Finding Packages to Remove
In order to list all the currently installed packages you can use :
dpkg --get-selections
The output is quite long so you might want to export to a text file :
dpkg --get-selections > packages.txt
This text file can be loaded into a text editor if required.
In order to find out which packages are taking up the most space you can use the following command :
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n
This list will be quite long but the packages listed last will be the biggest.
Removing Packages
To remove a package you use the following command :
sudo apt-get purge -y packagename
where “packagename” is the name of the package shown in the dpkg list generated in previous steps.
For example to remove the Wolfram engine you would use :
sudo apt-get purge -y wolfram-engine
Which packages you choose to remove is up to you.
As Reddit user “doc_willis” points out the “-y” option will remove the package with no prompting. You may wish to run the command without this option so you can verify what is going to be removed before committing to removing it.
Here is a table showing the command to remove a specific package and the space you will save by doing so:
Command to Remove Package | Size |
sudo apt-get purge -y wolfram-engine | 680MB |
sudo apt-get purge -y libreoffice* | 245MB |
sudo apt-get purge -y oracle-java* | 160MB |
sudo apt-get purge -y scratch2 | 140MB |
sudo apt-get purge -y scratch | 91MB |
Removing Wolfram, Libreoffice and Oracle Java can free up to 1GB of space. That’s a useful amount that you can use for other purposes if you don’t need those packages.
Recovering Additional Space
Additional space can be recovered by uninstalling packages that were only installed to support the packages that have now been removed :
sudo apt-get autoremove
Finally you can run the “clean” command to clear out the local repository of retrieved package files :
sudo apt-get clean
Hopefully this guide will be useful in helping you make the most of your SD card capacity.
3 Comments
Thanks! Just what I needed!
This is a great post! I have been wanting to free up some space on my SD card for a while now. Thanks for the tips!
Great post! I didn’t realize how simple it could be to check and free up space on my Raspberry Pi. The step-by-step instructions were really helpful. Thanks for sharing!