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 <knu@iDaemons.org>

 

◎程式的BUGS

     在安装或更新的过程之中 SUSP (^Z) 无法产生效用。

    

◎参考资料

     portupgrade

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3