电脑技术学习

packages/ports 使用说明

dn001
这篇写给;hopenet2;(HopeNet-FreeBSD-CDROM2);用的,若无;HopeNet-FreeBSD-CDROMs,
还是可透过网路来享用;FreeBSD;packages,大部分只要将文件的;/cdrom/;改成
ftp://freebsd.ntu.edu.tw/freebsd/;即可。

packages;为;FreeBSD;「招牌特色」之一,喜欢「玩软体」的人更不可错过这个
「招牌特色」!;;-)

=;FreeBSD;packages;使用说明;=
(hopenet2)

若已知想安装的;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:

请把;hopenet2;(也就是本张光碟);umount(umount;/cdrom),换成;hopenet1;再
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

标签: