81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/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 | 
