FreeBSD软件更新管理

安装完BSD只是服务器提供服务这条万里长征路的开始,还需要一些基本的设定和优化。不过实际上,即便不优化,FreeBSD现在也可以很安全的提供服务,决定权在你。
安装完BSD只是服务器提供服务这条万里长征路的开始,还需要一些基本的设定和优化。不过实际上,即便不优化,FreeBSD现在也可以很安全的提供服务,决定权在你。
 
1.安装及更新ports树
 
有些接触过FreeBSD的一定知道portsnap,这是freebsd下软件更新的利器。或者说也是唯一的途径。ports,可以理解为是FreeBSD所维护的一个庞大的应用软件列表,你所需要的和不需要的软件,几乎都可以在这个列表下找到。而portsnap,顾名思义,就是ports的快照。运行portsnap会把目前最新的远端ports树结构以及树下所有软件的最新稳定版的编译文件列入服务器的ports树中。ports如何使用,我们以后再讲,先不要着急使用portsnap。先完成以下步骤,你会发现,ports会更快,安装软件也会更快。
 
#cd /etc
#vi portsnap.conf

找到portsnap.FreeBSD.org

将其改为portsnap3.hshh.org

保存退出
 
我是网通用户,所以用3号镜像。镜像列表如下
portsnap.hshh.org(电信)
portsnap2.hshh.org(电信)
portsnap3.hshh.org(网通)
portsnap4.hshh.org(电信)
 
这是国内的portsnap镜像,更新速度会更快。我见过无数linux装好后就再也不更新,导致漏洞一大堆,并不完全是系统管理员的问题,这跟yum或者apt的包维护也有关系。FreeBSD完全不用担心这一点,只要你自动设定portsnap,自动upgrade,即便你放在那里一年,你的软件也会是最新的。不过一般不建议这样做。后面会讲到。
 
然后,执行下述命令
 
#portsnap fetch extract
更新你的ports树吧,国内的镜像速度飞快。大约会下载63-64M的port包。然后等待解压缩完成即可。现在,你的ports树就是最新的了,尽管去编译安装软件吧。需要更新,可以运行下述命令
 
#portsnap fetch update
portsnap采用增量更新的方式,第一次需要执行fetch extract,以后只需要执行fetch update即可,增量更新的更新量很小,速度飞快。
 
2.更新FreeBSD系统文件
 
没有人能保证操作系统完美无缺,即便是发行版也不能,但在发现补丁后及时打上,是最明智的做法。这一点上FreeBSD也做得相当人性。那么,更新系统文件之前,我们也需要改一个配置文件,会让你变得更快。
 
#cd /etc
#vi freebsd-update.conf

找到ServerName update.FreeBSD.org

将update.freebsd.org
改为freebsd-updates.mirrors.163.com

保存退出
然后就可以了,运行下面的命令更新吧,更新之前可以看一下uname -a,以8.2为例,会显示FreeBSD 8.2-RELEASE
 
#freebsd-update fetch
#freebsd-update install
更新完成后重启,再打uname -a,会显示FreeBSD 8.2-RELEASE-p4,显示系统补丁已经打上了。
 
这些命令,你都可以加入到crontab中定期自动运行。
 
3.软件安装源配置
编辑一个文件,这个文件在新装的freebsd系统中是不存在的,除非你用ports安装过软件,否则不会生成这个文件。所以,在新装系统中需要手动创建这个文件。
 
#vi /etc/make.conf

然后输入以下内容
MASTER_SITE_BACKUP?=http://mirrors.163.com/FreeBSD/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}
保存退出,这样你在用ports安装的时候,就会直接连接到163的镜像,速度会更快。不过有一个缺点,就是最新的软件发行包通常不会及时更新,大概需要3-4天或者更长的时间,163镜像才会与freebsd同步过来,不过,however,有国内镜像总比没有强。
 
一般不推荐用pkg_add方式直接安装二进制文件,这样不够优化,最好是通过ports树进行编译安装。除非有特殊的要求,所以我先不写PACKAGESITE变量的设置。
 
4.软件安装
 
这是我最欣赏freebsd的优点之一,软件收集全面,分类明确,安装简便,编译安装方式足够适应系统并优化。配置文件集中管理,绝对节省人类的时间,比起LINUX到处找编译文件要强太多了。
 
举例,比如我要需要安装nginx,我在这里假设你已经更新过ports树了,在我写这个文章的时候,最新的frebbsd nginx版本为1.0.8,1。
 
运行下列命令进行安装
#cd /usr/ports/www/nginx
#make install clean
会弹出选项,按照需求进行选择,然后OK,等待编译完成吧,这个软件就装完了。安装过程中会自动检测依赖关系,并自动下载依赖软件编译。这比糟糕透顶yum强不知多少倍,且不论yum是安装二进制文件,而且经常找不到依赖包,装完之后你还需要find配置文件,浪费时间!freebsd的配置文件全部集中管理。无论你通过ports安装什么软件,如果他存在配置文件,请到下面这个路径里找
 
#cd /usr/local/etc
ubuntu好像也是这个路径,但是,我用apt-get安装后,基本这个路径里什么都没有。
 
4.运行你安装的软件
 
这里有一点小麻烦,但绝对不大,只占用你大约不到30秒的时间。如果你安装了应用软件,比如nginx,请按照下列步骤完成
 
#vi /etc/rc.conf

然后新起一行,输入

nginx_enable="YES"

保存退出
然后运行下面的命令
 
#cd /usr/local/etc/rc.d
#./nginx start
你的nginx就启动了,访问你的服务器,看看welcome to nginx吧。