第12 页FreeBSD 使用手册
它一般是纯文本的,基本上说是些象“delete line 23”,“add these two lines after line
468”,或“change line 197 to this ”这样的东西 。它们以diff 闻名,因为它们是由diff
这个程序产生 。
4.3.1.5. tarball 是指什么?
它就是以.tar 结尾的文件,或者是诸如以.tar.gz,.tar.Z,.tar.bz2,.tgz 结尾的文件 。
基本上,它是一个已经被打包或压缩的目录树 。这种技术最早被用于磁带机上,但后来它被
广泛运用于互联网上用来发布程序源代码 。你可以看到在它里面有些什么文件,甚至你可以
亲自使用标准的UNIX tar 程序解开它们,只要这样做:
% tar tvzf foobar.tar.gz
% tar xzvf foobar.tar.gz
% tar tvf foobar.tar
% tar xvf foobar.tar
4.5.1.6. 那checksum 呢?
这是一个由统计检查文件里所有资料而产生的数字 。如果有任何字符改变了,那
checksum 就不会再跟统计的结果一样,所以经过简单的比较就可以看出差异 。
4.5.1.7. 我照上面说的方法从光盘编译port 都很顺,怎么一安装kermit 就出错?
# make install
>> cku190.tar.gz doesn"t seem to exist on this system.
>> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.
为什么找不到,难道这张光盘没有用?
就像在从光盘编译ports 那节所解释的,有些port 因为授权的限制不能放进光盘 。Kermit
就是个例子 。Kermit 的授权不允许把它做的tarball 放进光盘,所以必须自己动手下载
------真是抱歉!
会有这些错误信息是因为当时没有连上网络 。只要从MASTER_SITES (列在Makefile 里)中
所列的任一个网站把文件下载下来,就可以重新开始安装的步骤了 。
4.5.1.8. 我照做了,可是当要把文件放进/usr/ports/distfiles 时却得到没有许可的错误
信息 。
Port 的机制是到/usr/ports/distfiles 中找tarball,可是因为它是符号连接(symlink)
到光盘的,所以那个目录只读而且也没有办法复制任何东西进去 。用下面说的方法就可以让
它去找其它地方:
第13 页FreeBSD 使用手册
# make DISTDIR=/where/you/put/it install
4.5.1.9. Ports 的设计是只有把所有东西都放在/usr/ports 下才能用吗?系统管理员说要
把所有东西都放在/u/people/guests/wurzburger 下,不过这样好象不能用 。
可以用PORTSDIR 和PREFIX 这两个变量来告诉port 用别的目录 。例如,
# make PORTSDIR=/u/people/guests/wurzburger/ports install
会在/u/people/guests/wurzburger/ports 里编译port 并把所有东西安装在/usr/local 下 。
# make PREFIX=/u/people/guests/wurzburger/local install
会在/usr/ports 里编译port 并安装至/u/people/guests/wurzburger/local 。毫无疑问的,
# make PORTSDIR=.../ports PREFIX=.../local install
会结合这两种(要在这页完整的写出来太长了,不过它应该给你点概要了) 。如果不想每次安
装一个port 就要把这些字再打一次,把这设置放到环境变量里会是个好主意 。读读shell
的联机手册来获得做这些事的指导 。
4.5.1.10. 我没有FreeBSD 的光盘,不过我想要把所有的tarball 放在手边,这样就不用
每次装一个port 就要等待下载 。有什么好方法可以一次全下载下来吗?
要得到ports collection 每个tarball 的话,执行:
# cd /usr/ports
# make fetch
4.5.1.11. 我知道从临近的FreeBSD mirror 站下载比较快 。可是有办法从其它
MASTER_SITES 上面没有的站下载port 吗?
可以 。如果知道的话,例如ftp.FreeBSD.org 比MASTER_SITES 上面列的任何站都近,
那就这么做:
# cd /usr/ports/Directory
# make
MASTER_SITE_OVERRIDE=ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/
fetch
4.5.1.12. 要怎样在make 去下载文件前先知道所需的文件?
推荐阅读
- FreeBSD下如何访问MS-DOS文件系统
- FreeBSD下网络备份Net Backup System的实现
- FreeBSD下基于DNS的负载均衡
- IPFILTER 使用FreeBSD配置基于ADSL的VPN防火墙网关
- 一 FreeBSD kernel 编译大法
- FreeBSD 新软件安装
- FreeBSD MRTG-Packet Count
- FreeBSD 文件和目录查找
- FreeBSD 后续设定
- 在FreeBSD上使用minimalist组建邮件列表