I have an old FreeBSD 7.4 system that I want to update to FreeBSD 8.4-RELEASE. I think FreeBSD 7 was installed from a CD or DVD image. However, this same problem occurs when I update FreeBSD 8 -> 9, and has happened to us in the past on other hosts.
I need help figuring out why
I am following the directions at https://www.freebsd.org/releases/8.4R/installation.html . Step 1 looks simple at first:
According to the FreeBSD docs (and the handbook),
But freebsd-update is not just asking me to merge "some" configuration files.
Note that
95% of the diffs simply told me about a diff in the RCS version string, like this diff for
And this diff of
freebsd-update then asks me to review the list of diffs again, for about 100 files:
Can I tell freebsd-update to stop asking me about the the RCS version string? Or to simply accept the updated version of these obscure files? I can assure you that we never touched most of these. I never, ever touched
This large number of diffs is prone to error and dangerous. Yesterday I corrupted one of my systems to the point that basic utilities like
I need help figuring out why
freebsd-update
is asking me to merge over 100 files, most of which I have never ever touched before. Is this behavior normal? How can I prevent it?I am following the directions at https://www.freebsd.org/releases/8.4R/installation.html . Step 1 looks simple at first:
Code:
freebsd7# freebsd-update upgrade -r 8.4-RELEASE
Looking up update.FreeBSD.org mirrors... none found.
Fetching metadata signature for 7.4-RELEASE from update.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/generic src/base src/bin src/cddl src/contrib src/crypto src/etc
src/games src/gnu src/include src/krb5 src/lib src/libexec src/release
src/rescue src/sbin src/secure src/share src/sys src/tools src/ubin
src/usbin world/base world/dict world/doc world/info world/manpages
world/proflibs
The following components of FreeBSD do not seem to be installed:
world/catpages world/games world/lib32
Does this look reasonable (y/n)? y
Fetching metadata signature for 8.4-RELEASE from update.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.
/usr/sbin/freebsd-update: cannot open files/.gz: No such file or directory
Attempting to automatically merge changes in files... done.
The following file could not be merged automatically: /etc/amd.map
Press Enter to edit this file in vi and resolve the conflicts
manually...
According to the FreeBSD docs (and the handbook),
.During this process, FreeBSD Update may ask the user to help by merging some configuration files or by confirming that the automatically performed merging was done correctly.
But freebsd-update is not just asking me to merge "some" configuration files.
freebsd-update
is asking me to merge well over 100 files, 90% of which I have never touched and I know nothing about.Note that
freebsd-update
uses the merge(1) command. It does not use mergemaster
. For each file, merge(1)
will dump me into a vi window and show a diff containing <<<<<<<
, =======
& >>>>>>>
. If I fail to merge the file correctly, or fail to remove the <<<<<<<
, =======
& >>>>>>>
strings, the file may be left in a corrupt state.95% of the diffs simply told me about a diff in the RCS version string, like this diff for
/etc/amd.map
. Can I tell freebsd-update to simply accept the new version string? Why is it bothering me about this?
Code:
<<<<<<< current version
# $FreeBSD: src/etc/amd.map,v 1.10.8.1 2009/04/15 03:14:26 kensmith Exp $
=======
# $FreeBSD: release/8.4.0/etc/amd.map 164015 2006-11-06 01:42:11Z obrien $
>>>>>>> 8.4-RELEASE
#
/defaults type:=host;fs:=${autodir}/${rhost}/host;rhost:=${key}
* opts:=rw,grpid,resvport,vers=3,proto=tcp,nosuid,nodev
~
And this diff of
/etc/gss/mech
. Again, I have never touched this file, and I don't even know what it is. Why is it asking me?
Code:
<<<<<<< current version
# $FreeBSD: src/etc/gss/mech,v 1.1.2.1.4.1 2009/04/15 03:14:26 kensmith Exp $
=======
# $FreeBSD: release/8.4.0/etc/gss/mech 184588 2008-11-03 10:38:00Z dfr $
>>>>>>> 8.4-RELEASE
#
# Name OID Library name Kernel module
kerberosv5 1.2.840.113554.1.2.2 /usr/lib/libgssapi_krb5.so.10 kgssapi_krb5
spnego 1.3.6.1.5.5.2 /usr/lib/libgssapi_spnego.so.10 -
#ntlm 1.3.6.1.4.1.311.2.2.10 /usr/lib/libgssapi_ntlm.so.10 -
freebsd-update then asks me to review the list of diffs again, for about 100 files:
Code:
The following changes, which occurred between FreeBSD 7.4-RELEASE and
FreeBSD 8.4-RELEASE have been merged into /etc/amd.map:
--- current version
+++ new version
@@ -1,4 +1,4 @@
-# $FreeBSD: src/etc/amd.map,v 1.10.8.1 2009/04/15 03:14:26 kensmith Exp $
+# $FreeBSD: release/8.4.0/etc/amd.map 164015 2006-11-06 01:42:11Z obrien $
#
/defaults type:=host;fs:=${autodir}/${rhost}/host;rhost:=${key}
* opts:=rw,grpid,resvport,vers=3,proto=tcp,nosuid,nodev
Does this look reasonable (y/n)?
Can I tell freebsd-update to stop asking me about the the RCS version string? Or to simply accept the updated version of these obscure files? I can assure you that we never touched most of these. I never, ever touched
src/etc/pccard_ether
or src/etc/pam.d/telnetd
.This large number of diffs is prone to error and dangerous. Yesterday I corrupted one of my systems to the point that basic utilities like
portsnap
were failing. I see that other people have run into this same headache as well, like zytrax.com. I don't see a solution.