=========== dfly-update =========== Copyright (c) 2017-2019 Aaron LI MIT License https://github.com/liweitianux/dfly-update A simple tool to update a DragonFly BSD system using binary releases or snapshot builds. Tests, issue reports, and pull requests welcome :) Introduction ------------ The officially supported method to update a DragonFly system is building and installing from sources. However, it's time-consuming, hard or even impossible to build sources on a small or low-end VPS, and it's also not easy to transfer the built "/usr/obj" (which is rather big) to a remote VPS for an update. Therefore, a simple tool to update a DragonFly BSD system directly from the officially built release or snapshot images is very useful and necessary. This tool refers to the installation procedures and the official source upgrade processes to implement the update task, which mainly includes the following steps: 1. mount the system image file (*.img); 2. backup the current kernel and world (including "/etc"); 3. install the kernel and world using cpdup (similar to the installer); 4. identify the new/changed "/etc" files, rename the conflicting ones with suffix ".__new__" and then copy over; 5. get obsolete files from "Makefile_upgrade.inc" and remove them; 6. umount, show the "*.__new__" files need manual merge. Usage ----- dfly# git clone https://github.com/liweitianux/dfly-update dfly# cd dfly-update dfly# ./dfly-update fly NOTE: After this, you still need to merge the listed config files with suffix ".__new__", and also upgrade the packages. Versions -------- * 0.1.5 (2018-12-28) - Rebuild multiple databases after upgrade - Various minor cleanups * 0.1.4 (2018-12-20) - Install "/rescue" directory - Improve mtree(8) usage * 0.1.3 (2018-04-16) - Fix the issue that the old "Makefile_upgrade" was used - Make the upgrade messages more concise * 0.1.2 (2018-03-11) - First usable version for broader testing TODO ---- * Merge new users/groups * Interactively merge updated /etc files (borrow OpenBSD's sysmerge(8) or improve/simplify mergemaster(8)) * rcs(1) controlled /etc upgrade