Ports機制
首先,FreeBSD下最有特色的軟件安裝和升級機制就是ports,既方便又高效。下面我們從ports套件的安裝開始講起,讓你細致的了解有關ports的每一個細節
一、ports套件的安裝
①我的FreeBSD 8.0-release是最小化安裝,所以既沒有ports,也沒有/usr/ports目錄。選擇啟用ports的話,需要在root下輸入"sysinstall"來安裝它:
輸入sysinstall --> 選擇Configure --> Distributions --> ports,然後安裝即可。
②ports的默認路徑是/usr/ports。這個ports的根目錄下面有很多的文件夾及子文件夾,組成一個樹狀目錄,包含大量ports下的軟件。比如mail是郵件服務軟件,games是游戲,www代表web服務軟件,databases則是數據庫軟件。
[root@bsd01 /usr/ports]# cd www [root@bsd01 /usr/ports/www]# ls -d apache* apache-contrib apache13 apache13-modssl+ipv6 apache-forrest apache13+ipv6 apache13-ssl apache-jserv apache13-modperl apache20 apache-mode.el apache13-modssl apache22
如果你需要安裝什麼軟件,只要進入當前目錄,然後“make install clean”即可。
[root@bsd01 ~]# cd /usr/ports/www/apache22 [root@bsd01 /usr/ports/www/apache22] make install clean
/usr/ports/distfiles是存放軟件包的文件夾。ports會先檢查/usr/ports/distfiles目錄內有沒有這個軟件包,如果沒有它就會自動從網上下載安裝。
二、加速ports的升級速度
ports從網上下載軟件包自動安裝,那麼從那裡下載呢?首先,我們需要安裝axel來取代默認的下載工具fetch,這樣可以提高ports的安裝速度:
cd /usr/ports/ftp/axel make install
然後,我們需要一個源地址管理。跟ubuntu上的/etc/source.list文件一樣,freebsd用的文件是/etc/make.conf,我們可以修改其文件,達到加速下載的目的。
#修改 /et/make.conf vi /etc/make.conf #加入以下內容 FETCH_CMD=axel FETCH_BEFORE_ARGS= -n 10 -a FETCH_AFTER_ARGS= DISABLE_SIZE=yes MASTER_SITE_OVERRIDE?=\ http://ports.hshh.org/${DIST_SUBDIR}/\ http://ports.cn.freebsd.org/${DIST_SUBDIR}/\ ftp://ftp.freeBSDchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}
這樣處理後,在公司的網絡環境下,FreeBSD的下載速度明顯提高了,有時居然能達到1M/s,這樣升級及安裝軟件方便極了;呵呵,終於可以擺脫fetch的龜速了。
三、更新ports目錄樹
既然ports的樹目錄全部下載到本地,那麼即使FreeBSD有新的軟件包或者添置了新的軟件,本地目錄樹也不會更新。所以,我們每隔一段時間需要更新本地目錄樹。我來介紹一種在FreeBSD中方便、快捷的更新ports的方法:使用portsnap來更新ports目錄樹。
①配置portsnap:
我們使用portsnap,首先要設置一下它的配置文件,位於/etc/portsnap.conf:
[root@bsd01 /usr/ports]# vi /etc/portsnap.conf
把
SERVERNAME=portsnap.freebsd.org
修改成:
SERVERNAME=portsnap.hshh.org
這個是他的更新服務器。另外還有幾個國內比較快的portsnap服務器:
portsnap.hshh.org
portsnap2.hshh.org
portsnap3.hshh.org (網通)
portsnap4.hshh.org
②首次使用portsnap:
在你的FreeBSD首次使用portsnap必須執行下面2步:
[root@bsd01 ~]# portsnap fetch [root@bsd01 ~]# portsnap extract
portsnap fecth是從網上獲取portsnap快照的最新壓縮包,聽聞這個壓縮包官方沒小時更新一次。
portsnap extract 則是把這個壓縮包創立到/usr/ports。哪怕你以前已經手工安裝了ports,他也會重新創立一次。
(注:這2步可以合成使用,指令為 [root@bsd01 ~]# portsnap fetch extract)
③以後使用portsnap更新,只需要執行下面2步:
[root@bsd01 ~]# portsnap fetch [root@bsd01 ~]# portsnap update
同樣,這2步可以合成使用:[root@bsd01 ~]# portsnap fetch update
portsnap第一次運行extract命令時,可能需要一段時間,以後更新使用update的時候,速度就快很多了。