FreeBSD 安裝 Ports系統(tǒng)

這里提前說一下,下面的方法是使用portsnap安裝ports红省,但是portsnap貌似是從FreeBSD6.x 或者是FreeBSD7.x以上才可以使用的国觉,我在FreeBSD 5.4時候就不支持portsnap,而只能用cvsup來安裝ports痕寓。另外,cvsup和ports都可以通過光盤來安裝硬毕,cvsup是在CD/DVD->configure->package->cvsup.......而ports是在CD/DVD->configure->distribution->ports.<wbr>

1. 什么是 Ports 系統(tǒng)

簡單的講礼仗,一個 port 就是一個被移植到了 FreeBSD 上的軟件元践。所有這些軟件的集合,加上 FreeBSD 處理這些軟件的各種工具沪羔,就是 Ports 系統(tǒng)象浑。

2. Ports 系統(tǒng)有什么用
每一個被移植到 FreeBSD 上的軟件(就是 Port)愉豺,都能通過 Ports 系統(tǒng)中的工具方便有序的安裝,升級越除,卸載外盯。而且符合 FreeBSD 系統(tǒng)對應用軟件施加的各種規(guī)范饱苟。免去了你到處尋找軟件,自己編譯类垦,安裝蚤认,升級的麻煩糕伐。借助這些 ports 維護者的努力,你也不用擔心這些軟件與系統(tǒng)不兼容導致無法安裝升級等等陪汽。
3. 怎么安裝 Ports 系統(tǒng)

a). 首先設置一個比較快的portsnap服務器挚冤,如果系統(tǒng)默認的地址你的訪問速度也很快,可以不修改

vi /etc/portsnap.conf

添加如下:

SERVERNAME=portsnap.FreeBSD.org

b). 執(zhí)行下面命令

portsnap fetch extract 這里直接下載ports并且解壓

這樣就完成了下載ports系統(tǒng)以及解壓到/usr下面了

還有一種方法是用系統(tǒng)盤安裝Ports澳骤,插入盤讀取Configure->Distributions->Ports

Ports 樹的目錄結構

假設你的 ports 樹安裝在默認位置 /usr/ports宴凉。

文件:

<pre>/usr/ports/CHANGES # ports 開發(fā)者表悬、維護者等的記錄文檔。 /usr/ports/COPYRIGHT # ports 樹的版權籽暇。 /usr/ports/GIDs # 一些 port 可能用到的組名稱饭庞。 /usr/ports/INDEX-xxx # 每個 port 的摘要 /usr/ports/KNOBS # 編譯 port 時需要的一些環(huán)境變量與解釋。 /usr/ports/LEGAL # 某些 port 的協(xié)議限制绸狐。 /usr/ports/MOVED # 被移動/刪除了的 port 列表寒矿。 /usr/ports/Makefile # ports 樹總的 BSD Makefile若债。 /usr/ports/README /usr/ports/UIDs # 一些 port 可能用到的用戶名稱蠢琳。 /usr/ports/UPDATING # ports 樹的更新記錄以及建議傲须。</pre>

目錄:

<pre>/usr/ports/Mk # 編譯 port 需要的 Makefile 集合。 /usr/ports/Templates # 一些模板例衍。 /usr/ports/Tools # 一些工具。 /var/db/ports # 包含所有進行過配置的可定制 port 的可選變量。每一個 port 占用一個目錄翎嫡。 /var/db/pkg # 包含所有已經安裝的 port 的記錄永乌。用 pkg_add 安裝的預編譯好的包也會在此留下記錄翅雏。</pre>

除開以上文件和目錄,其他所有的目錄都是 ports绩脆。一個 port 的目錄結構:

<pre>/usr/ports/分類/名稱</pre>

比如 firefox 被分類在 www靴迫。因此 firefox 在 ports 樹中的位置就是:

<pre>/usr/ports/www/firefox</pre>

使用 Ports 系統(tǒng)
1 查詢

比如玉锌,你想知道 ports 中是否有 pidgin 這個軟件主守,那么可以這樣:

<pre>$cd /usr/ports $make search key=pidgin</pre>

同樣也可以使用

<pre>$cd /usr/ports $make search name=pidgin</pre>

用上面兩種方法查詢時榄融,顯示的信息比較詳細,包括維護者黄刚、依賴包民效、主頁等內容畏邢。如果只想顯示所在的路徑和軟件名稱舒萎,則可以用

<pre>$cd /usr/ports $make quicksearch name=php</pre>

這樣可以使顯示的結果更清晰。

/usr/ports/README 中還有更多的例子可以參考摊灭。

2 安裝

非常簡單帚呼。比如你要安裝 firefox煤杀,那么作為超級用戶 root:

<pre>#cd /usr/ports/www/firefox #make install clean</pre>

3 卸載

要卸載 firefox 的話:

<pre>#cd /usr/ports/www/firefox #make deinstall clean</pre>

4 升級

要升級 firefox:

<pre>#cd /usr/ports/www/firefox #make deinstall reinstall clean</pre>

5 定制 port

有時候沈自,你會發(fā)現(xiàn)安裝某個 port 的時候會有奇怪的事情發(fā)生枯途。比如 editors/vim籍滴,安裝的時候竟然會自動安裝 glib1 和 gtk1异逐,而明明自己的系統(tǒng)上已經有了 glib2 和 gtk2灰瞻。

這是因為有些 port 有很多不是默認的編譯選項酝润。這個時候你需要設定一些環(huán)境變量讓 port 知道該怎么做要销。對于 editors/vim疏咐,你需要設定 WITH_GTK2 來讓 vim 依賴 gtk2 而不是 gtk1。

你可以在 csh 下:

<pre>setenv WITH_GTK2</pre>

或者在 bash 下:

<pre>export WITH_GTK2=yes</pre>

也可以把這個選項寫到 /etc/make.conf 里面:

<pre>WITH_GTK2=yes</pre>

或者你也可以指定在更新/安裝某個 port 的時候使用特定的環(huán)境變量借跪。添加如下代碼(注:csh 的語法掏愁,不是 sh/bash)到 /etc/make.conf 里面:

<pre>.if ${.CURDIR:M*/ports/editors/vim} WITH_GTK2=yes .endif</pre>

這樣下次升級 editors/vim 的時候就會自動依賴到 gtk2 而不是 gtk1 了沦泌。

類似的例子還包括 WITH_GECKO 環(huán)境變量辛掠。請閱讀 ports/Mk/bsd.gecko.mk 來獲得詳細資料公浪。

定制 Ports 系統(tǒng)
1 設定 Ports 樹的位置

當你把 Ports 樹放在非默認位置(/usr/ports)的時候船侧,就需要修改一些環(huán)境變量讓 Ports 中的工具知道你的修改欠气。這個變量就是 PORTSDIR。比如镜撩,你把 Ports 樹放在了 /opt/ports预柒,那么 在 sh/bash 中,執(zhí)行如下命令:

<pre>export PORTSDIR=/opt/ports</pre>

在 csh 中袁梗,你需要執(zhí)行如下命令:

<pre>setenv PORTSDIR /opt/ports</pre>

妥貼的辦法是把這個環(huán)境變量放到超級用戶 root 的 dot.cshrc 文件(/root/.cshrc)里面宜鸯。又或者你想讓普通用戶也能用到這個環(huán)境變量,可以考慮放到 /etc/profile 或者 /etc/csh.cshrc 里面遮怜。

注意淋袖!如果你使用 portsnap 命令來同步 Ports 樹,而你的 Ports 樹不在默認位置锯梁,請在 /etc/portsnap.conf 中也設定你的 Ports 樹的位置即碗。

注意!如果你使用 csup/cvsup 同步 Ports 樹剥懒,而你的 Ports 樹不在默認位置充岛,請在你的 ports-supfile 中也設定你的 Ports 樹的位置展东。

2 設定 dist 文件的位置

所謂 dist 文件爪膊,就是 port 的源碼谦铃。一般情況下瘪菌,這些源碼都是用 tar 打包然后用 bzip2 壓縮的。默認的位置是在 $PORTSDIR/distfiles。但是,你也可以把這些 dist 文件放到另外的地方仑氛。需要設定的環(huán)境變量就是 DISTDIR自阱。你可以根據上面的例子來設定這個環(huán)境變量。

3 設定工作目錄

如果沒有設定工作目錄叫确,ports 系統(tǒng)默認在 port 的目錄進行編譯娄琉。比如你的 firefox 在 /usr/ports/www/firefox城看,那么默認將在 /usr/ports/www/firefox/work 下編譯 firefox。這樣有一個缺點轰胁,如果你的 /usr 目錄不是很大的話,在編譯某些大軟件的時候姿现,比如 gnome,kde 桌面系統(tǒng)時,你的 /usr 空間可能會不足。

解決的辦法之一就是設定環(huán)境變量 WRKDIRPREFIX每篷,比如

<pre>export WRKDIRPREFIX=/opt/obj/portbld</pre>

這個時候 ports 系統(tǒng)就會到 /opt/obj/portbld/usr/ports/www/firefox/work 下編譯 firefox矗晃。

Ports 管理工具
1 系統(tǒng)自帶的工具
同步 ports

portsnap 是同步 ports 用的,前文已經作了介紹。
詳細用法參照這里(搜索“Portsnap 方式”)
為了方便,我在 csh 的配置文件里寫入了如下 alias :

<pre>alias update-ports 'portsnap fetch update'</pre>

大家不妨參考一下。

維護 ports
pkg_add
pkg_create
pkg_delete
pkg_info
pkg_updating
pkg_version

注:
1.具體的用法請參考手冊中的4.4、4.5節(jié)。
2.嚴格來說,pkg_add,pkg_updating并不是用于 ports 的工具,它們只能用于 package 。這里只是為了讓大家全面了解馒闷,哪些是官方的東西塞祈。

來處:http://wiki.freebsdchina.org/faq/ports

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子看靠,更是在濱河造成了極大的恐慌,老刑警劉巖老速,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鬓梅,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來艺骂,“玉大人厘肮,你說我怎么就攤上這事》蛏ぃ” “怎么了窍株?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我醋虏,道長,這世上最難降的妖魔是什么旬薯? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上畔裕,老公的妹妹穿的比我還像新娘。我一直安慰自己元潘,他們只是感情好钥庇,可當我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布吐句。 她就那樣靜靜地躺著氧秘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪阻星。 梳的紋絲不亂的頭發(fā)上畦幢,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天,我揣著相機與錄音,去河邊找鬼脑溢。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的挑社。 我是一名探鬼主播陨界,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼痛阻!你這毒婦竟也來了菌瘪?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤阱当,失蹤者是張志新(化名)和其女友劉穎俏扩,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弊添,經...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡录淡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了油坝。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嫉戚。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖澈圈,靈堂內的尸體忽然破棺而出彬檀,到底是詐尸還是另有隱情,我是刑警寧澤瞬女,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布窍帝,位于F島的核電站,受9級特大地震影響诽偷,放射性物質發(fā)生泄漏盯桦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一渤刃、第九天 我趴在偏房一處隱蔽的房頂上張望拥峦。 院中可真熱鬧,春花似錦卖子、人聲如沸略号。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽玄柠。三九已至,卻和暖如春诫舅,著一層夾襖步出監(jiān)牢的瞬間羽利,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工刊懈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留这弧,地道東北人娃闲。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像匾浪,于是被迫代替她去往敵國和親皇帮。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,747評論 2 361

推薦閱讀更多精彩內容