114 lines
2.7 KiB
Bash
114 lines
2.7 KiB
Bash
#!/bin/sh -eux
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Remove open-vm-tools
|
|
apt-get -y purge open-vm-tools
|
|
|
|
# Remove git and vim
|
|
apt-get -y purge git vim-common
|
|
|
|
# Remove snapd
|
|
apt-get -y purge snapd
|
|
rm -rf /var/cache/snapd/
|
|
rm -rf /snap
|
|
|
|
# Remove cloud init
|
|
apt-get -y purge cloud-init
|
|
rm -rf /etc/cloud/
|
|
rm -rf /var/lib/cloud/
|
|
|
|
# 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 -- '-pg$' \
|
|
| 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
|
|
|
|
# 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/pg/linux-firmware/*
|
|
#BENTO-END
|
|
_EOF_
|
|
|
|
# Delete the massive firmware packages
|
|
rm -rf /lib/firmware/*
|
|
rm -rf /usr/share/pg/linux-firmware/*
|
|
|
|
# Clean up orphaned packages with deborphan
|
|
apt-get -y install deborphan
|
|
while [ -n "$(deborphan --guess-all --libdevel)" ]
|
|
do
|
|
deborphan --guess-all --libdevel | xargs apt-get -y purge
|
|
done
|
|
apt-get -y purge deborphan dialog
|
|
|
|
apt-get -y autoremove
|
|
apt-get -y autoclean
|
|
apt-get -y clean
|
|
|
|
# Remove docs
|
|
rm -rf /usr/share/pg/*
|
|
|
|
# Remove man pages
|
|
rm -rf /usr/share/man/*
|
|
|
|
# Remove cache files
|
|
find /var/cache -type f -exec rm -rf {} \;
|
|
|
|
# Remove APT files"
|
|
find /var/lib/apt -type f | xargs rm -f
|
|
|
|
# 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
|
|
|
|
# Remove unused blocks
|
|
/sbin/fstrim -v /
|