跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:常见任务 Oracle Solaris 11 Information Library (简体中文) |
pkg install 命令用于安装当前未安装的软件包,以及更新已安装的软件包。pkg install 命令需要一个或多个软件包名称。
pkg update 命令用于更新已安装的软件包。如果为 pkg update 命令指定尚未安装的软件包参数,则系统不会安装该软件包。pkg update 命令使用已经安装的零个或多个软件包的名称作为参数。如果不指定任何软件包名称,将更新映像中安装的所有软件包。请参见更新已安装的所有软件包。
安装和更新软件包需要有提升的特权。有关更多信息,请参见《添加和更新 Oracle Solaris 11 软件包》中的"安装特权"。
使用获取有关软件包的信息中介绍的命令来确定想要安装的软件包。该部分中的示例指示 group/feature/amp 软件包包含 Apache、MySQL 和 PHP,并且 group/feature/amp 软件包尚未安装到此映像中。使用 pkg install 命令可安装该软件包。
提示 - 使用 -nv 选项可查看该命令将执行的操作,而不会对映像进行任何更改。
# pkg install -nv group/feature/amp Packages to install: 8 Estimated space available: 112.19 GB Estimated space to be consumed: 452.42 MB Create boot environment: No Create backup boot environment: No Services to change: 2 Rebuild boot archive: No Changed packages: solaris database/mysql-51 None -> 5.1.37,5.11-0.174.0.0.0.0.504:20110920T230125Z group/feature/amp None -> 0.5.11,5.11-0.174.0.0.0.0.2559:20110921T191255Z web/php-52 None -> 5.2.17,5.11-0.174.0.0.0.0.504:20110921T041858Z web/php-52/extension/php-apc None -> 3.0.19,5.11-0.174.0.0.0.0.504:20110921T041245Z web/php-52/extension/php-mysql None -> 5.2.17,5.11-0.174.0.0.0.0.504:20110921T041411Z web/server/apache-22/module/apache-dtrace None -> 0.3.1,5.11-0.174.0.0.0.0.504:20110921T042357Z web/server/apache-22/module/apache-fcgid None -> 2.3.6,5.11-0.174.0.0.0.0.504:20110921T042430Z web/server/apache-22/module/apache-php5 None -> 5.2.17,5.11-0.174.0.0.0.0.504:20110921T042738Z Services: restart_fmri: svc:/system/manifest-import:default svc:/system/rbac:default
输出显示该命令将安装八个软件包,并且在 "Changed packages" 部分列出这八个软件包。将 "Changed packages" 中的列表与获取有关软件包的信息中的 pkg contents 命令生成的软件包列表进行比较,可以发现属于组软件包的 web/server/apache-22 软件包将不会安装。以下命令确认该软件包已经安装并且版本正确。
$ pkg list web/server/apache-22 NAME (PUBLISHER) VERSION IFO web/server/apache-22 2.2.19-0.174.0.0.0.0.504 i--
也可以单独安装此软件包。以下命令显示安装的其他两个软件包需要此软件包。
$ pkg search -l -o pkg.name -H ':depend:require:web/server/apache-22' install/installadm package/pkg/system-repository
pkg install -nv 输出还表明,缺省情况下,安装 group/feature/amp 软件包不会创建新的引导环境。当您更新特定系统软件包(例如某些驱动程序和其他内核组件)时,将会自动创建新的引导环境。当您执行安装、卸载或更新操作时,也可能会自动创建新的引导环境。
提示 - 明确指定新引导环境是执行安装或更新的最安全方法。
新引导环境是当前引导环境的克隆,应用了指定的安装、卸载或更新更改。当前引导环境不会被修改。系统不会自动重新启动。下次重新启动系统时,新的引导环境成为缺省引导选项。当前引导环境仍然可以引导。
使用 --be-name 选项可强制创建一个新的引导环境。
# pkg install --be-name s11amp group/feature/amp Packages to install: 8 Create boot environment: Yes Create backup boot environment: No DOWNLOAD PKGS FILES XFER (MB) Completed 8/8 640/640 70.9/70.9 PHASE ACTIONS Install Phase 942/942 PHASE ITEMS Package State Update Phase 8/8 Image State Update Phase 2/2 PHASE ITEMS Reading Existing Index 8/8 Indexing Packages 8/8 A clone of solaris-174 exists and has been updated and activated. On the next boot the Boot Environment s11amp will be mounted on '/'. Reboot when ready to switch to this updated BE. # pkg list group/feature/amp pkg list: no packages matching 'group/feature/amp' installed
pkg list 命令报告 group/feature/amp 软件包未安装,因为 group/feature/amp 软件包没有安装在当前引导环境中。group/feature/amp 软件包安装在新的 s11amp 引导环境中。
使用 beadm list 命令可发现系统具有一个新的活动引导环境,名为 s11amp。"N" 引导环境当前处于引导状态;"R" 引导环境是重新引导时的缺省引导环境。
# beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- s11amp R - 20.75G static 2011-09-23 13:58 solaris - - 44.81M static 2010-11-07 17:45 solaris-151a - - 158.12M static 2010-11-12 14:37 solaris-174 N / 30.04M static 2011-09-02 12:38
检查 group/feature/amp 软件包是否安装在新的引导环境中。I 列中的 "i" 表示 group/feature/amp 软件包已安装。
# beadm mount s11amp /mnt # pkg -R /mnt list group/feature/amp NAME (PUBLISHER) VERSION IFO group/feature/amp 0.5.11-0.174.0.0.0.0.2559 i--
请记住卸载 s11amp 引导环境。
# beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- s11amp R /mnt 20.75G static 2011-09-23 13:58 solaris - - 44.81M static 2010-11-07 17:45 solaris-151a - - 158.12M static 2010-11-12 14:37 solaris-174 N / 30.05M static 2011-09-02 12:38 # beadm unmount s11amp # beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- s11amp R - 20.75G static 2011-09-23 13:58 solaris - - 44.81M static 2010-11-07 17:45 solaris-151a - - 158.12M static 2010-11-12 14:37 solaris-174 N / 30.06M static 2011-09-02 12:38
使用以下命令之一可更新具有可用于此映像的更新的所有当前已安装软件包:
不指定任何要更新的软件包。
# pkg update --be-name updateBEname
指定 '*' 作为要更新的软件包。
# pkg update --be-name updateBEname '*'
当前映像中安装的并且有可用于此映像之更新的所有软件包都会更新。
此操作可能会更新关键系统软件包并创建新的引导环境。最佳做法是首先使用带 -nv 选项的此命令。然后使用 --be-name 选项(如有必要)创建具有指定名称的新引导环境。