Created
May 2, 2015 06:09
-
-
Save jarfil/54387fcca74f67f142da to your computer and use it in GitHub Desktop.
Automate apt-get avoiding major damage, suitable for cron
This file contains 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/bash | |
EMAIL="[email protected]" | |
DEVEL=false | |
# clean downloaded packages if none pending for dist-upgrade | |
if ! $DEVEL ; then apt-get --assume-no dist-upgrade && apt-get clean ; fi | |
# update, upgrade, autoremove | |
apt-get --assume-yes update | |
apt-get --assume-yes upgrade | |
if ! $DEVEL ; then apt-get --assume-yes autoremove ; fi | |
# notify packages waiting for dist-upgrade | |
apt-get --assume-no dist-upgrade || ( | |
echo From: apt-get@$HOSTNAME | |
echo Subject: apt-get dist-upgrade | |
apt-get --assume-no dist-upgrade | |
) | sendmail $EMAIL | |
# pre-download packages for dist-upgrade | |
apt-get --assume-no dist-upgrade || apt-get --download-only --assume-yes dist-upgrade | |
# remove unused libraries | |
if ! $DEVEL ; then | |
while deborphan | grep ^lib ; do | |
deborphan | grep ^lib | xargs apt-get --assume-yes purge | |
apt-get --assume-yes autoremove | |
done | |
fi | |
# remove unused transitional packages | |
for f in `deborphan` ; do | |
dpkg -l $f | | |
tail -n1 | | |
grep -i "transitional" &> /dev/null && | |
echo $f | |
done | xargs apt-get --assume-yes purge | |
if ! $DEVEL ; then apt-get --assume-yes autoremove ; fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment