blob: b62fc0cbfc802c407bbd909dbe501d117531419f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
===========
dfly-update
===========
Copyright (c) 2017-2019 Aaron LI <aly@aaronly.me>
MIT License
https://github.com/liweitianux/dfly-update
A simple tool to update a DragonFly BSD system using a binary release or
snapshot image file.
Introduction
------------
The officially supported method to update a DragonFly BSD system is
building and installing from the source. However, on a low-end machine
(e.g., a small VPS), it's time-consuming and hard to build the source. On
the other hand, it's not easy to transfer the built "/usr/obj" (quite big)
to a remote VPS for an update. Therefore, a simple tool to update a the
system directly using a binary release or snapshot image 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. create new users and groups;
5. identify the new/changed "/etc" files, rename the conflicting ones
with suffix ".__new__" and then copy over;
6. get obsolete files from "Makefile_upgrade.inc" and remove them;
7. 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 <path/to/downloaded/dfly.img>
NOTE:
After this, you still need to merge the listed config files with suffix
".__new__", and also upgrade the packages.
Versions
--------
* 0.2.0 (2019-01-09)
- New command line syntax
- Remove the "status" and "download" commands to be a lot simpler
- Use "cpdup -X" to ignore the files that should not be overwritten
- Create new users/groups according to the new master.passwd/group
- Multiple other small improvements and cleanups
* 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
|