You can display packages that are going to be upgraded and version changes with:
sudo apt-get update
sudo apt-get -V upgrade
The '-V' flag shows you the additional info. As for the snapshots - you really have to roll your own here.
My favourite method for having the rollback ability is using LVM with snapshots on Linux - but the last time I checked, there was no progress on the automated rollback to the chosen snapshot. This might have changed since then (I'd be happy for someone to correct me), but you can always boot using root=/dev/vg0/root-snap
kernel parameter (for instance) and then use rsync to sync the snapshot /dev/vg0/root-snap
to the original volume /dev/vg0/root
and then discard the snapshot. Not ideal but can be automated.
Of course ZFS snapshots rock but there's no official, production-ready ZFS support for Linux (yes, I'm aware of zfsonlinux.org and ZFS-FUSE), so unless you're just playing around, that's not really a feasible option for you.
UPDATE: it looks that we can now rollback (merge in LVM2 parlance) snapshots. So the update would take the following form with LVM2:
Create a 5GB snapshot of your root LV:
lvcreate -s /dev/vg0/root -L5G -n root-snap
Update the package (as above).
Roll back if necessary by running:
lvconvert --merge /dev/vg0/root-snap
And because /dev/vg0/root (the original LV) is opened, lvconvert will notify you that the /dev/vg0/root will be rolled back to /dev/vg0/root-snap upon the next activation of this volume. This happens when you run
lvchange -ay /dev/vg0/root
while this LV is closed, which is upon the next boot or after running:
lvchange -an /dev/vg0/root
- No (but it will feel like yes for a while)
If you enable rw on / and start modifying it, nothing disables the delivery of OTA updates. So when they arrive, they will be offered to you for install, as before.
However, the OTA process does a very simple thing to the filesystem. It just untars a large set of files on top of the filesystem you have. Since it knows (because it should be ro) the previous filesystem, this is simply a set of the files that have changed.
So you are gambling. Do the changes you have made cause side effects when this happens? In general, yes. In general, you will have modified some file in the / filesystem, and added software that depends on that change. When an OTA is installed, that change will be removed, and potentially replaced with a conflicting change. At this point, what happens next is unknowable, and certainly untested.
So, in practice, some apt-get installs will largely add software in parallel to the existing files, so will not be much impacted by an OTA. However, one file set will certainly be impacted - apt's own record keeping (OTA's deliver the records used in construction of the ro filesystem). So your system will lose the knowledge of what is there, and what is not.
This is the core danger with apt-get upgrade. It will always be performed with an incorrect database of what is on the device, so it cannot be guaranteed to succeed. As your additions become more complex, and as the underlying system makes major transitions (such as when the phones moved from Utopic to Vivid), apt-get run by hand will do the wrong thing.
Every OTA then becomes a gamble, until you perform a wipe & reinstall.
- Your system will become slowly broken - see above.
Best Answer
The short answer:
Re-install Ubuntu from a Live CD or USB.
The long version:
The long version would be a waste of your time: your system will never be clean, but if you insist you could try:
OR
OR
I would definitely go for a fresh new install as there are so many things to do and so little time.