FreeBSD Portgrade软件更新

◎名稱 portupgrade - 提供經由port或是packages來升級/安裝新的軟體◎安裝 路徑:/usr/ports/sysutils/portupgrade#make install/usr/ports/sysutils/portupgrade#make clean◎語法 portupgrade [-habcCDfFginNOpPPqrRsuvwWy] [-A command] [-B command][-l file] [-L prefix] [-S command] [-x pkgname_glob][[-o origin] [-m make_args] [-M make_env] pkgname_glob ...]◎描述portupgrade被用來作為經由port或packages升級/安裝的工具 。而portinstall相當於portupgrade -N 。◎警告o 請詳讀使用者手冊並且了解你在做什麼 。o 請不要忘掉在升級前執行pkgdb -F 。o 請記得portupgrade不會自己尋找程式的相關性,必要時別忘了使用 -f,-r 或-R 參數 。o 當portupgrade在執行中,請勿中斷之 。否則您將會有一個不完全的資料庫 。(雖然即使這樣做是100%的安全)o 請不要懶惰,務必備份先前的資料及設定檔案包含/var/db/pkg 。◎參數pkgname_glob定義一個pkgname,可以包含萬用符號 。詳情請參考 pkg_glob(1) 。-h(--help)顯示求助選單 。-a(--all)表示所有已經安裝的軟體 。相當於pkgname_glob中的 "*"。-A CMD(--afterinstall CMD)在每一個安裝完成後,以root身分執行某一命令 。-b(--backup-packages)保留舊有版本的備份 。這些資料會暫時存放在PKG_TMPDIR 及 TMPDIR所定義的位置 。-B CMD(--beforebuild CMD)與-A CMD 相反,在安裝每一個程式前,先執行該命令 。若該命令執行失敗,則安裝會停止 。-c(--clean)在每一次安裝前,先執行make clean 。(預設值)-C(--cleanup)在每一次安裝後執行make clean 。(預設值)-D(--distclean)在每次fetch或是build之前執行 make distclean 。-f(--force)強制執行,即使是降級或是同一版本也強制安裝 。-F(--fetch-only)只取得檔案或是packages但不做升級動作 。這個參數對於一次取得多數檔案很有用 。-g(--go-on)繼續執行動作,即使某些相關的packages升級失敗 。預設的狀態中,若某package或是port升級失敗,其相關連性會被skipped 。-i(--interactive)打開互動模式,portupgrade在進行重要步驟前會徵得您的同意?-l FILE(--log-results FILE)將更新升級結果以FILE為檔名儲存?-L PREFIX(--log-prefix PREFIX)將每一個port的建立、安裝記錄存為一個檔案,而PREFIX則是存放的位置?-m(--make-args)在每次make前加上額外的參數(arguments)-M(--make-env)在每次make後加上額外的參數(arguments)?-n(--noexecute)不實際執行安裝或升級動作?只是顯示會有何改變?-N(--new)當指定的package是尚未安裝的情況下,安裝該程式?且其所需求的關連程式也會一併被安裝升級?-o ORIGIN(--origin ORIGIN) 定義某port再某package之後升級?-O(--omit-check)忽略依存性的檢查?預設的狀況下,會自動檢查程式間的依存性,當然地,這個動作會花去額外的時間?但,若您先前已經執行過pkgdb -F 命令,您可以採用此參數忽略之?-p(--package)為該安裝/升級的port,建立package?-P(--use-packages)再採用port方式升級前,先採用packages的方式?-PP(--use-packages-only)不管任何情況,只採用packages方式升級?-q(--no-config)使portupgrade不去讀取設定檔$PREFIX/etc/pkgtools.conf?-r(--recursive)依據指定的程式(packages)來升級與其相依存的程式?-R(--upward-recursive)依據指定的程式(packages)來升級其所依存的程式?-s(--sudo)在必要的情況下,以sudo狀態執行命令?-S CMD(--sudo-command CMD)加上sudo的命令-u(--uninstall-shlibs)不保留舊有的共享函式庫?在預設的情況下是保留以策安全?-v(--verbose)開啟 verbose 輸出?-w(--noclean)在每一次編譯前,不要執行make clean?-W(--nocleanup)在每一次的編譯後不要執行make clean?-x GLOB (--exclude GLOB)將符合樣式的packages排除在昇級更新之外?ex:昇級所有與XFree86相依存的程式,除了XFree86之外?portupgrade -rx XFree86 XFree86-y(--yes)任何回答都回應yes?◎環境變數PKG_DBDIR指定安裝packages資料庫的變數 。預設是/var/db/pkg 。PORTSDIR指定ports tree位置的變數 。預設是/usr/ports 。PORTS_INDEX指定ports INDEX 位置的變數 。預設是$PORTSDIR/INDEX 。PORTS_DBDIR指定ports資料庫檔案位置的變數 。預設是$PORTSDIR 。PKG_TMPDIR指定portupgrade在備份檔案暫存資料夾的變數 。若沒有特別指定,則使用/var/tmp 。注意:此資料夾需要有足夠的空間 。PACKAGES指定portupgrade建立packages位置的變數 。預設是$PORTSDIR/packages 。PKG_PATH指定portupgrade搜尋packages位置的變數 。預設是$PACKAGES/All。PKGTOOLS_CONF指定pkgtools 設定檔位置的變數 。預設是$PREFIX/etc/pkgtools.conf。PORTUPGRADE指定portupgrade預設執行參數的變數 。◎檔案/var/tmp預設的暫存檔位置 。/var/db/pkg 預設的程式資料庫的安裝位置 。/usr/ports預設的ports tree及ports的資料庫檔案位置 。$PREFIX/etc/pkgtools.conf預設的pkgtool的設定黨位置 。◎作者Akinori MUSHA ◎程式的BUGS在安裝或更新的過程之中 SUSP (^Z) 無法產生效用 。◎參考資料portupgrade

推荐阅读