`
- 浏览:
239260 次
- 性别:
- 来自:
北京
-
更新FreeBSD
完成了安装、配置,FreeBSD基本上就算装完了。不过,目前为止没有哪个通用操作系统能够保证“bug-free”,FreeBSD也一样。在重新启动之后,我们需要做一些调整;并且,通过重新配置内核,我们可以得到一个更小、更快的操作系统。
第一步要做的是同步源代码。FreeBSD是一套开放源代码的操作系统,它的全部源代码都可以通过cvsup与中央cvsup服务器,或它的某个镜像同步。
cvsup是一个可选的package,同样的,它也可以从ports里面安装(/usr/ports/devel/cvsup和/usr/ports/devel/cvsup-nogui)。考虑到许多应用程序都依赖X的库文件,在前面安装的部分我安装了它,并且直接安装了cvsup的package。不过,如果你有足够的耐心去一个一个地make需要的ports,那么先安装ports collection,然后make cvsup-nogui也是一个不错的主意,尽管这需要比较长的时间。
创建一个用于cvsup(1)的supfile,命名为stable-supfile:
(default host中选定的cvsup服务器――ftp.bjpu.edu.cn对访问的IP进行了限制,笔者只在北京工业大学校内使用过,因此如果您无法连接这个服务器,请尝试www.cn.freebsd.org,或cvsup.freebsd.org)
*default host=ftp.bjpu.edu.cn
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_4
*default delete use-rel-suffix
src-all
ports-all tag=.
随后执行
cvsup -g -L 2 stable-supfile
这里需要稍微解释一下FreeBSD的几种版本。
FreeBSD包括3类分支:-RELEASE,-STABLE和-CURRENT。FreeBSD 3.x、4.x和5.0是目前受到维护的版本,如果你期待稳定运行,那么,可以选择的最新版本将是FreeBSD 4.6-STABLE(如果你是在4.6.2-RELEASE发行之后更新的,那么它实际上比4.6.2-RELEASE新,并且,它正式的CVS tag是RELENG_4,即FreeBSD 4-STABLE)。
那么,三类分支有什么区别呢?
FreeBSD的开发是非常活跃的。系统中可能会随时引入一些新的特性。最新的代码是在-CURRENT分支中引入的。-CURRENT的修改非常频繁,每天都可能有数百处修改。使用-CURRENT分支的FreeBSD需要耐心和勇气,因为你的系统随时可能崩溃(随着FreeBSD 5.0开发尾声的接近,这种现象已经越来越少),make world也可能空手而归(没有人保证-CURRENT分支能够正常编译),此外,这个分支的性能也不好(因为调试的原因,这个分支引入了大量的调试选项,这意味着运行速度不会太快)。当然,正像它的名字那样,-CURRENT分支的版本也是最新的5.0,而且,一切FreeBSD的错误和漏洞的修正都是首先在-CURRENT分支引入的。目前,-CURRENT分支硕果仅存的只有FreeBSD 5-CURRENT(指定cvs tag时写“.”),这个分支包括了FreeBSD 5.0开发的最新进展。
FreeBSD 5中将引入大量的新特性,包括核心级线程(目前FreeBSD中的线程支持仅限于用户级线程,这在多处理器的环境下性能不够好,当然,目前使用fork()来支持的多进程线程模拟能够提供类似核心级线程的功能,但并不是所有的程序员都知道如何使用fork)、完整的Soft Updates(这一变化将提供更好的文件系统性能,同时提供更好的稳定性),等等。如果你有快速的Internet连接,一台或一些空余的机器(当然,不是生产用的服务器),并且希望为FreeBSD的开发作贡献,或者你关心操作系统的最新发展,那么,-CURRENT分支是最好的选择。此外,
由于-CURRENT分支性能不好、稳定性不够等这些缺点,对于生产的服务器来说,通常运行的应该是FreeBSD-STABLE。如同它的名字那样,FreeBSD-STABLE的目的是“稳定地运行”。-CURRENT分支中的代码,在经过一段时间(通常是7到90天,但安全更新属于特例,通常会在几个小时)的验证之后,符合版本条件(有些新特性只能用于FreeBSD 5.0)的代码会被FreeBSD-STABLE吸收,这个操作称作MFC(Merge From -CURRENT,不是Microsoft Foundation Classes:P)。
由于FreeBSD 5.0的第一个RELEASE至今仍然没有发布,因此,目前还没有5.0-STABLE。目前,FreeBSD-STABLE有两个版本,FreeBSD 3-STABLE和FreeBSD 4-STABLE,分别对应3.x和4.x的最新稳定版代码(对应的cvs tag分别是RELENG_3和RELENG_4)。由于版本的更新换代,其中3.x的-STABLE正在逐渐消亡。FreeBSD-STABLE每天平均会修改10个左右的文件。
每隔一段时间,FreeBSD的发行工程组(Release Engineering Team)会对FreeBSD-STABLE的源代码树进行锁定。这段时间(目前的规定是30天,之前还有30天准备)内,所有的MFC操作都需要发行工程组的批准,因此,FreeBSD-STABLE在这个阶段基本不会引入任何新的特性。经过这段时间之后,发行工程组会在最后锁定ports树,并build一份所有的package,之后,这份锁定的-STABLE,可能经过若干RC(Release Candidate),被命名为RELEASE,并制作光盘发行。
顾名思义,-RELEASE的设计目标是“发行”。一个版本一旦RELEASE,那么他的功能就不会再增加了。此后的所有维护的目标都只有一个,那就是绝对稳定。如果你和-RELEASE分支同步,那么绝不会出现make无法通过的情况,而且,通常这也可以保证你的系统“绝对”稳定,因为它不会引入任何新功能(例如,4.6就是4.6,如果你想要4.6.2的功能,必须明确地指定4.6.2)。
目前,FreeBSD有很多RELEASE版本,它们的cvs tag如下。我个人建议使用最新的4.6.2-RELEASE。
对于多数人来说,-RELEASE是一个比较极端的选择。无论何时出现版本升级,如果你想跟进,那都必须修改supfile,如果你选择不跟进,那么就可能造成ports工作异常。如果经常更新,-RELEASE可以保证操作系统本身的安全性,但同其他分支一样,如果ports出了问题,那么也得一块make,而既然这样,还不如使用-STABLE。
如果你符合下面的条件,那么RELEASE分支可能比-STABLE分支更适合你
你使用的软件对于操作系统的变化非常敏感,比如,它只能FreeBSD 4.5,而无法在4.6上运行;同时,你不打算采用它的更新版本,或者它的作者拒绝更新
操作系统的更新对于你来说没有任何意义,比如,你打算把FreeBSD当作一个相对固定的嵌入式操作系统来使用,例如,作为防火墙的一部分
更新会对你造成困扰,操作系统的绝大多数新特性对于你来说除了增加烦恼之外,不能带来任何其他东西。
-并且,符合以下的全部条件-
你每天察看FreeBSD,以及使用的全部软件的安全公告
你的Internet连接比较通畅
目前我本人维护的所有主机,除了作为防火墙的那台之外,使用的都是FreeBSD-STABLE。
一旦同步完源代码,就应该对整个系统进行更新。如果你没有每天察看安全公告的习惯,那就应该关心一下cvsup到底更新了哪些代码。nectar是目前FreeBSD的Security Officer。如果你发现他一下子更新了许多代码,那么对你来说立即make world和kernel很可能是必需的。
为了更新整个系统,在/usr/src中执行
make world
以及
make kernel KERNCONF=内核配置文件名
当然,也可以连起来执行:
make world kernel KERNCONF=内核配置文件名
如果你的计算机运行速度较慢,那么,对于基本系统的更新(相当于不包括库的一次world),可以用
make most
替代make world,但make world是一个不错的主意,因为它能够保证对C运行环境的改变应用到所有的程序中,如果修正的不是动态连接的C函数库,那么make world可以保证代码的一致性。
make kernel是一个需要重新启动的操作。如果你的make world修改了系统的关键服务,那么最好也重新启动一下。我很少有耐心看完make world和kernel的执行,根据系统的运行速度不同,这需要一个小时到一天的时间,而且,不是所有的SSH客户端都能够长时间正确的执行,例如,SecureCRT的多个版本都有内存泄漏问题。
为了解决这个问题,我用下面的命令来完成更新:
make world kernel KERNCONF=内核配置文件名 clean > /var/log/world,out && reboot &
这个命令能够记录更新的全过程,如果在什么地方编译失败,你可以很快地找到原因。对于多数人来说,由于后面的&&,只需要察看uptime就能知道便以是否成功。
需要说明的是,FreeBSD的make world并不总能成功。有时需要修改一些环境变量才能成功完成make。为了保证make成功,在/usr/src中执行任何make操作之前,建议你看一眼UPDATING中是否有特殊的要求(这种要求并不是在FreeBSD Release的时候才会出现,很多时候他会在某个CURRENT中引入,然后随着MFC进入-STABLE分支),并且,在进行大的版本升级之前(跨RELEASE,甚至主版本号),首先执行下面的命令
mergemaster -p
并在make world之后执行
mergemaster -i
运行mergemaster脚本需要一定的Unix配置知识,不过,由于配置文件中包含很多帮助信息,因此,只要master.passwd、group这样的文件不出大问题(如果cvsup更新了master.passwd,那么就需要留神,因为master.passwd标准配置是root口令为空,这时需要用m来合并,而不是使用i安装),mergemaster并不会引入什么新的问题。
前一条命令是更新make的配置(/etc/defaults/make.conf和/etc/make.conf)。对于多数人来说,除非进行跨版本升级,否则一般情况下是不需要这样做的。后一条命令是同步全部配置,并安装以前不存在的配置文件,而不进行提示。
笔者曾经遇到过FreeBSD因为系统日期不正确而无法make的情况,因此,再次特别提醒大家,如果你的系统日期不正确,最好是用date命令修改一下,或者干脆用ntpdate或ntpd来同步时间。关于如何使用ntp,将在以后说明。
以后我们将讲解FreeBSD内核的配置,以及如何配置make.conf来优化FreeBSD的编译结果。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
**FREEBSD安装与优化全攻略** FreeBSD是一种开源的类UNIX操作系统,以其稳定性和安全性而闻名,广泛应用于服务器环境和嵌入式设备。本攻略将深入探讨如何安装FreeBSD以及如何进行系统优化,以实现最佳性能和可靠性...
FreeBSD是一款强大的类Unix操作系统,因其稳定性、安全性和性能优化而备受服务器管理和技术爱好者的青睐。随着版本更新和技术进步,FreeBSD支持从U盘安装已成为一种便捷高效的安装方式。本文档基于一篇名为《FreeBSD...
### FreeBSD基本安装与汉化详解 #### 一、FreeBSD简介 FreeBSD是一种类Unix操作系统,以其稳定性、安全性和性能而著称。它基于Berkeley Software Distribution (BSD)的源代码,提供了强大的网络功能和广泛的硬件...
**一、FreeBSD的下载与安装** 1. **选择版本**:FreeBSD有多个稳定版本,如12.x和13.x系列,要根据自己的硬件兼容性和需求选择合适的发行版。 2. **下载ISO镜像**:访问FreeBSD官网,选择对应版本的ISO镜像进行下载...
FreeBSD 是一个开源的类 Unix 操作系统,以其稳定性和安全性著称,尤其适合用作服务器平台。本文将详细讲解如何在 FreeBSD 上搭建 Web ...不断学习和理解FreeBSD的特性和工作原理,将有助于更好地管理和优化Web服务器。
一、FreeBSD安装与系统配置 1. 安装流程:FreeBSD提供了多种安装方式,包括光盘、USB设备、网络安装等。用户可以根据自己的硬件环境选择最适合的安装方法。 2. 分区规划:合理规划硬盘分区对于系统的高效运行至关...
这本书《FreeBSD 6.0架设管理与应用》旨在帮助读者深入理解和实践在FreeBSD 6.0版本上的系统配置、管理和应用程序的使用。 一、FreeBSD基础 FreeBSD基于Berkeley Software Distribution (BSD) 的衍生版,它具有强大...
**FreeBSD新手安装指南** FreeBSD是一款开源的类UNIX操作系统,以其稳定性、安全性和灵活性而闻名。对于初学者来说,安装FreeBSD可能会遇到一些挑战,但通过以下详细步骤和注意事项,您将能够顺利进行。 **1. 获取...
在FreeBSD 11.0操作系统中安装Drupal 7.51是一个相对复杂但非常值得学习的过程,因为FreeBSD以其稳定性和安全性著称。Drupal是一个流行的开源内容管理系统,用于构建功能丰富的网站。以下是对这个过程的详细说明: ...
在FreeBSD操作系统上安装并配置CompizFusion桌面环境是一个技术性强且有趣的过程,它可以为用户提供炫酷的3D特效和高度自定义的工作环境。CompizFusion是Compiz的一个分支,它集成了多种视觉效果插件,为Linux和类...
根据给定的信息,本文将详细解释FreeBSD操作系统...综上所述,通过合理的系统配置和优化,以及采取有效的DDoS防御措施,可以在FreeBSD环境下搭建一个高性能、稳定的Web服务器。这对于维护网站的安全和稳定性至关重要。
2. **安装与配置**:详细讲解FreeBSD的安装过程,包括硬盘分区、选择安装类型(例如,标准系统、开发者环境等)、网络配置以及后续的系统初始化和更新。 3. **FreeBSD文件系统**:介绍FreeBSD的FHS(Filesystem ...
**FreeBSD:开源操作系统的深度探索** FreeBSD是一款基于UNIX的开源操作系统,以其稳定性和高效性能而备受赞誉。...《FREEBSD安装与优化全攻略.pdf》这份文档将更深入地介绍这些内容,帮助你成为FreeBSD的驾驭者。
2. `FreeBSD-13.2-RELEASE-amd64-disc1`:这是一个适用于AMD64(也称为x86_64)架构的安装光盘映像。"disc1"表示它是安装过程的第一部分,可能包含基本系统和必要的工具,以启动安装过程。 3. `FreeBSD-13.2-RELEASE...
Apache、PHP、MySQL和Zend是构建Web服务器的关键组件,在FreeBSD系统中,这些可以通过ports来安装和配置。Ports系统提供了一种便捷的方式,允许用户定制安装所需的软件,并自动处理依赖关系,避免了在Linux中手动...
手册共200多页,深入浅出地介绍了FreeBSD的核心组件、系统管理以及优化策略。 1. **FreeBSD简介** - FreeBSD源自伯克利软件发行版(BSD),它遵循BSD许可证,提供了一个自由、开放源码的环境。 - FreeBSD的特点...
2. 安装 FreeBSD:本手册提供了 FreeBSD 的安装步骤,包括下载安装镜像、创建启动介质、启动安装程序、配置网络、安装基本系统等步骤。 3. FreeBSD 的基本命令:本手册介绍了 FreeBSD 的基本命令,包括文件管理、...