User Tools

Site Tools


projects:blank00:rollback

How to rollback an apt-get upgrade from command line?

I quickly ran: # grep -A 2 'Start-Date: 2016-01-17 07:56:42' /var/log/apt/history.log Sample output (full dump here):

image1

Fig.01: history.log to rescue

Rollback / undo an apt-get install command

Rest was easy.

Create the list:

 
grep -A 2 'Start-Date: 2016-01-17  07:56:42' /var/log/apt/history.log | tail -1 >/tmp/packages.txt
 

Edit the /tmp/packages.txt file and delete Install: word:

 
vi /tmp/packages.txt
 

OR

 
sed -i 's/Install://' /tmp/packages.txt
 

Finally, I need to clean up a few things:

 
tr ',' '\n' < /tmp/packages.txt | sed '/automatic)/d' | awk '{ print $1}' > /tmp/final.packages.txt
wc -l /tmp/final.packages.txt
 

Sample outputs:

1764 /tmp/final.packages.txt

Delete the packages

Now, I have an entire list of all packages installed on that unfaithful day

# less /tmp/final.packages.txt 
libmaa3:amd64
ant:amd64
libmimic0:amd64
dc:amd64
libparse-yapp-perl:amd64
gir1.2-clutter-1.0:amd64
libjna-java:amd64
python-egenix-mxbeebase:amd64
libxkbcommon-x11-0:amd64
libmpeg2-4:amd64
libopencv-core2.4:amd64
libdvdread4:amd64
libhunspell-1.3-0:amd64
fonts-lobster:amd64
libtotem-plparser18:amd64
libodbcinstq4-1:amd64
jed-common:amd64
....
..
...
xfonts-cyrillic:amd64
postgresql:amd64
db5.3-util:amd64
libopencore-amrnb0:amd64
firebird2.5-examples:amd64
libboost-random1.54-dev:amd64
libtbb2:amd64
libwxgtk2.8-0:amd64
libc6-x32:amd64
magicfilter:amd64

Just uninstall it:

# Run as root
# Store packages name in $p
p="$(</tmp/final.packages.txt)"
 
# Nuke it
apt-get --purge remove $p
 
#clears out the local repository of retrieved package files
apt-get clean
 
# Just in case ...
apt-get autoremove
 
# Verify disk space
df -H
 

Conclusion

To help yourself, you must be yourself. Be the best that you can be. When you make a mistake, learn from it, pick yourself up and move on. –Dave Pelzer

I learned that:

  • The best time to backup is before you do major stuff on the server.
  • Think twice. Hit enter once.
  • Never trust blindly the apt-get or any command that has -y option.
  • Always make the snapshot. Unfortunately, this box still uses ext4. There is no option to set my filesystem to BTRFS/ZFS (Linux on ZFS) with this cloud server provider. So I'm stuck with ext4 for now.
projects/blank00/rollback.txt · Last modified: 2017/06/27 15:41 by 127.0.0.1