FreeBSD 軟體安裝系統 ports
本篇 引用自
http://www.freebsd.org/doc/zh_TW/books/handbook/ports-using.html
http://cloverhsc.blogspot.com/2008/10/etcmakeconf.html
因為我所管理的sever中,有幾台是 FreeBSD,所以 這一篇 最主要是 記錄自己所學所寫下來的紀錄,不保證完全正確
前言:
ports 是FreeBSD 所用的 軟體安裝方式,根據我所理解是,ports 這套軟體 會把 所有軟體的安裝程式先全部下載到系統當中
但這只是安裝流程和 所需要的檔案,安裝時系統會根據安裝程式中的指示,去網路上下載所有必要的檔案解壓後 再進行安裝
不過這種安裝模式有個缺點,就是當軟體安裝失敗的時候,使用者必須自己去看 error log 去判斷問題
另外 所需檔案 的下載位置是在/etc/make.conf中 設去哪個伺服器下載,在linux系列中都有類似的方式,有許多人貢獻server架設鏡像站,
這部分台灣有多台server 分散在各大學當中(我們這台server 也有提供類似的服務),回到主體,現在進入真正的教學吧。
根據我所理解ports 是 FreeBSD 在安裝時,就會跟這安裝上的,並不需要我們來安裝
cvsup 是ports 的更新方式之一,如果要對ports 軟體清單做更新 可以用以下的方法
安裝CVSUP
#cd /usr/ports/net/cvsup-without-gui
#make install clean
更新PortsTree
#cp /usr/share/examples/cvsup/ports-supfile /目錄路徑/
#ee /目錄路徑/ports-supfile
設定default host值與更新目錄
*default host=cvsup.tw.freebsd.org
註解掉不需要更新的軟體目錄
指令列輸入rehash,否則等會會出現cvsup: Command not found.
#cvsup -g -L 2 /目錄路徑/ports-supfile
Portsnap和cvsup 同樣功能的 另一種更新方式,這套系統在 freeBSD 6.0之後就已經內建,所以只需要執行下列三個指令
-
# portsnap fetch
-
# portsnap extract
-
# portsnap update
軟體的安裝方式:
先移動到/usr/ports/ 底下的 軟體資料夾,之後輸入安裝指令
其中有三種指令
#make 把程式碼編譯
#make install 先編譯後 安裝
#make clean 清除安裝時所產生的暫存檔案
以上三個指令 只需要輸入
#make install clean 就可以一次完成
如果 安裝時出現 下載失敗的錯誤時怎麼處理呢?
通常 FreeBSD 內設定的 伺服器資料並不符合 台灣的現況,所以需要再做修改
修改 /etc/make.conf 主要是讓我們在make file的時候server裡面沒有的檔案
直接從我們設定的ftp內抓取我們所需的檔案,因為預設的make.conf是從國外
下載檔案,這樣會讓我們下載速度慢很多,所以我們把它改成國內的server
加速我們下載並且設定cvsup的更新位置指向過內的server。
修改 /etc/make.conf 加入:
# for make install
MASTER_SITE_BACKUP?= \
ftp://ftp.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\
ftp://ftp2.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp3.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp4.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp5.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp7.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp8.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/\ ftp://ftp9.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP} MASTER_SORT_REGEX= \.tw/ \.tw\. \.edu/ \.edu\. FETCH_CMD=fetch -U -A -P # for cvsup make update SUP_UPDATE=yes SUP= /usr/bin/csup SUPFLAGS= -g -L 2 SUPHOST= cvsup2.tw.FreeBSD.org SUPFILE= /usr/share/examples/cvsup/standard-supfile PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile DOCSUPFILE= /usr/share/examples/cvsup/doc-supfile WITHOUT_X11=yes
並讓cvsup的更新針對我自己的freebsd 的版本
到/usr/share/examples/cvsup/standard-supfile 修改
*default release=cvs tag=RELENG_7_0
Leave a Reply