免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2034 | 回复: 0
打印 上一主题 下一主题

OpenBSD升级指南 4.2 to 4.3 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-01 15:33 |只看该作者 |倒序浏览

                                                 [color="#ff9900"]××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××[color="#80ff80"]
[color="#0000ff"]OpenBSD[color="#80ff80"]
[color="#ff9900"]版权所有:www.openbsd.org
翻译:Acheng  from www.bsdplus.org[color="#80ff80"]
[color="#ff9900"]××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××[color="#80ff80"]

注意: OpenBSD升级只支持从一个发行版到紧邻的下一个发行版,请勿进行跳跃式升级。
强烈建议升级前通读这篇指南并完全理解它。如果需要升级的机器是至关重要或者是不在本地,推荐你在一个完全一样的且位于本地的系统上先进行测试,确保升级过程无误,然后再进行实际的升级。

升级是一种将系统带至最新版本的方便的方式。但是,升级的结果并不是要完全和一个全新安装的OpenBSD4.1一模一样。特别是一些旧的库文件在升级过程中不会被删除,因为一些旧的应用程序不会在此过程中升级,而它们仍然需要这些库文件。如果你确实想要删除这些旧文件,那么全新安装可能是最佳的选择。
[color="#ff0000"]内容列表:

升级前
  • libexpat  进入base43.tgz
  • httpd.conf 更新
  • hoststated(8)  重命名为 relayd(8)
  • carp(4) 更新
  • rc.conf
  • kernel 更新

升级过程
最后步骤
  • 新增及有更新的 Users  和 Groups
  • 升级 /etc
  • 检查 kernel
  • 升级软件包(packages)
  • 删除 xbase42.tgz

[color="#ff0000"]升级前:需要考虑和注意的事项
下面给出的列表并不完整,没有涵盖4.2到4.3的所有的更新,只列出了其中重要的,会在升级过程中对大部分用户产生影响的变化。想得到完整的变化列表,可以查看此页:http://www.openbsd.org/plus43.html
  • libexpat进入base43.tgz
对4.2,libexpat从ports进入了xbase42.tgz,这对那些不想安装 X 的用户造成了不便。在4.3中,libexpat从xbase42.tgz进入base43.tgz. 这对很多应用程序来说就没有必要安装xbase43.tgz了。
如果你在4.2中安装了xbase42.tgz来获得libexpat,这个变化可能会引起一些问题。由于你安装了
xbase42.tgz,那么你或者升级它,或者删除它。如果libexpat是你安装xbase42.tgz的唯一原因,删除可能是最好的解决方案。查看此链接http://www.openbsd.org/faq/upgrade43.html#rmxbase42来获取删除xbase42.tgz的详情。
同时也要注意,构建ports (building ports)只有在完整安装时才被支持,包括所有的X文件。
  • Httpd.conf变更
Httpd使用的软件包现在会将安装配置文件到/var/www/conf/modules.samples,并提示用户在/var/www/conf/modules目录创建相应的系统链接。下面这一行应该加到/var/www/conf/httpd.conf中,在LoadModule指令后((towards the end of section 1)在第一节的结尾):
#
# Include extra module configuration files
#
Include /var/www/conf/modules
这也包含在upgrade43.patch中,但对包含很多自定义内容的httpd.conf可能无法很好的应用。你应该保证这几行在你的系统中,否则安装完成后软件包添加可能会出问题。
  • Hoststated(8)重命名为relayd(8):

Hoststated(8)已被重命名为relayd(8)。这要求将_hoststated用户和组重命名为_relayd,还要更新一下/etc/pf.conf并将hoststated.conf(5)重命名为relayd.conf(5)。这里的升级过程会安装一个新的relayd.conf文件,你需要按照你的需要进行配置。
  • Carp(4)变更:

Carp(4)经历了一些变更以便让它更易于配置。如果你的carp和ARP或者IP balancing一起运行,你的配置需要相应的更改:
多个carp(4)接口共享一个IP地址为carpnodes选项取代
Sysctl(8)中的Net.inet.carp.arpbalance被arp的balancing mode(负载均衡模式)取代
用于IP负载均衡的Link0,link1和link2标识为负载均衡模式的ip,ip-stealth和ip-unicast取代
  • xenocara缺省树位置(default tree location)改变
Xenocara源码树的缺省位置现在变更为/usr/xenocara。这对那些使用源码构建(build)X的用户很重要。直接把你的/usr/src/exenocara移到/usr下即可:
# mv /usr/src/xenocara /usr
  • rc.conf:

和早期版本升级不同的是,从4.3版开始假定/etc/rc.conf不会为用户自己更改。如果你改动了/etc/rc.conf文件,将改动合并到/etc/rc.conf.local文件中。如果你的/etc/rc.conf.local不存在,直接将/etc/rc.conf复制为/etc/rc.conf.local,并将脚本的最后一行删掉!否则将rc.conf的内容添加到现有的rc.conf.local的上部并删除最后一行脚本,然后在继续升级过程。
  • 更改过的内核:

检查一下你是否对内核做过任何改改。比如,你可能曾经用config命令更改过网络设备以使用一个非默认的设置。将所有的更改记录下来,以便在新的4.3版的内核中重做这些更改。
[color="#ff0000"]升级过程
安装内核方式升级

如果你可以访问到系统的控制台,最容易也是最安全的方式就是以安装媒体或bsd.rd重启系统,然后跟随升级步骤并完成“最后步骤”中的步骤就可以了。这个过程和安装过程非常相似。
以安装内核(install kernel)启动的一个很容易的方式就是将4.3版的bsd.rd放在你的启动设备上,然后指示boot loader使用这个新的bsd.rd启动。在amd64和i386上,当系统启动至出现boot> 提示符时键入“boot bsd.rd”命令即可。
不安装内核升级
[color="#ff0000"]不推荐使用此方式。如非万不得已,请使用安装内核方式安装。

有时候,我们需要在无法使用标准的安装内核方式来升级一台机器。常见的例子就是当机器不在本地你无法访问系统的控制台时。此时的升级请仔细遵从下面的步骤:
  • 将安装文件放在一个“好”地方。确保磁盘空间足够!
  • 启动时将全部“不安全”应用程序停掉:升级期间的某个时间PF将会停止运行,但是你的应用程序将会正常启动和运行。因此任何依靠PF来提供安全保障的应用程序都应该在升级前停掉,而且在完成升级并验证PF的运行之前都不应重新启用。或许还有一些其他的应用程序你也希望在升级过程中禁用,把他们也停止。
  • 检查内核:虽然大部分人可以跳过这一步,但你如果更改过4.2版的内核,你也需要更改4.3版内核。尤其是当你远程执行升级过程的时候,你更需要确保系统在重启的时候不会出现问题。如果内核的某个方面需要调整,最安全的方式就是在一个本地的4.3系统上进行这些调整。这可能就和使用config命令调整某个设备一样简单,或者需要一次重新编译,如果你的调整没有包含在GENERIC的内核里。请在考虑重新编译内核前参阅FAQ5-Building the system from source。

  • 安装新内核
export RELEASEPATH=/usr/rel   # 你保存文件的地方
cd ${RELEASEPATH}
rm /obsd ; ln /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd
cp bsd.rd  bsd.mp  /
注意其中拷贝原来内核文件的步骤:这样可以保证即使出现意外的断电或宕机的情况,升级过程中也总有一个可以启动的内核。
  • 安装新的/etc/firmware文件:由于一些上传的firmware文件可能已经被更新过,你需要更新/etc/firmware目录。这只会影响很少一些设备的用户,但所有的用户都可以使用这一步而不会引起任何危害。要从base43.tgz文件中提取firmware文件,请以root帐户运行下面的命令:
cd /
tar -C / -xzpf ${RELEASEPATH}/base43.tgz ./etc/firmware
  • 重启新内核:可能很多人都想跳过这一步,但是它应该现在就执行。通常,新内核会运行旧的用户环境(userland)应用程序(比如reboot),但是新的用户环境常常在旧内核上无法工作。
  • 安装新的用户环境应用程序。现在不要安装etc43.tgz和xetc43.tgz,因为这样将会覆盖你现在的配置文件!

export RELEASEPATH=/usr/rel
cd ${RELEASEPATH}
tar -C / -xzpf base43.tgz
tar -C / -xzpf comp43.tgz
tar -C / -xzpf game43.tgz
tar -C / -xzpf man43.tgz
tar -C / -xzpf misc43.tgz
tar -C / -xzpf xbase43.tgz
tar -C / -xzpf xfont43.tgz
tar -C / -xzpf xserv43.tgz
tar -C / -xzpf xshare43.tgz
注意:不是所有的文件集都需要安装,但你如果原来的内核安装过某一个文件集,那你现在肯定也需要安装他们。
注意:/etc目录下的文件将会在下面的步骤中单独处理,这也是为什么现在不要安装etc43.tgz和xetc43.tgz。
  • 升级/dev。安装base43.tgz时就会将新的MAKEDEV文件拷贝到/dev下,你只需要做下面的操作即可:
cd /dev
./MAKEDEV all
  • 按下面所述升级/etc
  • 重启
在这个过程中,sendmai(8)会产生类似如下的错误信息:
Nov 1 12:47:05 puffy sm-mta[16733]: filesys_update failed: No such file or dire
ctory, fs=., avail=-1, blocksize=380204
你可以完全忽略这些信息,或者你可以在一开始就停掉sendmail服务。注意sendmail在这个时刻是无法正常工作的,需要重启(作为系统重启的一部分)才能正常运行。
[color="#ff0000"]最后步骤:
1. 新增或变更的用户和组

需要为ospf6d和snmpd新增用户,使用useradd命令来添加相应的用户和组:
useradd -u90 -g=uid -c"OSPF6 Daemon" -d/var/empty -s/sbin/nologin _ospf6d
useradd -u91 -g=uid -c"SNMP Daemon" -d/var/empty -s/sbin/nologin _snmpd
你需要用vipw(8)来编辑你的密码文件,并编辑/etc/group文件,将两个文件中的_hoststated 改为_relayd,并在vipw中将描述”HostState Daemon”改为”Relay Daemon”。保持其他行不变。
2.  更新/etc

首先将etc43.tgz解压到一个临时的目录:
tar -C /tmp -xzphf ${RELEASEPATH}/etc43.tgz
下面的文件可以直接从etc43.tgz中copy:
etc/mail/README
etc/moduli
etc/mtree/4.4BSD.dist
etc/mtree/BSD.local.dist
etc/mtree/special
etc/netstart
etc/ospf6d.conf
etc/rc
etc/rc.conf
etc/relayd.conf
etc/security
etc/snmpd.conf
var/named/etc: root.hint
注意,你可以在本地修改这些文件,但需要在修改后进行手工合并。如果你不是使用默认的sendmial配置的话,需要特别注意mail/*。下面是拷贝/粘贴这些文件的所需的命令,假定你将etc43.tgz解压到上面推荐的位置:
cd /tmp/etc
cp moduli netstart ospf6d.conf rc rc.conf relayd.conf security snmpd.conf /etc
cp mtree/* /etc/mtree/
cp mail/README /etc/mail
cp ../var/named/etc/root.hint /var/named/etc
如果你在以前版本中没有对下列文件做过更改的话,也可以直接拷贝,否则请将更改手工合并:
etc/changelist
etc/chio.conf
etc/ftpusers
etc/mail/aliases
etc/ssh/sshd_config
etc/sudoers
etc/sysctl.conf
var/named/etc/named-dual.conf
var/named/etc/named-simple.conf
var/named/etc/named.conf
var/www/conf/httpd.conf
var/www/conf/mime.types
var/www/htdocs/manual/mod/core.html
var/www/htdocs/manual/server-wide.html
对这些文件的变更存放在这个补丁文件(http://www.openbsd.org/faq/upgrade43.patch)中。你可以试着以root用户运行下面的命令来使用此文件:
cd /
patch -C -p0 这个命令将会测试这些变更和你的系统的匹配情况;如果你想真正的应用这些变更,请去掉“-C”参数。注意,如果你曾经自定义过这些文件,或者这些文件没有及时更新,或者你是从4.2的某个snapshot进行升级,这些变更可能不会完全地应用到你当前的系统上。在这样的情况下,你需要手工应用这些变更。如果你无法轻松访问某台机器的控制台,请在应用前先进行测试。
各个平台上的/etc/ttys已经变得更有连贯性,但这也让更新这个文件变得更令人激动。推荐你将这个文件copy过来,手工将任何更改合并到新文件中:
mv /etc/ttys /etc/ttys.orig
cp /tmp/etc/ttys /etc
下面的文件有些变更,你应该查看一下,但是他们不大可能需要直接拷贝或合并(比如,如果你在使用pf.conf,看一下其中建议的策略变更,然后决定它们是否使用于的你的用途)。
/etc/pf.conf
有几个文件在4.3中不再使用,你可以删除它们:
rm /etc/hoststated.conf /var/named/standard/root.hint
最后,使用newaliases更新aliases数据库,用mtree创建新的目录,更改/etc/chio.conf的所有者和访问权限:
newaliases
mtree -qdef /etc/mtree/4.4BSD.dist -p / -u
chown root:operator /etc/chio.conf
chmod 644 /etc/chio.conf
3. 检查内核

注意:大部分用户可以跳过这一过程。
如果你是按照指示进行不安装内核方式的升级,你已经完成。但是如果你用的是安装内核的方式并且你曾经对4.2版的内核做过修改,很可能你需要更改4.3版的内核。
这可能就和使用config命令调整某个设备一样简单,或者这意味着需要一次重新编译,如果你的调整没有包含在GENERIC的内核里。请在考虑重新编译内核前参阅FAQ5-Building the system from source。
4. 升级软件包
如果你在系统上安装了任何软件包(package),你应该在完成系统升级过程后对他们进行升级。但是请注意,很多软件包需要在升级前或升级后进行进一步的配置。请具体信息请参考这些软件的升级指南。

此软件包支持使用pkg_add -u选项直接进行升级。比如,要升级你所有的软件包,首先将PKG_PATH变量指向你CD上或者是最近的FTP镜像上的软件包目录,然后使用下面的命令:
# pkg_add -ui -F update -F updatedepends
这里-u表明升级模式,-i指定互动模式,以便在pkg_add遇到有歧义时提示你输入选择。更多信息,请参考pkg_add的用户手册和FAQ的软件包管理部分。
5. 删除xbase42.tgz

如果你安装了xbase42.tgz来为那些需要libexpat的软件包获取libexpat,在4.3中你就不再需要它了。你可以删除它,或者安装xbase43.tgz。
如果你想要删除它,你可以使用下面的命令:
# mv /usr/X11R6/lib/libexpat.so.* /usr/lib
# rm -r /usr/X11R6 /etc/X11 /etc/fonts
如果你想要安装xbase43.tgz,那么你需要先清理旧的libexpat文件:
# mv /usr/X11R6/lib/libexpat.so.* /usr/lib
# rm /usr/X11R6/lib/libexpat*
# rm /usr/X11R6/include/expat*
----完----
www.OpenBSD.org                                                                                                     
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/8598/showart_654146.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP