On 3/12/18, Aaron LI <a...@aaronly.me> wrote: > Hello, > > The officially supported method to update a DFly system is building & > installing from sources. However, it's hard or even impossible to build > sources on a small VPS, and it's also not easy to transfer the built > /usr/obj > (which is rather big) to a remote VPS for an update. > > So I wrote a simple shell tool to update a running DFly system using the > pre-built releases or snapshots: > > https://github.com/liweitianux/dfly-update > > The basic update steps are: > 1. check local and remote available versions > 2. download the latest release/master system image (.img.bz2) > 3. decompress and mount the image > 4. backup the current kernel and world (including /etc) > 5. install the kernel and world using cpdup (similar to the installer) > 6. identify the new/changed /etc files, rename the conflicting ones with > suffix ".__new__" and then copy over > 7. get obsolete files from Makefile_upgrade.inc and remove them > 8. umount, remove image file, show the *.__new__ files need manual merge > > I have tested updating one of my DFly vbox from 5.0.0 -> 5.0.2 -> 5.1 > (master). The later update log is also put in the above repository as > "example.log". > > Any tests, issue reports, and pull requests are very welcome! Thanks.
Thanks Aaron, this is nice. For step 6, didn't OpenBSD have an /etc update/diff tool to make this easier? I also wonder if it would make sense to emulate FreeBSD's effort to package'ize their base system. You know, a couple (e.g. <5) packages that comprise base, and being able to upgrade those like binary packages.