FreeBSD cvsup:使用源代码从以前的发行版更新FreeBSD
问题描述:如何使用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
现在,您已完成系统升级。
现在,您拥有最新的修补内核,基本系统和应用程序。