FreeBSD Packages和Ports使用技巧

FreeBSD的Packages和Ports绝对是一种完美的应用程序的安装和配置及反安装的解决方案 , 可以说完全可以同RedHat的RPM方案相比 , 只不过RPM的商业运做比较成功罢了 。
下面是FreeBSD HandBook中文版里面的一些技巧 , 供大家参考 。
4.5.安装中出现的问题
4.5.1. 一些问题与解答
4.5.1.1.我认为应该作一个有关modem 的讨论?
哦 , 你必须想到你电脑的串口 。我们使用串口从一个Unix 系统到另一个系统传送程序 。
4.5.1.2.应该用package 来安装额外的程序?
是的 , 通常这是最快速、最简单的方法 。
4.5.1.3.为什么用port 来烦人呢?
几个原因:
1 , 一些软件的发布许可可能不允许采用二进制的方式分发 。它们必须采用源代码的方
式分发 。
2 , 一些人不信任二进制分发 。至少带上源代码 , 你可以自己阅读 , 寻找可能存在的问
题 。
3 , 如果你有本地的补丁 , 那你可能在打补丁的时候需要源代码 。
4 , 你可能在程序的编译方式上与做这些程序的人有不同的看法 。无论是建构调试版 ,
还是把它们分开 , 一些人喜欢采用最优化的设置来编译以达到最强大 。通常发布的
软件包在设置方面都是比较保守的 。如果port 对一个特殊的处理器在使用代码上有
一个编译选项 , 或是需要支持一个额外的设备 , 你可能需要亲自对这个port 进行编
译 , 不需要为提供每一个额外的支持而生成许多不同的软件包 。有很多这样的例子 。
如果一个软件包可能对一些特殊尺寸的纸张提供了默认的支持 , 那我们就要提供多
种软件包 , 每一种对应一种尺寸的纸张 。
5 , 一些人喜欢围着代码转 。如果它们觉得无聊 , 或想攻克它 , 或想从中学点东西 , 诸
如此类的 , 它们可能会去读它 。
6 , 如果你不能得到源代码 , 那它就不是软件了 。
4.5.1.4. 什么是补丁?
一个补丁(patch)是一个小文件 , 主要描述文件如何从一个版本升级到另一个版本 。
第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 里)中
所列的任一个网站把文件下载下来 , 就可以重新开始安装的步骤了 。

推荐阅读