dfly-update: Simple shell tool to update a DFly using release/snapshot IMG

Carsten Mattner carstenmattner at gmail.com
Mon Mar 12 05:07:46 PDT 2018


On 3/12/18, Aaron LI <aly at 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.



More information about the Users mailing list