如何将FreeBSD升级到新版本

时间:2020-01-09 10:39:49  来源:igfitidea点击:

问题描述:Ive自定义编译内核,如何将系统升级到最新的稳定版本。
如何在不使用freebsd-update二进制工具的情况下将FreeBSD升级到新版本?

解决方法:如果您安装了自定义内核,则freebsd-update将无法工作。
下面介绍执行基于源代码的更新的过程。

步骤1:获取最新的源代码

您需要使用csup,这是一个用于在网络上更新文件集合的软件包。
首先,将配置文件复制到/root,执行:

# cp /usr/share/examples/cvsup/standard-supfile /root/supfile

打开/root/supfile,执行:

# vi /root/supfile

找到如下所示的行:

host=CHANGE_THIS.FreeBSD.org

更改为(您可以在此处找到cvsup镜像列表):

host=cvsup4.us.FreeBSD.org

确保将标签设置为tag = RELENG_7_1(对于最新的FreeBSD 7.1版本)

*default release=cvs tag=RELENG_7_1

这是我的示例/root/supfile文件:

*default host=cvsup4.us.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_7_1
*default delete use-rel-suffix
*default compress

要获取更新,请执行:

# cvsup /root/supfile

步骤2:构建基础系统

一旦同步了本地源树,就可以使用源树重建基本系统。
务必始终读取/usr/src/UPDATING文件以节省时间,这一点很重要。
该文件包含有关升级过程的重要信息,包括已知问题,错误和解决方法。

# vi /usr/src/UPDATING

了解所有问题后,请首先构建基本系统,然后执行:

# cd /usr/src
# make buildworld

步骤3:构建FreeBSD内核

接下来,使用以下语法构建并安装FreeBSD内核:

# make buildkernel
# make installkernel

要构建并安装名为foo的定制内核,请执行:

# make buildkernel KERNCONF=foo
# make installkernel KERNCONF=foo

最后,重新启动服务器,执行:

# reboot

引导到单用户模式

您需要将FreeBSD引导到单用户模式,在加载程序提示符下执行boot -s:

boot -s

挂载文件系统并运行mergemaster,执行:

# mount -a -t ufs
# mergemaster -p

接受根据您的配置建议的更改。

步骤4:安装基本系统和库

输入以下命令,执行:

# cd /usr/src
# make installworld

最后,合并您的配置文件,执行:

# mergemaster -i

现在您已经完成了第一阶段,只需重新启动系统即可:

# reboot

验证一切正常

查看系统日志文件,并确保一切正常,执行:

# uname -a
# tail -f /var/log/messages
# tail -f /path/to/other/log/files
# sockstat

步骤5:更新FreeBSD应用程序

最后,更新所有已安装的应用程序,例如Apache,postfix等,执行:

# portsnap fetch update

要升级所有已安装的FreeBSD端口/应用程序,请执行:

# portversion -l '