这篇写给 hop.net2 (hop.net-freebsd-cdrom2) 用的,若无 hop.net-freebsd-cdroms,
还是可透过网路来享用 freebsd packages,大部分只要将文件的 /cdrom/ 改成
ftp://freebsd.ntu.edu.tw/freebsd/ 即可。
packages 为 freebsd 「招牌特色」之一,喜欢「玩软体」的人更不可错过这个
「招牌特色」! ;-)
= freebsd packages 使用说明 =
(hop.net2)
若已知想安装的 package 名称为何,如 joe (一个很受欢迎的 unix editor):
cd /cdrom/packages/all; pkg_add joe-2.8.tgz
装完後在 /var/db/pkg/joe-2.8/ 会留下相关的记录。
想知道这个 packages 装了什麽东西、装在何处,可以 tar tvfz joe-2.8.tgz 看看。
若不知道有什麽 package 可用,只是想试试各种 editor,可看一下
/cdrom/packages/editors/ 的 packages,假设看到了 emacs-19.34b.tgz 觉得有
兴趣,想知道这套 package 有什麽特色:
pkg_info emacs-19.34b.tgz
此外,less /cdrom/index 有简要的说明,善用 index 可很快找到合用的
package。
x x x x x x x x x x
packages/all/ 是编好现成可用的 binary,若想自己从 source 编,可透过 ports
来做这件事,举例来说,若想看看 pine-3.96.tgz 的 source:
请把 hop.net2 (也就是本张光碟) umount(umount /cdrom),换成 hop.net1 再
mount 上去(mount /cdrom)。
cd /cdrom/cvs-2.2/ports; less index 查得(/^pine )位於 /usr/ports/mail
下:
mkdir -p /usr/ports/mail; cp -pr mail/pine /usr/ports/mail
mkdir -p /usr/ports/distfiles
cd /usr/ports/mail/pine
less files/md5 查得需要 pine3.96.tar.gz 这个档,也就是得设法将这个档
放到 /usr/ports/distfiles :
cp /cdrom/distfiles/pine3.96.tar.gz /usr/ports/distfiles
cd /usr/ports/mail/pine
make install
若要产生 package -> make package
至於 make 後面可加什麽 -> less /usr/share/mk/bsd.port.mk
如 "make extract", "make patch", "make configure" ....
/cdrom/distfiles/ 收集有 /cdrom/pkg/ (常用到的 packages) 相关的 source,
这些 source file 的「原始位(发源地)」可从 makefile 看出,files/md5 列出
了需要用到的档名,除了到「发源地(通常在国外)」抓这些档外,也可先查查附近
的网站有没有这些档,建议的查询顺序为:
1. /cdrom/disftiles
2. ftp://freebsd.csie.nctu.edu.tw/pub/distfiles
3. ftp://freebsd.ntu.edu.tw/freebsd/distfiles
4. archie -c 要找的档名,archie 有现成的 package 可装,如:
pkg_add /cdrom/pkg/archie-1.4.1.tgz
man archie 可查得更多的讯息 (export archie_host=archie.ncu.edu.tw.)
找到需要的案後,放到 /usr/ports/distfiles ,待会 make 时就不会到「发源地」
辛苦的抓档。
/etc/make.conf 也可设定 /usr/ports/distfiles 缺少的档优先从何处抓取,如:
master_site_backup?= \
ftp://freebsd.csie.nctu.edu.tw/pub/distfiles/${dist_subdir}/
master_site_override?= ${master_site_backup}
ports 还有其它有趣的用法,比如说想找中文相关的 ports
cd /cdrom/cvs-2.2/ports; make search key=chinese less
其它用法请参阅 ports 的 makefile,或查查 handbook(00www-mirror/)相关的章节。
x x x x x x x x x x
若自己有特殊需求,决定修改 source,试过後觉得很满意,想分享给其它朋友,举例
来说,pine 对中文处理有点问题,woju 做了些修改,让 pine 能中文相容:
cd /usr/ports/mail/pine/work/pine3.95/pine
cp send.c send.c.orig
cd .. (也就是回到 /usr/ports/mail/pine/work/pine3.95)
diff -u pine/send.c.orig pine/send.c > /usr/ports/mail/pine/patches/patch-woju2
... 其它的修改 ...
把相关档案压成 /cdrom/woju/patches/pine-3.95-8bit-patches.tgz
然後很高兴的到网路上 (tw.bbs.comp.386bsd) 和大家分享 :-)
上头用到 diff 的部分,woju 习惯用 "diff -u",vanilla 做了如下补充:
"core team 的标准做法是 diff -run old new"
/cdrom/woju/patches/*.txt 有相关的参考资料。
吴 庆 鸿,woju@freebsd.ee.ntu.edu.tw 台大电机,http://freebsd.ee.ntu.edu.tw
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器