Created
January 30, 2020 02:32
-
-
Save renatogabrielbr/f076a60d5f6ebc97943ad134379be77c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh -eux | |
# Delete all Linux headers | |
dpkg --list \ | |
| awk '{ print $2 }' \ | |
| grep 'linux-headers' \ | |
| xargs apt-get -y purge; | |
# Remove specific Linux kernels, such as linux-image-3.11.0-15-generic but | |
# keeps the current kernel and does not touch the virtual packages, | |
# e.g. 'linux-image-generic', etc. | |
dpkg --list \ | |
| awk '{ print $2 }' \ | |
| grep 'linux-image-.*-generic' \ | |
| grep -v `uname -r` \ | |
| xargs apt-get -y purge; | |
# Delete Linux source | |
dpkg --list \ | |
| awk '{ print $2 }' \ | |
| grep linux-source \ | |
| xargs apt-get -y purge; | |
# Delete development packages | |
dpkg --list \ | |
| awk '{ print $2 }' \ | |
| grep -- '-dev$' \ | |
| xargs apt-get -y purge; | |
# delete docs packages | |
dpkg --list \ | |
| awk '{ print $2 }' \ | |
| grep -- '-doc$' \ | |
| xargs apt-get -y purge; | |
# Delete X11 libraries | |
apt-get -y purge libx11-data xauth libxmuu1 libxcb1 libx11-6 libxext6; | |
# Delete obsolete networking | |
apt-get -y purge ppp pppconfig pppoeconf; | |
# Delete oddities | |
apt-get -y purge popularity-contest installation-report command-not-found friendly-recovery bash-completion fonts-ubuntu-font-family-console laptop-detect; | |
# 19.10+ don't have this package so fail gracefully | |
apt-get -y purge command-not-found-data || true; | |
# Exlude the files we don't need w/o uninstalling linux-firmware | |
echo "==> Setup dpkg excludes for linux-firmware" | |
cat <<_EOF_ | cat >> /etc/dpkg/dpkg.cfg.d/excludes | |
#BENTO-BEGIN | |
path-exclude=/lib/firmware/* | |
path-exclude=/usr/share/doc/linux-firmware/* | |
#BENTO-END | |
_EOF_ | |
# Delete the massive firmware packages | |
rm -rf /lib/firmware/* | |
rm -rf /usr/share/doc/linux-firmware/* | |
apt-get -y autoremove; | |
apt-get -y clean; | |
# Remove docs | |
rm -rf /usr/share/doc/* | |
# Remove caches | |
find /var/cache -type f -exec rm -rf {} \; | |
# truncate any logs that have built up during the install | |
find /var/log -type f -exec truncate --size=0 {} \; | |
# Blank netplan machine-id (DUID) so machines get unique ID generated on boot. | |
truncate -s 0 /etc/machine-id | |
# remove the contents of /tmp and /var/tmp | |
rm -rf /tmp/* /var/tmp/* | |
# clear the history so our install isn't there | |
export HISTSIZE=0 | |
rm -f /root/.wget-hsts |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Reffer
https://raw.githubusercontent.com/chef/bento/master/packer_templates/ubuntu/scripts/cleanup.sh