Add support for "freebsd-update -r newrelease upgrade" -- binary
upgrading to new releases. Important parts of this code include * automatically determining which optional components (e.g., src, info, proflibs) are installed. * merging changes in files which are modified locally and have changed between the currently running and new release. * prompting the user to rebuild all 3rd party software before deleting old shared libraries. Yes, this is compatible with "freebsd-update rollback" -- you can test a new -BETA and roll back to the old release if you don't like it. Subject to re@ approval, this will be MFCed before 7.0-BETA3 and 6.3-RC1. MFC after: 2 days
This commit is contained in:
parent
419f6676c3
commit
db6b0a619f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=173564
@ -23,9 +23,13 @@ IgnorePaths
|
||||
|
||||
# Paths which start with anything matching an entry in an UpdateIfUnmodified
|
||||
# statement will only be updated if the contents of the file have not been
|
||||
# modified by the user.
|
||||
# modified by the user (unless changes are merged; see below).
|
||||
UpdateIfUnmodified /etc/ /var/
|
||||
|
||||
# When upgrading to a new FreeBSD release, files which match MergeChanges
|
||||
# will have any local changes merged into the version from the new release.
|
||||
MergeChanges /etc/ /var/named/etc/
|
||||
|
||||
### Default configuration options:
|
||||
|
||||
# Directory in which to store downloaded updates and temporary
|
||||
@ -46,3 +50,9 @@ UpdateIfUnmodified /etc/ /var/
|
||||
# FreeBSD Update retain this modified metadata when installing a new version
|
||||
# of that file?
|
||||
# KeepModifiedMetadata yes
|
||||
|
||||
# When upgrading between releases, should the list of Components be
|
||||
# read strictly (StrictComponents yes) or merely as a list of components
|
||||
# which *might* be installed of which FreeBSD Update should figure out
|
||||
# which actually are installed and upgrade those (StrictComponents no)?
|
||||
# StrictComponents no
|
||||
|
@ -93,7 +93,15 @@ accumulate.
|
||||
The parameters following this keyword are regular expressions;
|
||||
updates to paths which start with a string matching one of
|
||||
these regular expressions will be ignored if the files have
|
||||
been modified locally.
|
||||
been modified locally (unless they are merged -- see MergeChanges
|
||||
below).
|
||||
.Pp
|
||||
This option can be specified multiple times, and the parameters
|
||||
accumulate.
|
||||
.It Cm MergeChanges
|
||||
The parameters following this keyword are regular expressions;
|
||||
updates to paths which start with a string matching one of
|
||||
these regular expressions will be merged with local modifications.
|
||||
.Pp
|
||||
This option can be specified multiple times, and the parameters
|
||||
accumulate.
|
||||
@ -138,6 +146,24 @@ and specifies whether
|
||||
.Cm freebsd-update
|
||||
should keep existing file ownership, permissions, and flags
|
||||
when installing updates if these have been modified locally.
|
||||
.It Cm StrictComponents
|
||||
The single parameter following this keyword must be
|
||||
.Dq yes
|
||||
or
|
||||
.Dq no
|
||||
and specifies whether
|
||||
.Cm freebsd-update
|
||||
should interpret the list of components of
|
||||
.Fx
|
||||
specified via the
|
||||
.Cm Components
|
||||
option strictly as a list of components installed which
|
||||
should be upgraded when the
|
||||
.Cm upgrade
|
||||
command is used ("yes"), or merely as a list of components
|
||||
which might be installed, of which
|
||||
.Cm freebsd-update
|
||||
should identify which in fact are present ("no").
|
||||
.El
|
||||
.Sh FILES
|
||||
.Bl -tag -width "/etc/freebsd-update.conf"
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\"-
|
||||
.\" Copyright 2006 Colin Percival
|
||||
.\" Copyright 2006, 2007 Colin Percival
|
||||
.\" All rights reserved
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
@ -25,7 +25,7 @@
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd August 30, 2006
|
||||
.Dd November 11, 2007
|
||||
.Dt FREEBSD-UPDATE 8
|
||||
.Os FreeBSD
|
||||
.Sh NAME
|
||||
@ -37,6 +37,7 @@
|
||||
.Op Fl d Ar workdir
|
||||
.Op Fl f Ar conffile
|
||||
.Op Fl k Ar KEY
|
||||
.Op Fl r Ar newrelease
|
||||
.Op Fl s Ar server
|
||||
.Op Fl t Ar address
|
||||
.Cm command ...
|
||||
@ -84,6 +85,10 @@ Read configuration options from
|
||||
Trust an RSA key with SHA256 of
|
||||
.Ar KEY .
|
||||
(default: read value from configuration file.)
|
||||
.It Fl r Ar newrelease
|
||||
Specify the new release to which
|
||||
.Nm
|
||||
should upgrade (upgrade command only).
|
||||
.It Fl s Ar server
|
||||
Fetch files from the specified server or server pool.
|
||||
(default: read value from configuration file.)
|
||||
@ -118,8 +123,13 @@ from
|
||||
the random delay serves to minimize the probability that
|
||||
a large number of machines will simultaneously attempt to
|
||||
fetch updates.
|
||||
.It Cm upgrade
|
||||
Fetch files necessary for upgrading to a new release.
|
||||
Before using this command, make sure that you read the
|
||||
announcement and release notes for the new release in
|
||||
case there are any special steps needed for upgrading.
|
||||
.It Cm install
|
||||
Install the most recently fetched updates.
|
||||
Install the most recently fetched updates or upgrade.
|
||||
.It Cm rollback
|
||||
Uninstall the most recently installed updates.
|
||||
.El
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user