freebsd-update -- fetch and install binary updates to FreeBSD
描述:
freebsd-update 是FreeBSD系統用來 擷取, 安裝及 取得binary update 的工具
需要注意的是,這些update僅止於FreeBSD Release Engineering Team維護的版本.
諸如: FreeBSD 6.1-RELEASE 或 FreeBSD 6.2-RC1 而非 FreeBSD 6.2-STABLE
or FreeBSD 7.0-CURRENT 之類的版本.
補充: FreeBSD 6.2-RELEASE版本後才有此指令
語法:
freebsd-update [-b basedir] [-d workdir] [-f conffile] [-k KEY]
[-r newrelease] [-s server] [-t address] command
參數:
-b basedir 指定系統掛載的最基本路徑 (預設: / )
-d workdir 檔案暫存資料夾 (預設: /var/db/freebsd-update/ ),
-f conffile 設定檔位置 (預設: /etc/freebsd-update.conf)
-k KEY 信任的RSA金鑰位置 (預設: 從設定檔讀取)
-r newrelease 定義新的RELEASE版本昇級標的 (針對 upgrade)
-s server 定義擷取更新檔案的server (預設:從設定檔讀取)
-t address 郵件輸出的對象 (預設: root )
命令:
fetch 以現有安裝的環境及設定參數, 擷取可能的binary更新.
cron 隨機休息(sleep)1~3600秒,然後下載更新檔.
若更新檔案下載完成,系統會發送email通知root
(可透過 -t 參數或設定檔 , 將信件遞送給其他人員) .
如同此命令的名稱(cron), 被用來設計透過cron程式執行.
隨機休息秒數則是用來避免同時間有大量機器向server要求更新.
upgrade 截取必要的升級到新版本RELEASE的檔案,請小心使用.
並確認您已經閱讀過新版本的 announcement and release notes.
install 安裝最近擷取的更新(update)/升級(upgrade)檔案.
rollback 反安裝最近安裝過的更新(update).
小技巧:
把 freebsd-update 放入cron執行 , 如此就能夠自動更新.
0 3 * * * /usr/sbin/freebsd-update cron
相關檔案/資料夾:
/etc/freebsd-update.conf 預設的freebsd-update程式設定檔
/var/db/freebsd-update/ 預設的freebsd-update暫存及下載檔案資料夾
實際操作:
本例從 6.3-RELEASE 進行更新(update).
freebsd-update -r 6.3-RELEASE fetch

安裝:
freebsd-update -r 6.3-RELEASE install

重新開機後,執行 uname -a 名稱就會變成 6.3-RELEASE-p1 , 此時是否重新開機則由您自行決定了..
程式作者: Colin Percival <cperciva@FreeBSD.org>
你好,我用的是6.2 为什么我按你的做了 6.2-RELEASE-px 根本就没有变华,必须要重启make buildkernel 吗?还有有别的什么问题?
作者 白天 — 18 五月 2008, 23:28
您重新開機了嗎??
作者 panda — 19 五月 2008, 22:38
並不一定每修補一次就會出現 px 狀況.
而是視core team 的釋出而定.
例如:
6.3-RELEASE-p1 FreeBSD 6.3-RELEASE-p1 #0: Wed Feb 13 02:
56:56 UTC 2008
作者 panda — 20 五月 2008, 08:05
剛剛查了一下資料, uname 反應的是kernel資訊, 但由於freebsd-update是透過binary升級所以不見得可以透過uname -a 反映出.
但從 FreeBSD Security Advisories 來看,找到修正的內容,可以發現已經變更為修補過後的版本.
#cd /usr/src
#make buildkernel KERNCONF=YOURKERNEL
#make installkernel KERNCONF=YOURKERNEL
#reboot
我第一次透過freebsd-update後並沒有重新buidkernel,但重新開機後,仍會出現p1的版本號. 或許與修補的kernel核心檔案有關..?
更新範例實作:
此例以GENERIC為GENERIC描述檔
#cd /usr/src
#make buildkernel KERNCONF=GENERIC
#make installkernel KERNCONF=GENERIC
#reboot
重新開機後 會變成
FreeBSD 6.3-RELEASE-p2 #0: 更新日期
如果不执行
#cd /usr/src
#make buildkernel KERNCONF=GENERIC
#make installkernel KERNCONF=GENERIC
#reboot
升级是否成功呢?
作者 白天 — 21 五月 2008, 16:07
應該是的.
這幾天初步嘗試的結果,若以6.3R來說
更新一次且重新開機會變成p1,若再次更新且重新開機仍維持p1,(出現沒有需要更新的部分)
但是若重新更新kernel(也就是上述步驟)就會變成p2,進行更新則會出現有需要更新的檔案 /boot/kernel/kernel ,重新開機會變回p1 , 再次更新也會出現沒有需要更新的檔案.
此時若編譯kernel(上述步驟)則會產生輪迴狀況.
目前方向:
1.持續觀察等到p3出現,目前從sa看來只有p2.
2.查看sa更新的細部內容 來判定是否有更新.
作者 panda — 21 五月 2008, 23:14