◎名稱 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 <knu@iDaemons.org> ◎程式的BUGS 在安裝或更新的過程之中 SUSP (^Z) 無法產生效用。 ◎參考資料 portupgrade
标签: