FreeBSD cvsup:使用源代码从以前的发行版更新FreeBSD

时间:2020-01-09 10:38:30  来源:igfitidea点击:

问题描述:如何使用cvsup镜像更新系统?
如何使用FreeBSD 6.x或7.x从以前的版本升级?
如何升级所有内容,包括内核,userland实用程序和已安装的应用程序?

解决方法:FreeBSD可以从本地/远程cvsup镜像进行升级。

csup是一个软件包,用于更新网络上的文件集合。
这是一个通用的网络文件更新程序包。
即使文件收集也非常快。

升级FreeBSD

您需要使用以下两个步骤来升级FreeBSD:

  • 升级基础系统
  • 更新所有已安装的应用程序或端口。

自然,必须在应用程序之前升级基本系统。

"警告!"这些示例仅适用于FreeBSD 6.2或更高版本。
使用以下命令之前,请备份系统/数据/配置文件。
由于重新启动和单用户模式升级操作,系统将脱机约10-30分钟,因此请在非高峰时间更新系统。

步骤1:升级FreeBSD基本系统

首先,将csup配置文件复制到/etc或/root目录:

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

使用vi文本编辑器打开/root/supfile,执行:

# vi /root/supfile

您需要进行一次更改。
找到如下所示的行:

host=CHANGE_THIS.FreeBSD.org

改成:

host=cvsup4.us.FreeBSD.org

host指令指定将提供文件更新的服务器主机。
您必须将其更改为FreeBSD手册中列出的CVSup镜像站点之一。
另一个选项是使用cvsups -h host选项在命令行上覆盖此设置。
保存并关闭文件。
现在更新源代码树,执行:

# cd /usr/src
# csup /root/supfile

建立基础系统

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

# vi /usr/src/UPDATING

执行以下命令以构建基本系统:

# cd /usr/src
# make buildworld

此过程将花费一些时间,因为所有内容都将从头开始编译。
具有大量内存的强大系统可以在10-15分钟内构建所有内容。
完成后,使用以下语法构建FreeBSD内核:

# make buildkernel
# make installkernel

或者

# make buildkernel KERNCONF={NAME}

例如,构建并安装GENERIC内核,执行:

# make buildkernel KERNCONF=GENERIC
# make installkernel KERNCONF=GENERIC

同样,取决于您的计算机的功能和内核配置,构建内核大约需要5-30分钟。
最后,您需要从加载程序提示符下使用boot -s重新引导系统并引导进入单用户模式:

# reboot

安装基本系统

现在,您需要使用mergemaster bourne shell脚本,该脚本旨在帮助您更新与FreeBSD相关的各种配置和其他文件。
强烈建议您备份/etc目录。
挂载系统:

# mount -a -t ufs

要安装新基本系统所需的一些系统配置文件,请执行:

# mergemaster -p

接受根据您的配置建议的更改。
最后,安装基本系统:

# cd /usr/src
# make installworld

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

# mergemaster -i

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

# reboot

步骤2:更新FreeBSD应用程序

现在您正在运行新的FreeBSD环境。
您需要做的就是使用portsnap升级安装的应用程序,执行:

# portsnap fetch extract

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

# portversion
# portupgrade -a

现在,您已完成系统升级。
现在,您拥有最新的修补内核,基本系统和应用程序。