歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix基礎知識 >> Unix系統:portupgrade中文手冊(翻譯)

Unix系統:portupgrade中文手冊(翻譯)

日期:2017/8/19 9:39:10   编辑:Unix基礎知識

  這個portupgrade手冊頁是根據 FreeBSD 6.2 release 的手冊頁進行翻譯,不當之處,懇請指正 :-)

  PORTUPGRADE

  Section: User Commands (1) FreeBSD

  軟件名稱:

  portupgrade portinstall - 通過ports或package升級安裝包或者安裝新軟件的工具軟件。

  命令摘要:

  portupgrade [-habcCDDefFijknNOpPPqrRsuvwWy ] [-A -file ... -command ]

  [-B -file ... -command ] [-l -file ... -file ] [-L -file ... -format ]

  [-S -file ... -command ] [-x -file ... -pkgname_glob ] [[-o -file ...

  -origin ] [-m -file ... -make_args ] [-M -file ... -make_env ]

  pkgname_glob ... ]

  工具描述:

  portupgrade命令的作用是通過ports或packages(二進制軟件包)升級系統安裝的軟件包。portinstall命令等效於portupgrade -N。

  在閱讀這個手冊頁之前,你必須清楚一個port/package與其他的ports/packages可能有下面兩種關系:

  required(必須)

  有些ports/packages是一個port/package建立或運行的必要條件。這個軟件的port的Makefiles文件中使用 BUILD_DEPENDS 和 RUN_DEPENDS 宏分別來定義必須的建立和運行所需要的ports/packages.

  dependent(隸屬依賴)

  某些ports/packages的建立或運行需要這個port/package軟件包

  警告:

  請仔細閱讀這個手冊頁,知悉你利用portupgrade將要做的更新操作。

  當這個工具運行提示“pkgdb -F“時,立刻運行它。因為如果本地package數據庫與當前的ports不一致的話,當同時升級一定數量的package時會導致本地package數據庫出現錯誤的結果。

  自從 portupgrade 允許在不 rebuilding 和 reinstalling

  依賴包的情況下升級系統安裝的package,這個工具有時會導致升級的軟件包與其他相關的軟件包二進制不兼容。對付這樣的情況的方法是運行工具時必須使

  用 -f,-r 和 -R 命令行選項。

  當portupgrade更新package數據庫時,不要中斷這個程序。即使你沒有任何的錯誤操作,中斷這個程序會造成數據庫不完整或者造成數據庫數據

  存在矛盾。運行 pkgdb -fu

  可以重新建立這個數據庫,如果不能修復,移除package數據庫文件(/var/db/pkg/pkgdb.db)。

  養成定期備份你的重要數據和配置文件的習慣,包括系統的package數據庫文件。

  選項:

  這個工具支持以下命令行參數:

  -h

  --help

  顯示help,然後退出

  -a

  --all

  對所有已經安裝的packages進行操作,等效於使用通配符 ‘*’指定pkgname_glob

  -A -file ... -CMD

  --afterinstall -file ... -CMD

  在每個軟件包安裝完之後,使用root權限運行指定的命令

  -b

  --backup-packages

  升級軟件包時保留先前版本packages的備份,保存在 PKG_TMPDIR 和 TMPDIR 環境變量指定的目錄下。

  --batch

  在批處理模式下運行一個升級進程(with BATCH=yes)。

  -B -file ... -CMD

  --beforebuild -file ... -CMD

  ports軟件包在 build 之前,運行指定的命令。如果執行 CMD 失敗退出,這個port/package的升級將被跳過。下面是一些典型的應用:

  portupgrade -B 'cvs update' 'gnome*'

  portupgrade -B 'ports_glob -M $(pwd) | (cd ../..; xargs cvs up)' slave/port

  portupgrade -aB 'test ! `make -V IS_INTERACTIVE`'

  -c

  --clean

  建立port之前執行 "make clean",這是默認的選項。參見下面的 -w 選項。

  -C

  --cleanup

  Do “make clean ” after each installation. This is the default behavior. See the -W option below.

  每個port安裝完成之後,執行"make clean",這是默認的選項,參見下面的 -W 選項。

  -D

  --distclean

  如果distfile的和校驗失敗,刪除失敗的distfile.

  -e

  --emit-summaries

  每個port處理完成後顯示摘要信息。

  -f

  --force

  強制執行一個package的升級,即使是降級安裝或者重新安裝同樣的版本,或者在pkgtools.conf中用 HOLD_PKGS 定義的port.

  -F

  --fetch-only

  僅僅是下載distfiles或者packages(編譯好的二進制軟件包)(如果 -P 被指定)。不進行 build,升級,安裝等操作。這個選項經常用在下載所有的distfile或package之後,進行安裝和更新。

  默認情況下,ports系統在建立或安裝一個package失敗時,與這個package相依賴的ports/packages也將被跳過。

  --ignore-moved

  忽略MOVED文件

  -i

  --interactive

  打開交互模式,每個port/package安裝或更新之前都要你進行確認,這個選項隱含使用 -v選項。

  -j

  --jet-mode

  打開jet模式,這個選項目前還沒有實現。

  -k

  --keep-going

  強制升級一個package,即使一些這個package所必須的packages安裝失敗。

  -l -file ... -FILE

  --results-file -file ... -FILE

  指定一個文件名,用來保存操作的結果,默認情況下,portupgrade不保存結果到文件。

  -L -file ... -FORMAT

  --log-file -file ... -FORMAT

  指定一種類似 printf(3)風格的log文件命名格式。記錄每個port的運行記錄。具體參見例子3,如果port名作為參數,並且不包含%, "%s::%s"會被追加。

  -m

  --make-args

  指定追加到每個port的make命令行後面的參數。

  -M

  --make-env

  指定追加到每個port的make命令行後面的環境參數

  -n

  --noexecute

  對命令行指定的任何package,包括相關的軟件包不進行實際的安裝或更新,只是顯示將會進行哪些操作。這是一個“測試”功能,這個選項隱含使用 -v ,並且-i -y無效。

  -N

  --new

  如果命令行指定的packagename沒有安裝,安裝一個新的port/package. 在安裝新的port/package之前,所有“必須的”軟件包都會進行升級。

  If this option is specified, you can specify a portorigin glob as

  well as a pkgname glob to specify which port to install. See portsdb(1)

  for the details of the ‘portorigin glob’

  -o -file ... -ORIGIN

  --origin -file ... -ORIGIN

  Specify a port to upgrade the following package with.

  -O

  --omit-check

  Omit sanity checks for

  dependencies. By default, portupgrade checks if all the packages to

  upgrade have consistent dependencies, though it takes extra time to

  calculate dependencies. If you are sure you have run “pkgdb -F ” in

  advance, you can specify this option to omit the sanity checks.

  -p (小寫p)

  --package

  當每個指定的port被安裝或升級以後,建立一個package(二進制軟件包),如果一個軟件包被更新而且它的依賴軟件包在命令行上給出(包括指定 -r的場合),同樣也會被建立。

  -P (大寫P)

  --use-packages

  當packages(編譯好的二進制軟件包)可用時,使用package替代ports進行安裝、升級。portupgrade在環境變量

  PKG_PATH 中指定的本地目錄中進行查找,如果找到就進行安裝或升級。如果沒有找到對應的編譯好的二進制軟件包,使用 pkg_fetch(1)

  從遠程網站進行下載,如果這兩種搜索途徑都找不到編譯好的二進制軟件包,使用port安裝、升級。

  -PP

  --use-packages-only

  即使你一直確保你的ports樹是最新的,而且portupgrade能夠找到最近版本的port,但只使用package,不使用ports,即便package在本地和遠程網站都沒有找到。

  -q

  --noconfig

  忽略 $PREFIX/etc/pkgtools.conf 的內容。

  -r

  --recursive

  對所有依賴給定軟件包的那些軟件包同樣處理。具體的說是建立或運行需要給定軟件包支持的那些軟件包做同樣的處理,這是一種遞歸操作。

  -R

  --upward-recursive

  對給定軟件包建立或運行所必須的那些軟件包同樣進行處理。(When specified with -F, fetch recursively, including the brand new, uninstalled ports that an upgraded port requires)

  -s

  --sudo

  在 sudo(8) 下運行命令

  -S -file ... -CMD

  --sudo-command -file ... -CMD

  指定一個替換 sudo(8)的命令。例如 “‘su root -c %s'",(默認情況使用 sudo )

  -u

  --uninstall-shlibs

  不保留先前版本的共享庫。默認情況下,portupgrade為了卸載程序的安全性考慮,保留先前版本的共享庫。參見 pkg_deinstall(1) 手冊頁。

  -v

  --verbose

  打開詳細輸出。

  -w

  --noclean

  每個port在 build 之前,不進行 make clean 操作。參見上面的 -c 選項

  -W

  --nocleanup

  每個port安裝完成之後,不進行 make clean 操作。參見上面的 -C 選項。

  --without-env-upgrade

  不設置 UPGRADE_* 環境變量。

  -x -file ... -GLOB

  --exclude -file ... -GLOB

  從匹配的packages中排除特定的軟件包,這個操作是在響應 -r 和/或 -R 的遞歸依賴軟件包之後運行。例如,下面的命令將升級所有第一個參數指定的軟件包的有依賴關系的軟件包,但是第二個參數指定的軟件包不進行更新,排除在外。

  portupgrade -rx XFree86 XFree86

  -y

  --yes

  對所有的問題回答 "yes",這個選項隱含使用 -v ,也讓 -n 失效。

Copyright © Linux教程網 All Rights Reserved