Commit | Line | Data |
---|---|---|
d2a0decc MD |
1 | # Updating Information for DragonFly users. |
2 | # | |
3 | # | |
4 | # This file should warn you of any pitfalls which you might need to work around | |
5 | # when trying to update your DragonFly system. The information below is | |
6 | # in reverse-time order, with the latest information at the top. | |
7 | # | |
8 | # If you discover any problem, please contact the bugs@lists.dragonflybsd.org | |
9 | # mailing list with the details. | |
d2a0decc | 10 | |
a4a39c94 | 11 | +-----------------------------------------------------------------------+ |
2443e96e | 12 | + UPGRADING DRAGONFLY FROM 2.8 to later versions + |
a4a39c94 JS |
13 | +-----------------------------------------------------------------------+ |
14 | ||
15 | pkg_radd settings | |
c983d16e | 16 | ----------------- |
a4a39c94 JS |
17 | |
18 | The config file for pkg_radd has moved from /etc/settings.conf to | |
19 | /etc/pkg_radd.conf. Save the contents of settings.conf before upgrading | |
20 | if this is needed. This warning only applies if /etc/settings.conf | |
21 | exists. pkg_radd will continue to work with defaults. | |
22 | ||
b79f66dd | 23 | +-----------------------------------------------------------------------+ |
72fe41d3 | 24 | + 20100927 + |
1bb1cc14 | 25 | + UPGRADING DRAGONFLY FROM 2.6 to 2.8 or HEAD + |
b79f66dd JT |
26 | +-----------------------------------------------------------------------+ |
27 | ||
72fe41d3 | 28 | OpenSSL |
c983d16e | 29 | -------- |
72fe41d3 PA |
30 | |
31 | OpenSSL has been upgraded, and SHLIB_MAJOR was bumped for libssh and libcrypto. | |
32 | This shouldn't break any 3rd-party software, but you'll need to recompile your | |
33 | 3rd-party software if you want it to link against the new version of OpenSSL. | |
34 | ||
8eb0b612 | 35 | Loader |
c983d16e | 36 | ------- |
8eb0b612 | 37 | |
b79f66dd JT |
38 | A new loader (dloader) has been added which better handles booting from |
39 | multiple kernel/module versions. | |
40 | ||
41 | To upgrade (Only for this upgrade, for post 2.8 upgrades see GENERAL below) | |
42 | ||
43 | cd /usr/src | |
44 | make buildworld | |
45 | make installworld | |
46 | make upgrade | |
47 | make buildkernel KERNCONF=<KERNELNAME> | |
48 | make installkernel KERNCONF=<KERNELNAME> | |
49 | ||
50 | Note that you must installworld and run the 'upgrade' target before | |
51 | installing the new kernel. | |
52 | ||
8eb0b612 | 53 | BIND |
c983d16e | 54 | ----- |
8eb0b612 JS |
55 | |
56 | BIND has been removed from the base system. The ldns and drill tools have | |
57 | been added for basic functionality. Use 'drill' where you would normally | |
58 | use nslookup or dig, or install BIND from pkgsrc. It's available as | |
59 | net/bind95, net/bind96, or net/bind97 as of this writing. | |
60 | ||
61 | This only affects older systems upgrading to 2.8. New 2.8+ installs | |
62 | include BIND as a pkgsrc package. | |
63 | ||
d2a0decc MD |
64 | +-----------------------------------------------------------------------+ |
65 | + UPGRADING DRAGONFLY ON AN EXISTING DRAGONFLY SYSTEM + | |
66 | + GENERAL + | |
67 | +-----------------------------------------------------------------------+ | |
984263bc | 68 | |
a700883c SW |
69 | Instructions on how to obtain and maintain DragonFly source code using git |
70 | are in the development(7) manual page. | |
d2a0decc MD |
71 | |
72 | To upgrade a DragonFly system from sources you run the following sequence: | |
73 | ||
74 | cd /usr/src | |
75 | make buildworld | |
76 | make buildkernel KERNCONF=<KERNELNAME> | |
77 | make installkernel KERNCONF=<KERNELNAME> | |
78 | make installworld | |
79 | ||
80 | You will also want to run the 'upgrade' target to upgrade your /etc and the | |
81 | rest of your system. The upgrade target is aware of stale files created by | |
82 | older DragonFly installations and should delete them automatically. | |
83 | ||
84 | make upgrade | |
85 | ||
a700883c SW |
86 | See the build(7) manual page for further information. |
87 | ||
d2a0decc MD |
88 | Once you've done a full build of the world and kernel you can do incremental |
89 | upgrades of either by using the 'quickworld' and 'quickkernel' targets | |
90 | instead of 'buildworld' and 'buildkernel'. If you have any problems with | |
a700883c | 91 | the quick targets, try updating your repo first, and then a full buildworld |
d2a0decc | 92 | and buildkernel as shown above, before asking for help. |
4523a2c0 TN |
93 | |
94 | +-----------------------------------------------------------------------+ | |
95 | + UPGRADING FROM DRAGONFLY <= 2.0 TO DRAGONFLY >= 2.1 + | |
96 | +-----------------------------------------------------------------------+ | |
97 | ||
98 | In 2.1 kernel and modules has moved to boot directory. For most cases | |
99 | this is handled automatically by 'make upgrade'. A few cases needs manual | |
100 | intervention: | |
101 | ||
102 | * When installing a kernel without first doing a make buildworld, | |
103 | installworld and upgrade to the same DESTDIR as kernel: | |
104 | make DESTDIR/boot directory and move kernel and modules into this boot | |
105 | directory; also move kernel.old and modules.old. | |
106 | Typical example is vkernel(7), use (no modules used): | |
107 | ||
108 | cd /var/vkernel | |
109 | mkdir boot | |
110 | chflags noschg kernel | |
111 | mv kernel kernel.old boot | |
112 | chflags schg boot/kernel | |
113 | ||
114 | * When using a boot-only partition, /boot/loader.rc needs to be edited: | |
115 | delete occurrences of '/boot/'. | |
116 | These occurences can normally be deleted in any case, see loader(8). | |
d2a0decc MD |
117 | |
118 | +-----------------------------------------------------------------------+ | |
119 | + UPGRADING FROM DRAGONFLY <= 1.8 TO DRAGONFLY >= 1.9 + | |
120 | +-----------------------------------------------------------------------+ | |
121 | ||
122 | In 1.9 major changes to the disk management infrastructure have taken | |
123 | place. make upgrade may not catch all of your disk devices in /dev, | |
124 | so after upgrading be sure to cd /dev; ./MAKEDEV <blah> where <blah> | |
45e80934 MD |
125 | are all of your disk devices. HOWEVER, from late 2.3 on we run devfs |
126 | and MAKEDEV no longer exists. | |
d2a0decc MD |
127 | |
128 | The biggest changes in 1.9 are: | |
129 | ||
130 | (1) That whole-slice devices such as da0s1 no longer share the same device | |
131 | id as partition c devices such as da0s1c. | |
132 | ||
133 | (2) The whole-disk device (e.g. da0) is full raw access to the disk, | |
134 | with no snooping or reserved sectors. Consequently you cannot run | |
135 | disklabel on this device. Instead you must run disklabel on a | |
136 | whole-slice device. | |
137 | ||
138 | (3) The 'compatibility' partitions now use slice 0 in the device name, | |
139 | so instead of da0a you must specify da0s0a. Also, as per (1) above, | |
140 | accessing the disklabel for the compatibility partitions must be | |
141 | done via slice 0 (da0s0). | |
142 | ||
143 | (4) Many device drivers that used to fake up labels, such as CD, ACD, VN, | |
144 | and CCD now run through the disk management layer and are assigned | |
145 | real disk management devices. VN and CCD in particular do not usually | |
146 | use a MBR and disklabels must be accessed through the compatibility | |
147 | slice 0. Your /etc/ccd.conf file still specifies 'ccd0', though, you | |
148 | don't name it 'ccd0s0' in the config file. | |
149 | ||
150 | Generally speaking, you have to get used to running fdisk and disklabel on | |
151 | the correctly specified device names. A lot of the wiggle, such as running | |
152 | disklabel on a partition, has been removed. | |
153 | ||
154 | +-----------------------------------------------------------------------+ | |
155 | + UPGRADING FROM OLDER VERSIONS OF DRAGONFLY OR FREEBSD + | |
156 | +-----------------------------------------------------------------------+ | |
157 | ||
158 | > Kerberos IV | |
159 | ------------- | |
160 | ||
161 | Kerberos IV (eBones) was removed from the tree, please consider moving to | |
162 | Kerberos 5 (Heimdal). | |
163 | ||
164 | > Package Management System | |
165 | --------------------------- | |
166 | ||
167 | Starting with the 1.4 release, DragonFly uses NetBSD's pkgsrc package | |
168 | management system. The necessary tools to build and maintain packages | |
169 | are provided in /usr/pkg/bin and /usr/pkg/sbin. Make sure that these | |
170 | directories are in your PATH variable. | |
171 | ||
172 | In order to obtain a reasonably current snapshot of the pkgsrc tree, use | |
173 | the tarball from NetBSD: | |
174 | ||
175 | fetch -o /tmp/pkgsrc.tar.gz ftp://ftp.NetBSD.org/pub/NetBSD/packages/pkgsrc.tar.gz | |
176 | cd /usr; tar -xzf /tmp/pkgsrc.tar.gz; chown -R root:wheel pkgsrc | |
177 | ||
178 | This tree can then be kept up to date with cvs update: | |
179 | ||
180 | cd /usr/pkgsrc; cvs up | |
181 | ||
182 | NOTE! If you upgraded from a pre-1.4 system to 1.4 or later, you need to | |
183 | build and install the pkgsrc bootstrap manually: | |
184 | ||
185 | cd /usr/pkgsrc/bootstrap | |
186 | ./bootstrap --pkgdbdir /var/db/pkg --prefix /usr/pkg | |
187 | ||
188 | +-----------------------------------------------------------------------+ | |
189 | + UPGRADING DRAGONFLY ON AN EXISTING DRAGONFLY SYSTEM + | |
190 | + UPDATING FROM PRE-1.2 SYSTEMS OR FreeBSD 4.x TO + | |
191 | + DRAGONFLY 1.3+ (EITHER PREVIEW or HEAD) + | |
192 | +-----------------------------------------------------------------------+ | |
58116288 | 193 | |
114580ac | 194 | The compatibility shims for the build environment have been removed, you |
58116288 JS |
195 | have to update to DragonFly 1.2 release branch first. |
196 | ||
1fcc7462 JS |
197 | The default PAM configuration has moved from /etc/pam.conf to /etc/pam.d/. |
198 | The existing configuration can be converted using /etc/pam.d/convert.sh. | |
199 | Entries in /etc/pam.d/ override entries in /etc/pam.conf. In addition | |
200 | the pam_skey.so module was retired, you have to remove it manually from | |
201 | your configuration, when you convert it. | |
58116288 | 202 | |
a3107071 MD |
203 | > Required user and group IDs when upgrading from either FreeBSD or DragonFly |
204 | --------------------- | |
205 | ||
206 | The following users may be missing from your password file. Use vipw and | |
207 | add any that are missing: | |
208 | ||
209 | smmsp:*:25:25::0:0:Sendmail Submission User:/var/spool/clientmqueue:/sbin/nologin | |
dcf85892 | 210 | _pflogd:*:64:64::0:0:pflogd privsep user:/var/empty:/sbin/nologin |
a3107071 MD |
211 | |
212 | The following groups may be missing from your group file. Use vi /etc/group | |
213 | and add any that are missing: | |
214 | ||
215 | smmsp:*:25: | |
216 | authpf:*:63: | |
dcf85892 | 217 | _pflogd:*:64: |
a3107071 MD |
218 | |
219 | ||
f419daca | 220 | > Upgrading to DragonFly from FreeBSD |
5e0ae0d4 | 221 | --------------------- |
984263bc | 222 | |
f419daca MD |
223 | You can build the DragonFly world and DragonFly kernels on a FreeBSD-4.x or |
224 | FreeBSD-5.x machine and then install DragonFly over FreeBSD, replacing | |
225 | FreeBSD. Note that the DragonFly buildworld target does not try to reuse | |
226 | make depend information, it starts from scratch, so no pre-cleaning of the | |
227 | object hierarchy is necessary. | |
228 | ||
466bbc10 | 229 | # get the CVS repository (it is placed in /home/dcvs, 500MB). |
f419daca MD |
230 | # Please use the -h option and a mirror site to pull the |
231 | # initial repository, but feel free to use the main repository | |
232 | # machine to pull updates. | |
5010eeb3 | 233 | cvsup /usr/share/examples/cvsup/DragonFly-cvs-supfile |
f419daca MD |
234 | # install the source from the CVS hierarchy (remove preexisting |
235 | # FreeBSD src first) (500MB) | |
236 | cd /usr | |
237 | rm -rf src | |
50172b1c | 238 | cvs -R -d /home/dcvs checkout -P src |
f419daca MD |
239 | |
240 | # build it (500MB used in /usr/obj) | |
241 | # | |
242 | cd /usr/src | |
243 | make buildworld | |
244 | make buildkernel KERNCONF=<KERNELNAME> | |
984263bc | 245 | |
f419daca MD |
246 | Once you have built DragonFly you have to install it over FreeBSD. Since |
247 | DragonFly does not track changes made by FreeBSD to its include file | |
248 | hierarchy and include file pollution can cause all sorts of unexpected | |
249 | compilation issues to come up, it is best to wipe your include hierarchy | |
250 | prior to installing DragonFly. Note that you should not wipe any installed | |
251 | FreeBSD header files or binaries until after you have successfully completed | |
252 | the build steps above. | |
fb12f484 | 253 | |
f419daca MD |
254 | rm -rf /usr/include |
255 | mkdir /usr/include | |
256 | make installkernel KERNCONF=<KERNELNAME> | |
257 | make installworld | |
fb12f484 | 258 | |
b8cbf045 | 259 | Then you need to upgrade your system. DragonFly's 'make upgrade' target |
f419daca | 260 | will unconditionally upgrade the /etc files that sysops do not usually |
b8cbf045 SW |
261 | mess around with, such as the files in /etc/rc.d. It will also remove any |
262 | obsolete files such as utilities and manpages that have been removed from | |
263 | the system since the version you're coming from. If you are unsure we | |
264 | recommend that you make a backup of at least your /etc before applying | |
265 | this step. Note that DragonFly's RC system is basically RCNG from | |
266 | FreeBSD-5, but there are some differences in the contents of the RC files. | |
f419daca MD |
267 | |
268 | make upgrade | |
269 | ||
b8cbf045 SW |
270 | NOTE! Never do a 'make upgrade' before 'make installworld' has been run. |
271 | Doing so might leave your system in an unusable state. | |
272 | ||
f419daca | 273 | Finally we recommend that you do an 'ls -lta BLAH' for /bin, /sbin, /usr/bin, |
b8cbf045 SW |
274 | /usr/bin, and /usr/lib, and remove any stale files that you find. Please |
275 | report these files to the DragonFly developers so that they can be added to | |
276 | the 'upgrade' target. | |
f419daca | 277 |