OpenBSD 4.7如何更新为稳定版

OpenBSD的安装、升级、更新等日常问题。

版主: chenjun天地乾坤

回复
头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

OpenBSD 4.7如何更新为稳定版

帖子 leo » 2010-09-23 12:34

一般情况下,我们获取OpenBSD的途径是下载一份最新的OpenBSD的发行版,当前最近的发行版为4.7,发行版还针对很多的硬件平台,可运行OpenBSD的硬件平台,请参阅《OpenBSD FAQ 中文版》第一章的第二小节——OpenBSD支持哪些平台,因为,支持的平台太多,我们不可能逐一举例说明,我们这里以目前最流行的64位平台(amd64或intel64)为例,它对应的发行版是amd64。对于新手来说,您需要的是下载一张amd64平台的发行版ISO镜像文件,等您对OpenBSD系统有了进一步了解后,你会惊喜的发现OpenBSD的安装方法竟然有如此之多,可能会有老手向您介绍,根本就不需要刻盘,可以直接采用其他的方式安装......,但是如果您是第一次接触OpenBSD,我们这里还是建议您保留一张自己平台的最新的发行版,这样也可以今后维护系统和实现在其它同类机器上快速安装。—— 这里仅介绍对新手来说最容易理解的步骤。

如果会员对"更新"和"升级"的概念有些不理解,无法确定自己的跟进方向,请参阅:《OpenBSD FAQ》中文版第五章. 从源代码构建系统 ,我们这里仅说明更新为稳定版的具体步骤。

下面以amd64平台为例:
一. 下载OpenBSD的最新发行版4.7的ISO镜像
下载地址为:
ftp://ftp.openbsd.org/pub/OpenBSD/4.7/a ... tall47.iso
将ISO文件刻盘。

二. 安装OpenBSD(这里略过,不熟悉的会员请自行参阅这里

三. 为了后面节省更新源代码的时间,下载发行版、ports树、以及X的源代码:

代码: 全选

# cd /usr
# ftp -i ftp://ftp.openbsd.org/pub/OpenBSD/4.7/
> mget *.tar.gz
> quit

四. 将发行版、ports树和X的源代码分别释放到系统内

代码: 全选

# cd /usr/src
# tar xzf ../sys.tar.gz
# tar xzf ../src.tar.gz
# cd /usr
# tar xzf xenocara.tar.gz
# tar xzf ports.tar.gz

五. 设置更新使用的CVS服务器并更新源代码
我这里给一个最快的美国服务器:

代码: 全选

# cd /usr/src
# export [email protected]:/cvs
# cvs -d$CVSROOT up -rOPENBSD_4_7 -Pd
如果你无法从上面的服务器获取最新的源代码上面的服务器,去这里找一个自己能用的cvs服务器

六. 编译和安装新内核

代码: 全选

# cd /usr/src/sys/arch/amd64/conf
# config GENERIC
# cd ../compile/GENERIC
# make clean && make depend && make
    [...lots of output...]
# make install

七. 编译二进制包

代码: 全选

# rm -rf /usr/obj/*
# cd /usr/src
# make obj
# cd /usr/src/etc && env DESTDIR=/ make distrib-dirs
# cd /usr/src
# make build

八. 重新启动计算机后就可以享用稳定版的OpenBSD了。

编后语
至于在哪里释放源代码的tar.gz文件,根据官方的说明是在/usr 里,实际上这是无所谓的,只要你有足够的空间,放在哪里都可以。
实际你完全可以根据自己的需要将源代码的“嵌入到”下载的发行版的ISO里面,节省以后的下载时间,甚至可以做一张自己的“官方发行版”,详情请参阅FAQ。
此外你可能觉得很奇怪,为什么不发行稳定的ISO镜像文件呢?—— 这个吗?如果一年有10个补丁,你是不是要刻录10张“稳定版”?不过,如果你自己喜欢,完全可以做一个——我有时就是这样做一个自己的稳定版——因为补丁并不多,而且这样方便在多台计算机中安装。

头像
lionux
锌 Zn
帖子: 457
注册时间: 2010-02-04 11:09

帖子 lionux » 2010-09-23 21:18

按照补丁文件里写的做就可以了。

头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

帖子 leo » 2010-09-23 22:02

对,这是也是一个简单的方法,不过有时候补丁也编译不过去。

头像
lionux
锌 Zn
帖子: 457
注册时间: 2010-02-04 11:09

帖子 lionux » 2010-09-23 22:42

leo 写了:对,这是也是一个简单的方法,不过有时候补丁也编译不过去。

只用发行版源码打补丁能通过,官方支持的。

头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

帖子 leo » 2010-09-24 3:00

没错,这也是方法之一,http://openbsd.gobsd.org/stable.html这里有详细的描述。
但也请注意这里http://openbsd.gobsd.org/faq10.html#Patches,也就是说,这种方法并非最简单的,某些情况下您可能需要重新编译所有静态链接到该补丁程序的库文件,还有就是有时候你不得不先获取整个稳定版的源代码后才能将补丁成功编译。此外,并非所有的bug修正都会以补丁的方式公布出来,只有那些对多数用户有影响的bug修正,才会在勘误表上公布出现,而其它一些仅对少数用户有重大影响的bug修正则可能出现在补丁分支里——也就是cvs库中,个人以为原文这里的"可能"暗示得很有意思,这个“可能”的含义也许是不言而喻的,只不过人家没有明确地说出来罢了,而且原文也声明了因为开发者精力有限,不会进行大工作量的补丁修正,如果需要这类修正,开发人员会将其通过当前版发布。不过反过来想,即使人力允许公布所有的bug修正,会不会可能出现不是一个数量级的patch文件,那还谈何稳定和安全呢?——是否这也是OpenBSD鼓励用户使用当前版的用意所在,也就是所有的已知补丁在不知不觉中(不公布)都被修正了(有的可能会仅出现在当前版中)。个人的猜测,如有对OpenBSDfans的冒犯,敬请海涵。:o

总之,根据个人理解,一楼的方法看似麻烦,但是在实际操作中用户不用太关注补丁的类型和应用方法,这对新手来说反而是最好的方法,因为这是不容易出错的方式——也是官方推荐的方式,所以可能是多数情况下最简单的方式。

头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

帖子 leo » 2010-09-24 4:22

lionux 写了:只用发行版源码打补丁能通过,官方支持的。
你是老手了,1楼的这个方法对你不具备挑战性,自然也没有吸引力了。:p

头像
lionux
锌 Zn
帖子: 457
注册时间: 2010-02-04 11:09

帖子 lionux » 2010-09-24 10:06

我觉得还是得看下说明,因为有多种情况,你只介绍的升级到稳定内核,有时会更新内核以外的,补丁还分与所有平台有关的和只针对某个平台的需要根据自己情况来做。

头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

帖子 leo » 2010-09-24 10:10

对,我也会注意一下,与自己无关的我一般也不打,毕竟编译二进制讨厌,很费时间,而且有时候也是过不去。

所以修补有三个选择方案:
1. 应用补丁
2. 按照上面的做法重新编译系统
3.升级到当前

实际上最先尝试的应该还是你说的方案1,但是这个选择并非对所有人都适合。

我再写一个怎样应用patch的帖子。

头像
lionux
锌 Zn
帖子: 457
注册时间: 2010-02-04 11:09

帖子 lionux » 2010-09-24 10:29

建议写个怎么看patch文件,根据说明来打补丁。
看了下发现4.7的001,003补丁都不是针对内核的。

头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

帖子 leo » 2010-09-24 10:33

这没有什么规矩吧?vi、mg、cat、more、head全可以吧,这个还真没有仔细研究过,如果真有规矩就要认真看看了。
================================
没仔细看你的帖子, 刚明白过来啥意思。

回复

在线用户

正浏览此版面之用户: Ahrefs [Bot] 和 0 访客