FreeBSD ports 相關工具

O.S.: FreeBSD 6.2 Release
1. 更新 ports:
之前是用 cvsup 更新,後來 6.x 出了比較新的 csup,只要在 /usr/src 或是 /usr/ports 下直接 "make update" 就可以直接更新了。今天熊熊發現 6.x 還有新增一個 "portsnap" 的工具,看起來也是蠻方便的(不過只能更新 ports,src 還是需要用 csup)。
From:http://www.cyberciti.biz/tips/howto-keep-freebsd-system-upto-date.html
http://www.backup.idv.tw/viewtopic.php?p=2528&sid=f9e396981b234fd96dba8cad56c91923
http://www.freebsd.org/doc/zh_TW/books/handbook/ports-using.html

用 portsnap 當然是有他的優點啦:

使用標準協定:Portsnap 使用 HTTP,所以:
可以被 HTTP Proxy Server Cache,或是利用其他 HTTP Proxy Cache 機制節省頻寬。
因為使用 Port 80,所以不需要動到防火牆設定。
安全性高:使用 SHA-1 紀錄 Publickey Fingerprint,再利用 Publickey 檢查下載的資料。
更新快速:類似於 CTM,每次更新只傳輸 diff 檔 (以及電子簽章)。對於用戶端只需要 patch 部分的檔案,而對於伺服器端只需要提供 HTTP Download。

只要在 /etc/portsnap.conf 裡面把預設抓取的站台改成台灣的就可以了:
SERVERNAME=portsnap.tw.freebsd.org
第一次使用的話,要執行下面的指令:

# portsnap fetch       //抓取 snapshot
Fetching snapshot tag from portsnap.tw.freebsd.org... done.
Fetching snapshot metadata... done.
Updating from Tue Feb 10 16:01:37 CST 2009 to Tue Feb 10 16:38:22 CST 2009.
Fetching 3 metadata patches.. done.
Applying metadata patches... done.
......
# portsnap extract     //解開 snapshot
......
/usr/ports/x11/zenity/
Building new INDEX files... done.

之後要更新 ports 的話,就只要:

#portsnap fetch
#portsnap update

至於 cron 的話,因為我不喜歡他預設還會 delay 3600 秒的設定,更何況,我的只是小站,要裝 ports 的時候再 update 就好囉。
2. 檢查有哪些 ports 可以 update(基本上,能用我就用著,除非真的太閒或是這個版本不穩定,不然,更新上去有問題就慘了。所以我不寫"需要"update:06):

# pkg_version -vIL=
或
# pkg_version -vIL'<'
GraphicsMagick-nox11-1.1.10         <   needs updating (index has 1.1.14_1,1)
ImageMagick-nox11-6.3.5.10_1        <   needs updating (index has 6.4.8.3)
...

3. Update ports:
用的是 portupgrade,之前有看過 portmanager 造成的慘案,所以就不考慮囉。
先掃瞄已裝的 ports 資料庫是否有誤,並修正有問題的地方。 在每次做升級之前,最好定期做一下 pkgdb -F 動作會較為妥當。

# pkgdb -F
--->  Checking the package registry database
[Updating the pkgdb in /var/db/pkg ... - 345 packages found (-0 +26) ...............

備份特定程式(會產生在目前的目錄):

# pkg_create -b firefox

升級後無法使用的話,就把升級後的版本移除再還原備份的程式:

# pkg_add -v firefox

跑 portupgrade -a 的話, portupgrade 會升級系統上所有已裝的過舊 ports。 若用 -i 則在升級每個 port 過程當中,會要求確認相關動作是否符合所需。

# portupgrade -ai

若只想升級某特定程式而非全部,那麼可以用 portupgrade pkgname 來做指定。 若想要 portupgrade 優先升級某 port 所相依的相關套件,則請用 -R 參數即可。

# portupgrade -R firefox

4. 清理 ports 空間:
因為使用 Ports Collection 遲早可能會用光硬碟空間, 所以在裝完軟體後,記得要以 make clean 指令來清除臨時的 work 目錄。 此外,可以用下列指令來清除整個 Ports Collection 內的臨時目錄:

# portsclean -C

ports 用久了,您可能會在 distfiles 目錄內會累積著許多的原始碼檔案。 可以手動刪除這些檔案, 或者用下列指令來清除所有 port 都不使用的舊檔:

# portsclean -D

或者要清除所有已裝的 port 都不再使用的舊檔:

# portsclean -DD

這樣就清潔溜溜囉。:08
5. 檢查 ports 的安全性(看有沒有已發佈的漏洞):

#cd /usr/ports/ports-mgmt/portaudit
#make install clean

要檢查的時候,就只要輸入"/usr/local/bin/portaudit -F -a" 看檢查結果就好囉。

Please follow and like us:

0 comments on “FreeBSD ports 相關工具

3 Pings/Trackbacks 於 "FreeBSD ports 相關工具"

  1. [FreeBSD] portdowngrade 將 port 降版...
    portupgrade 是用來升級 ports 版本的,不過有時候新版本會有一些 bug 導致系統崩潰,所以 portdowngrade 這個程式就是幫你將某些 port 降版用的。 O.S.:FreeBSD 7.1-RELEASE #cd /usr/ports/ports-mgmt/portdowngrade/ #make install 這樣就安裝好了。 #portdowngrade -o -s :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs...

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *