脚注の改定ほか

削除

Please read that file before running portupgrade. Important recent entries: 20040724 (default X changes).

修正

To upgrade in-place from 4.x-stable to current

:snip


					[71]
make buildworld						[92]
make buildkernel KERNCONF=YOUR_KERNEL_HERE		[83]
cp sys/${MACHINE}/conf/GENERIC.hints /boot/device.hints [24]
make installkernel KERNCONF=YOUR_KERNEL_HERE
cd sys/boot ; make STRIP="" install			[65]
							[16]
					[37]
/usr/src/etc/rc.d/preseedrandom				[108]
mergemaster -p						[59]
rm -rf /usr/include/g++
make installworld
mergemaster -i						[410]

commit log

Renumber the footnotes on the 4.x -> 5 section.
Add information from rwatson for the problems he's encountered, along with expanded advise for ports, packages and updating systems that once ran 2.x and/or 3.x. Not kerberos issues, even though I have no work around.
This should bring the issues wrt 4.x->5 more up to date. Let me know if there are other issues.
$FreeBSD: src/UPDATING,v 1.342.2.25 2005/04/08 23:02:23 imp Exp $
$FreeBSD: src/UPDATING,v 1.342.2.26 2005/04/08 23:30:08 imp Exp $

追加

If you have any ports or packages installed on the system, please see /usr/ports/UPDATING. The following items are known to cause problems with the upgrade:

  1. Kerberos upgrades are hard, and evidentally don't work. More on this later.
  2. Old ports and packages can sometimes have subtle problems with newer libraries. portupgrade -f is recommended where possible after the upgrade. portupgrade -P will be faster since it uses packages. There are many known issues with running a mix of 4.x built packages and 5.x built packages, and this avoids them.
  3. Perl based ports may also have the wrong version of perl hard coded into the headers. Spamassassin is one such port.
  4. Startup scripts have significantly changed. Make sure that you verify that all expected daemons start. Modifications of /etc/rc* (except rc.conf) may cause problems.
  5. Device names have changed and MAKEDEV is gone.
  6. The boot loader defaults have changed, which may cause confusion.

修正

[71] Before you upgrade, please make sure that you are not using compatibility slices. These are device names of the form, on i386 and other architectures that use MBR slicing, /dev/ad0a without the actual slice name. Chances are excellent that these will break. You generally must update these entries to use the post FreeBSD 2.x form of /dev/ad0s1a.

[92] When checking out sources, you must include the -P flag to have cvs prune empty directories. Also, if CPUTYPE is defined in your /etc/make.conf, make sure to use the "?=" instead of the "=" assignment operator, so that buildworld can override the CPUTYPE if it needs to. In case you would like to avoid installing new packages of everything, you might want to uncomment the "COMPAT4X= YES" entry, so that 4.x compatibility libraries are built which should allow you to continue using your existing software for a while.

[83] In order to have a kernel that can run the 4.x or earlier binaries needed to do an installworld, you must include the COMPAT_FREEBSD4 option in your kernel. Failure to do so may leave you with a system that is hard to boot to recover. If you have a.out binaries, then you need to add COMPAT_AOUT option too. If you are updating a system that's been updated from 2.x and/or 3.x in the past, enable both of these to be safe.

[24] If you have legacy ISA devices, you may need to create your own device.hints to reflect your unique hardware configuration.

[65] 4.x boot loader can be used to boot a 5.x system, however it is difficult to do that at best. If you wish to try, then you should interrupt the boot and at the ok prompt type:

ok unload
ok boot /boot/kernel/kernel

If this fails to work, you must install a new boot loader as described here.

[16] If you have third party modules, such as vmware, you should disable them at this point so they don't crash your system on reboot.

[37] From the bootblocks, boot -s, and then do

fsck -p
mount -u /
mount -a
cd /usr/src
adjkerntz -i		# if CMOS is wall time

Also, when doing a major release upgrade, it is required that you boot into single user mode to do the installworld. For the 4.x -> 5.x upgrade, you will also see many messages about needing to recompile your userland. These are harmless and can be ignored while you proceed to the next step.

[108] In order to create temporary files, /dev/random must be initialized by feeding data into it. /usr/src/etc/rc.d/preseedrandom takes care of this.

[59] Usually this step is a noop. However, from time to time you may need to do this if you get unknown user in the following step. It never hurts to do it all the time. You may need to install a new mergemaster (cd src/usr.sbin/mergemaster && make install) after the buildworld before this step if you last updated from current before 20020224 or from -stable before 20020408.

[410] Note: This step is non-optional. Failure to do this step can result in a significant reduction in the functionality of the system. Attempting to do it by hand is not recommended and those that pursue this avenue should read this file carefully, as well as the archives of freebsd-current and freebsd-hackers mailing lists for potential gotchas.