設定 FreeBSD update & ports & package 使用 local mirror server

2016/1/20更新:
今天測試, freebsd-update,portsnap 和 pkg 的 tw mirror 已經失效

( 在 Facebook FreeBSD Taiwan 社團看到 消息 表示已經有自動台灣分流了,只是不知道為什麼我都會看到從 aws ec2 抓檔案 )
至於 make.conf 的部份還是可以繼續使用 (也強烈建議使用),在 build ports 的時候對下載 source code 的速度幫助很大!

FreeBSD 上常用來更新系統以及套件的工具的 mirror 設定:

設定檔位置:
/etc/freebsd-update.conf
/etc/portsnap.conf (使用portsnap更新ports才會有)
/etc/pkg/FreeBSD.conf (使用pkgng管套件才會有)
/etc/make.conf (可能需要自行建立)

/etc/make.conf 的部分,自行加入或修改現有的 MASTER_SITE_OVERRIDE / MASTER_SITE_BACKUP:
(這部份是在編 ports 的時候拉 src / tarball 會用到)

MASTER_SITE_BACKUP?= \
http://ftp.tw.freebsd.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP}

/etc/freebsd-update.conf 的部分 (freebsd-update):
ServerName update.FreeBSD.org
改成
ServerName update.tw.FreeBSD.org

/etc/portsnap.conf 的部分 (portsnap):
SERVERNAME=portsnap.FreeBSD.org
改成
SERVERNAME=portsnap.tw.FreeBSD.org

 

/etc/pkg/FreeBSD.conf 的部分:
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
改成
url: "pkg+http://pkg.tw.FreeBSD.org/${ABI}/latest",

tw 的部分看所在地區再做調整即可,台灣地區 mirror list 可以參考:
http://wiki.tw.freebsd.org/doc/freebsd_taiwan_mirror_sites

FreeBSD 官方放的 mirror list 可以參考這一份:
http://www.freebsd.org/doc/handbook/mirrors-ftp.html

設好 mirror 之後要裝套件速度真的會快很多!

用 Portmaster 升級已經安裝的 FreeBSD 套件

久久作一次,每次都要翻一下 man--help … 作個筆記把常用參數記下來…

-G 不做make config
-d 每次跑完都會作清理(make clean?)
-B 不把舊的套件打包成 package 備份
-w deinstall 之前把舊的共享函式庫備份起來
-P 有現成的 package 可以用就用 package(沒有要調整編譯參數的話可以省編譯時間)
--no-confirm 不跟使用者確認會進行安裝以及升級的清單
-a 檢查所有套件並升級
-y 所有提示問題都答 yes
-x 排除某個 port
--delete-build-only 砍掉只有在編譯時相依到的port
--delete-packages 安裝後把package砍掉
-g 把新的port順便打包成package (適合大量部署)
-v 輸出詳細資訊

Example:
portmaster -GdBPay --delete-packages --no-confirm -x apache24 -x php\*

以上是升級 apache24 和 php 開頭以外的所有套件,可以用 package 就用,用完就砍掉,每次編譯完都作清理,不用確認要升級/安裝哪些 ports,不把舊的 port 備份成package,所有問題自動回答 yes