什么是 Ports 系統 簡(jiǎn)單的講,一個(gè) port 就是一個(gè)被移植到了 FreeBSD 上的軟件。所有這些軟件的集合,加上 FreeBSD 處理這些軟件的各種工具,就是 Ports 系統。 Ports 系統有什么用 每一個(gè)被移植到 FreeBSD 上的軟件(就是 Port),都能通過(guò) Ports 系統中的工具方便有序的安裝,升級,卸載。而且符合 FreeBSD 系統對應用軟件施加的各種規范。免去了你到處尋找軟件,自己編譯,安裝,升級的麻煩。借助這些 ports 維護者的努力,你也不用擔心這些軟件與系統不兼容導致無(wú)法安裝升級等等。 怎么安裝 Ports 系統 介紹三種方法來(lái)安裝 Ports 系統: 1 安裝系統時(shí)選擇安裝 Ports 系統 這是最簡(jiǎn)單的方法,但是也有缺點(diǎn)。因為 Ports 系統總是隨時(shí)更新的。因此你從安裝光盤(pán)上安裝的 Ports 系統肯定不是最新的了。 2 使用 portsnap 安裝/同步 ports 系統 這是推薦的方法。使用portsnap不需要事先安裝 ports tree,并且能夠在任何時(shí)候恢復到已知的最新?tīng)顟B(tài)(即使手工對ports tree進(jìn)行了修改)。 使用 portsnap 分成兩個(gè)步驟:下載壓縮的 portsnap 快照,和更新現有系統。下載或更新 portsnap 快照的方法是 portsnap fetch;首次安裝,或希望將 ports tree 恢復到快照的樣子,應使用 portsnap extract;之后更新系統中的 ports tree,則可以通過(guò) portsnap update 來(lái)完成。對于服務(wù)器而言,推薦在 crontab 中增加在每天3點(diǎn)執行 portsnap cron,以減少使用時(shí)所需要的下載時(shí)間。 首次下載 portsnap 快照時(shí),需要下載一個(gè)大約50MB的快照基礎文件。在中國大陸,由于網(wǎng)絡(luò )狀況的原因,這可能需要較長(cháng)時(shí)間??梢钥紤]用 portsnap fetch -s portsnap.cn.freebsd.org 做首次下載;之后的下載,還是推薦使用正常的 portsnap fetch。 可以使用下面步驟完成上述情況 1.首先設置一個(gè)比較快的portsnap服務(wù)器,如果系統默認的地址你的訪(fǎng)問(wèn)速度也很快,可以不修改 #vi /etc/portsnap.conf 設置SERVERNAME=portsnap.cn.freebsd.org ,你可以設置相對你速度快點(diǎn)的服務(wù)器的地址 2.執行下面命令 #portsnap fetch extract 這里直接下載ports并且解壓 這樣就完成了下載ports系統以及解壓到/usr下面了 3.設置最快的ports鏡像 用ports安裝軟件的時(shí)候,如果沒(méi)有設置相對于你來(lái)說(shuō)最快的ports服務(wù)器地址,那就會(huì )默認的 ftp://ftp.freebsd.org/pub/FreeBSD/ports/distfiles/ ,這個(gè)地址對于很多地方來(lái)說(shuō)是很慢的。 修改 /etc/make.conf 加入以下代碼 MASTER_SITE_OVERRIDE=\ ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}\ ftp://ftp.tw.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} 如果你有最快的地址,可以加到上面去,下載就會(huì )快了 。 3 使用 csup/cvsup 安裝/同步 Ports 系統 這種方法已經(jīng)不再推薦使用。 不管事先你有沒(méi)有安裝 Ports 系統,你都可以使用 csup/cvsup (推薦使用 csup,這是基本系統中自己帶的)來(lái)安裝/同步最新的 Ports 系統。把 /usr/share/examples/cvsup/ports-supfile 拷貝到一個(gè)地方(比如 /home/user/tmp/ports-supfile),然后作適當的修改(比如修改要連接的服務(wù)器)。最后使用如下命令來(lái)安裝/同步: csup -L 2 /home/user/tmp/ports-supfile Ports 樹(shù)的目錄結構 假設你的 ports 樹(shù)安裝在默認位置 /usr/ports。 文件: /usr/ports/CHANGES # ports 開(kāi)發(fā)者、維護者等的記錄文檔。 /usr/ports/COPYRIGHT # ports 樹(shù)的版權。 /usr/ports/GIDs # 一些 port 可能用到的組名稱(chēng)。 /usr/ports/INDEX-xxx # 每個(gè) port 的摘要 /usr/ports/KNOBS # 編譯 port 時(shí)需要的一些環(huán)境變量與解釋。 /usr/ports/LEGAL # 某些 port 的協(xié)議限制。 /usr/ports/MOVED # 被移動(dòng)/刪除了的 port 列表。 /usr/ports/Makefile # ports 樹(shù)總的 BSD Makefile。 /usr/ports/README /usr/ports/UIDs # 一些 port 可能用到的用戶(hù)名稱(chēng)。 /usr/ports/UPDATING # ports 樹(shù)的更新記錄以及建議。 目錄: /usr/ports/Mk # 編譯 port 需要的 Makefile 集合。 /usr/ports/Templates # 一些模板。 /usr/ports/Tools # 一些工具。 除開(kāi)以上文件和目錄,其他所有的目錄都是 ports。一個(gè) port 的目錄結構: /usr/ports/分類(lèi)/名稱(chēng) 比如 firefox 被分類(lèi)在 www。因此 firefox 在 ports 樹(shù)中的位置就是: /usr/ports/www/firefox 使用 Ports 系統 1 查詢(xún) 比如,你想知道 ports 中是否有 pidgin 這個(gè)軟件,那么可以這樣: $cd /usr/ports $make search key=pidgin 同樣也可以使用 $cd /usr/ports $make search name=pidgin /usr/ports/README 中還有更多的例子可以參考。 2 安裝 非常簡(jiǎn)單。比如你要安裝 firefox,那么作為超級用戶(hù) root: #cd /usr/ports/www/firefox #make install clean 3 卸載 要卸載 firefox 的話(huà): #cd /usr/ports/www/firefox #make deinstall clean 4 升級 要升級 firefox: #cd /usr/ports/www/firefox #make deinstall reinstall clean 定制 Ports 系統 1 自己設定 Ports 樹(shù)的位置 當你把 Ports 樹(shù)放在非默認位置(/usr/ports)的時(shí)候,就需要修改一些環(huán)境變量讓 Ports 中的工具知道你的修改。這個(gè)變量就是 PORTSDIR。比如,你把 Ports 樹(shù)放在了 /opt/ports,那么 在 sh/bash 中,執行如下命令: export PORTSDIR=/opt/ports 在 csh 中,你需要執行如下命令: setenv PORTSDIR /opt/ports 妥貼的辦法是把這個(gè)環(huán)境變量放到超級用戶(hù) root 的 dot.cshrc 文件(/root/.cshrc)里面。又或者你想讓普通用戶(hù)也能用到這個(gè)環(huán)境變量,可以考慮放到 /etc/profile 或者 /etc/csh.cshrc 里面。 注意!如果你使用 portsnap 命令來(lái)同步 Ports 樹(shù),而你的 Ports 樹(shù)不在默認位置,請在 /etc/portsnap.conf 中也設定你的 Ports 樹(shù)的位置。 注意!如果你使用 csup/cvsup 同步 Ports 樹(shù),而你的 Ports 樹(shù)不在默認位置,請在你的 ports-supfile 中也設定你的 Ports 樹(shù)的位置。 2 自己設定 dist 文件的位置 所謂 dist 文件,就是 port 的源碼。一般情況下,這些源碼都是用 tar 打包然后用 bzip2 壓縮的。默認的位置是在 $PORTSDIR/distfiles。但是,你也可以把這些 dist 文件放到另外的地方。需要設定的環(huán)境變量就是 DISTDIR。你可以根據上面的例子來(lái)設定這個(gè)環(huán)境變量。 常用的 Ports 管理工具 portsnap 這是推薦的升級 Ports 系統樹(shù)的工具。 portupgrade 相當好用的升級 Ports 中軟件的 Ruby 工具。支持從源碼/包升級。 pkg 工具 FreeBSD 基本系統中自帶的包管理工具。方便實(shí)用。都是 pkg_* 類(lèi)型的系統命令,比如 pkg_add, pkg_delete 之類(lèi)的 |
聯(lián)系客服