果你要使用 ports , 必需把该目录下的所有东东(嗯 , 其实 CVS 都没用
到)照原来的目录结构整个抓下来 , 如果你是用 ncftp , 就用 get -R
来抓 。一般抓下来的 ports 应该是放在 /usr/ports/ 下的对应目录下
, 如 amp 就应该放在 /usr/ports/audio/amp/ 下 , 但是并没有硬性规
定就是了 。
整个目录抓下来後 , 再来就是要执行 make 了 。在 ports 下 make 有几
种不同的参数 , 这些参数在 /usr/share/mk/bsd.port.mk 里面都有详细
的解说 。当你直接打 make 时 , 其实就是按照 fetch(抓回 source) ->
extract(检查 source 的 md5 并解开 source) -> patch(对 source 做
patch) -> configure(设定) -> build(编译) 这样一路做下来 , 把整个
ports 编译好 , 而要等到你指定了 make install 後才会真的把这个
ports 安装到系统上去 。最後安装完後可以再 make clean , 把解开的
source 等东东清除掉 。
在 make fetch 时 , 系统会依照下列顺序来寻找需要的 source:
1. /usr/ports/distfiles 下
2. /etc/make.conf 档中指定的 MASTER_SITE_BACKUP
3. Makefile 里指定的 MASTER_SITES
/etc/make.conf 内定是到 FreeBSD 总部去抓 , 不过其实一般这些
source 都可以在 ftp://freebsd.csie.nctu.edu.tw/pub/distfiles 目
录下面抓到 , 所以你可以把 MASTER_SITE_BACKUP 改成:
MASTER_SITE_BACKUP?=
ftp://freebsd.csie.nctu.edu.tw/pub/distfiles/${DIST_SUBDIR}/
节省到国外抓档的频宽 。当 make extract 後 , 会把 source 解开到
working 目录下去 。如果你想自己改一改 source , 可以在 make patch
之後到 working 目录下去修改 。然後 make configure 和 make build
时我们大概也没什麽事好做了 , 就看电脑萤幕上的字一行行的向上 ,
简单一点的 ports 可能你做十下伏地挺身它就能 make 好 , 大一点的可
能就你出去跟人聊天串门子回来後它还在跑 。
有时候呢 , ports A 会和 ports B 发生关 , 在安装 ports A 时系统
会去找 ports B , 如果找到会先装好 ports B 再回头来装 ports A , 但
是如果找不到 ports B 时就会给你一个警告 , 你就需要再去抓 ports B
回来安装 。但是这样缺啥补啥也是满麻烦的 , 即然用了 FreeBSD 就要善
用 FreeBSD 提供的好用功能 -- CTM 。首先 , /usr/ports 下最好有
50Mb 左右的硬碟空间 , 然後到
ftp://freebsd.csie.nctu.edu.tw/pub/CTM/ports-cur 下面抓回
ports-cur.????xEmpty.gz(找一个数字最大的 ???? 抓)以及所有
* > ???? 的 ports-cur.*.gz , 比如说你抓了 ports-cur.2000xEmpty.gz
, 那就要把 ports-cur.2001.gz, ports-cur.2002.gz.... 通通抓回来
。如果你抓回来的 gz 档都放在 /tmp/ctm 下 , 就使用以下指令:
cd /usr/ports
/bin/rm -rf *
ctm -v /tmp/ctm/*
这样就会把全部的 ports 通通收在你的系统上 , 以後安装时就不需要再
担心缺东少西的问题了 。而且之後如果 ports 又有更新 , 也只需要抓回
新的 gz 档 , 用 ctm 来更新即可 , 方便又省事 。
推荐阅读
- FreeBSD handbook中文版 4 安装应用程序:Packages 和Ports
- FreeBSD 管道及&&的功用
- FreeBSD Port Tree 介绍
- FreeBSD Packages和Ports使用技巧
- 用ports安装如何指定服务器
- FreeBSD 的部分Package简介
- Monitoring Interface for Apache 1.3 & MRTG
- 利用 portupgrade快速更新通过ports安装的软件
- 把Linux的密码->FreeBSD database
- Ports & Package