aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: 704b280324dc9634573bcd8d52ce676ac6e6b9d9 (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
===========
dfly-update
===========

Copyright (c) 2017-2018 Aaron LI <aly@aaronly.me>
MIT License

https://github.com/liweitianux/dfly-update

A simple tool to update a DragonFly BSD system using binary releases or
snapshot builds.

This tool is written by the author to help keep the DragonFly BSD system
on a low-end VPS up-to-date, without consuming too much resources to build
and update from source, which may be even impossible for a small VPS.

Usage
-----
dfly# git clone https://github.com/liweitianux/dfly-update
dfly# cd dfly-update

* One-step update:
  dfly# ./dfly-update fly

* Step-by-step update:
  1. check local and remote status:
     dfly# ./dfly-update status
  2. use the above printed remote filename and md5 to download it:
     dfly# ./dfly-update <filename> <md5>
  3. mount the downloaded image:
     dfly# ./dfly-update /var/tmp/dfly-update/<filename>
  4. backup the current kernel and world (including /etc):
     dfly# ./dfly-update backup
  5. install the new kernel, world, and /etc files:
     dfly# ./dfly-update upgrade
  6. remove obsolete files, umount, and remove the downloaded image:
     dfly# ./dfly-update cleanup

NOTE:
After this, you still need to merge the listed config files with suffix
".__new__", and also upgrade the packages.

Versions
--------
* 0.1.2 (2018-03-11) First usable version for broader testing

Tests
-----
* 5.0.0-RELEASE -> 5.0.2-RELEASE
* 5.0.2-RELEASE -> 5.1.0.1010.gf2063-DEVELOPMENT
  (set "UPDATE_BRANCH=master")

Example
-------
An example output for updating DragonFly BSD from 5.0.2-RELEASE to the
latest master (v5.1.0.1010.gf2063-DEVELOPMENT) can be found in the
"example.log".

TODO
----
* Merge new users/groups, and update user/pass database
* Interactively merge new/updated /etc files
  (borrow OpenBSD's sysmerge(8))
* Update locate and man page databases
* ???