本文基于BSD8.x,cvsup,svn等安装更新方式不在此范围内,portupgrade也已经被取消掉了。

BSD的ports系统是个很棒的发明,因为是编译方式安装软件,所以在可定制性上比yum或apt-get高了不少。yum或者apt-get的优点在于,你需要第一次安装后配置好相关软件的conf文件,以后再安装,都是以rpm包的形式直接安装二进制文件。省事,但缺少新版本的可定制性。BSD的ports方式就可以每次安装新版本的时候都对软件进行config。所以相比我更喜欢ports。

port所在的目录是/usr/ports,通常查找一个需要的软件我都是用whereis,如果名字写错了或者不太清楚,我会用find /usr/ports/ -name "*关键字*",还有一种方法是到ports目录下去make search key="关键字"。

ports的安装很简单,直接make && make install,有编译选项的会弹出选项界面。如果不弹,或者想改变原有的编译选项。可以先make config。编译过程中有些软件会提示安装过或者已经注册过,但需要强行编译的话,就加上make FORCE_PKG_REGISTER="yes" && make install。

portsnap是更新ports tree列表的工具。但是需要注意,portsnap仅仅是更新ports列表,并不会更新你的软件。第一次使用需要用portsnap fetch extract,以后就可以直接 update了。

重点是,更新你的软件和系统,需要先去编译portmaster,然后用portmaster -Da进行更新,很多教程都会教portsnap,但很少有教程会教你portmaster。其实portmaster才是更新系统,portsnap只是更新ports列表。在portsnap完成之后,一定记得用portmaster进行系统的更新。