学习内容:在AIX中安装与维护软件

学习目标:

1) 了解安装软件包的含义及命名规则;

2) 了解AIX如何发布补丁,知道自己的AIX及已安装软件的版本情况;

3) 知道如何安装与管理软件及升级;

4) 会修复损坏的软件;

5) 知道如何通过Fix Central 和SUMA下载补丁;

 

AIX安装介质

标准的AIX安装光盘包括

1) AIXv6.1 Base;

2) AIXv6.1 Expansion Pack;

3) AIXv6.1 InfoCenter;

4) AIXToolbox for Linux;

5) MozillaFirefox Browser;

对需要在虚拟环境中管理系统的用户来说,还需要额外购买PowerVM产品,包括Virtual I/O Server v2.1 及 Virtual I/O ServerExpansion Pack.

 

一.了解AIX安装软件包

(一)AIX安装软件包的命名规则

AIX的安装软件包名包括三部份:Licensed Program product(LPP)(许可程序产品), Package(软件包), Fileset(文件集)。格式如AAA.BBB.CCC.DDD。其中AAA表示LPP部分,BBB表示Package部分,CCC及后面的部分表示 Fileset部分。

具体说明如下:

LPP:指一个包含了所有和这个许可程序相关的软件包的完整软件产品。它可以是一系列的package或者只是单一的一个package。一般情况下,用户可以选择不一次购买整个LPP,而是单独购买其中的几个package。

Package:软件包是一组可单独安装的文件集的集合,该集合提供了一系列相关的功能,包通常为bff格式(Backup format file)。

Fileset:每个fileset包含的是一组逻辑上相关的文件。fileset是最小的可独立安装的实体,每个fileset都是可以单独安装、升级、卸载的。

例如:

bos:LPP的名字,操作系统基本组成部分(Base Operating System Component)。

bos.net:软件包名,操作系统基本组成部分中与网络相关的安装包。

bos.net.tcp:文件集名,与TCP/IP功能实现相关的文件集合。

bos.net.tcp.server:文件集名,与TCP/IP Server功能实现相关的文件集合,此处为最小的可安装单元。

 

(二)AIX 软件束(bundles)

在任何操作系统中安装部署软件,都会要求所安装的软件产品具有特定的格式,比如在 Linux 中,RPM 是最常见的软件安装格式 , 而在AIX 中,installp 是最常见的软件安装格式。installp格式的软件产品根据粒度大小,可以划分为文件集、软件包,许可程序产品等等。这些不同粒度的安装包可以同时安 装,也可以分别独立安装。在 AIX 5.1 以前,AIX 不支持installp 以外的软件安装格式,如果一些软件没有创建对应的 installp 安装包,那么这些软件就无法在 AIX 上安装使用,这造成了很多优秀的软件产品在 AIX 上的缺失。从 5.1 开始,AIX 允许用户通过SMIT 或者 geninstall(General Install) 命令来进行多种文件格式软件的安装工作。新增的支持格式包括 RPM 格式和 InstallShIEld MultiPlatform (ISMP) 格式。与此同时,AIX 的安装光盘中也开始包含 installp 格式以外的安装程序。用户可以在安装光盘的 installp/ppc 目录上找到 installp 安装文件,在光盘的 RPMS/ppc 上找到 RPM 安装文件,在光盘的 ISMP/ppc 找到 ISMP 安装文件。

  Installp Bundle 安装就是一种支持多种软件格式的安装方式。用户可以编辑 Bundle 文件,指定所要安装软件的名称,相应软件格式等信息,通过 SMIT, geninstall或者 NIM 等安装工具调用 Bundle 文件,实现软件安装。

Bundle 文件是以 .bnd 为后缀的文本格式的文件,可以通过使用任意的文本编辑器(比如 vi, eMacs 等)来进行创建。此外,为了能够被安装程序正常使用,Bundle 文件至少要具有 read 权限。

  Bundle 文件的内容包括注释部分和文件集列表部分,如下所示:

#example bundle file 

R:zip-2.3-3.aix4.3.ppc.rpm 

I:bos.sysmgt.nim.master 

  其中注释部分的行首以“#”开头,所要指定安装的软件名分列每行,以指代该软件名的安装格式的字母开头。Bundle 文件目前只支持 4 种如软件格式,下面列出了这 4 种格式和其对应的前缀字母:

  I: installp 格式

  R: RPM 格式

  J: ISMP 格式

  E: interim fix 格式

Bundle 的分类

  Bundle 文件通常分为系统Bundle 文件和用户 Bundle 文件两类,其中系统Bundle 文件是操作系统安装完成后预设的 Bundle 文件,为方便用户安装那些操作系统没有默认安装的系统软件,存放在/usr/sys/inst.data/sys_bundles目录中;用户 Bundle 文件是某些用户 ( 通常是高级用户 ) 根据自己的使用习惯或者工作需要而创建,通常把这些文件放置在/usr/sys/inst.data/user_bundles/ 目录下,这样当使用 SMIT 工具进行安装的时候可以自动发现这些 Bundle 文件。

 

(三)AIX software levels(有关在AIX中的软件升级与打软件补丁)

VRMF是软件的系统版本号(Version)、发行版本号 (Release)、改进版本号 (Modification level)和修正版本号 (Fix level) 的首字母集合。这四个数字组合在一起,表示了软件包的版本。其中Version 和 Release 版本号的升级是需要购买,而后面两个版本号的升级可以到 IBM 网站免费下载。每个 fileset 都有各自的版本号,AIX操作系统也有它的版本号。

    系统版本号(Version)——一个两位的数字用来表示产品的发布版本。例如:AIX6,其中的 6 就是操作系统的版本号。

发行版号(Release)——发行版号也是由一个两位数字表示,它代表了软件的发行版本。例如 :AIX6.1,其中的 1 就是发行版号,我们在这里省略了十位的 0,将 01 简写为 1.

 改进版号(Modification level)——是由一个四位数字组成,表示最新的改进版级别。一般情况下,每过一段时间,软件发布者会将大量的更新打包成一个安装镜像并发布,此时改进版本级别会被改变。

修正版本号(Fix level)——是由一个四位数字组成,表示最新的 fileset 修正版本。软件每经过一次修正,其修正版本号都会增加一次,直到改进版本号升高,修正版本号将被重置为 0。

AIX中为软件升级或打补丁分为四种情况:

1)  Base level:初次安装后的软件,没有升级或打过补丁;

2) Technology level(TL):TL 是为 AIX 版本或新硬件支持所添加的一组修复程序或新特性。以下是决定您应该更新到新版本 TL 的原因: 新版本 TL 提供了一个您需要的新功能;当前版本的 TL 不能使用或将不支持新的修复和服务程序包;或系统目前需要一个修复程序,但是这个程序只在新版本 TL 中支持。

IBM一年会发行二次TL,第一次与硬件特性与软件服务有关,第二次与新硬件特性、软件服务、新增软件特性有关。每二年发布一次大的TL,也就是说每一次的TL发布最多保持两年的实时性。

3)  Service pack(SP):SP只发布与服务相关的软件升级信息,一般在发布TL与补丁信息之间发布,多数是针对一些重大,危急,与安全相关的事件相关的升级。

4)  Interim fixes(ifix):在正式发布补丁或其它信息发布之间的补丁,通常可修复一个或多个产品的技术缺陷,该名称还暗指将来会有经过更完全测试的补丁可供使用。

在以前,AIX的系统管理员只能针对各个文件集单独的下载,安装,导致所安装软件的版本情况(即升级或补丁情况)混乱,所以IBM推出了TL和SP,以打包的形式一次性发布同时期所有的升级与补丁情况。理想状态下,系统应该安装所有最新的补丁包(TL 和 SP)。

可使用oslevel命令查看AIX操作系统的版本与升级情况,如:

#oslevel –s 输出:6100-02-01-0847。

其中6100为系统的VRMF,指版本号为6,发行号为1,改进版本与修正版本均为0,TL为02,SP为01,SP的发布时间为2008年的第47周。

二.软件安装与维护

AIX中的软件安装与维护均可通过三种方式实现:SMIT,命令行,或systems director console。

命令行方式:

--lslpp:列出已安装的所有软件;

--installp:用于安装和维护AIX软件安装包,传统的AIX软件安装包均为LPP包,只能通过此命令进行;

--rpm:AIX 5L后的新命令,可用于安装Linux包;

--geninstall:新命令,可用于安装多种格式的安装包,如LPP, RPM, ISMP。

(一)软件状态

分为应用状态(applied)和执行状态(committed)。在初次安装软件时,软件会自动成为执行状态。当进行软件升级或打补丁时,可以选 择是应用还是执行,应用状态允许在新版本安装完成后,将旧版本仍然保存在机器上,只是旧版本处于不激活状态,只激活新版本,这时如果新版本工作正常,再进 行commit,如果新版本工作不正常,可进行reject,删除新升级的版本,回到新版本中工作。

可以使用lslpp命令查看系统中所安装文件集或文件集升级的情况。

如# lslpp –L | grep bos.net.tcp.server

输出:bos.net.tcp.server 6.1.1.1   C     F   TCP/IP Server

其中6.1.1.1为该fileset的VRMF号,

接下来的字母表示文件集的安装状态(state codes),

A—Appled;(应用状态)

B— Broken; (损坏状态)

C— Commited; (执行状态)

E—EFIX Locked.

O—Obsolete(已过时,功能已被移至新版本中)

?-- InconsistentState (状态不一致,使用lppchk –v查看)

再接下来的字母表示文件集的安装类型(Type codes):

         F—InstallpFileset;

         P—Product;

         C—Component;

         T—Feature;

         R—RPMpackage;

         E—InterimFix;

lslpp有很多有用的命令选项,可以用man命令查看。

 

有时当用户想使用一个特定命令时,发现该命令没有在系统中安装,而且也不知道该命令包含在哪个LPP中,这时可以使用which_fileset命 令查看。which_fileset命令会去搜索/usr/lpp/bos/AIX_file_list文件,在此文件中查找命令或文件包含在哪个文件集 中。

/usr/lpp/bos/AIX_file_list文件不是默认安装文件,必须手工安装bos.content_list文件集后系统才有此文件,此文件非常大。

例如:# which_fileset shutdown

输出:/usr/sbin/shutdown     bos.rte.control         6.1.2.0

 

(二)安装新软件

1)使用SMIT:

#smit        install_all(安装软件)

#smit       update_all(升级软件)

 

2)使用命令行

命令installp,

参数–a (apply), -c(commit), -p(preview), -g(apply prerequites),-X(expand filesystems, if needed), -Y(accept license agreements), -d(device ordirectory location of software).

# install –acpgXYd . bos.rte.install

# install –acpgXYd /TL02_SP01 all

 

命令geninstall

参数-I(use install flags,此时该命令与installp命令相同), -p(preview), -d(device or directory location of software).

#geninstall –I “-acgXY” –p –d .bos.rte.install

#geninstall –I “-acgXY” –p –d /TL02_SP01all

 

Linux安装包:AIX与Linux非常兼容,许多工具是使用Linux安装包。

命令:

# rpm –qa 列出所有已安装的软件包

# rpm –e cairo-1.0.2-6 删除此软件

# rpm –i bash-3.2-1.aix.ppc.rpm 安装此软件包

 

(三)删除已安装的软件

1)使用SMIT

# smit remove

 

2)使用命令行

例如:

# installp –u Firefox.base.rte (installp –u会删除该软件及与该软件有关的所有升级与补丁信息,不管这个软件是否处理执行状态或是否已损坏。所有与该产品相关联的软件也会被消除,除非加上-g选 项)(bos.rte为AIX的基本软件包,试图删除bos.rte将不被执行)。

# install –upg X11* (在删除X11*相关的软件之前,先preview并决定是否删除与该被删除软件相关联的软件)

 

(四)恢复损坏或不一致的软件

在安装、升级、删除软件过程中,如果被意外中止,可能会引起软件的损坏。使用lppchk命令可列出系统中有问题的软件,如果系统中没有此种软件,则该命令输出为空。

对于有问题的软件,可用installp–C命令进行清除(clean-up),然后再重新进行安装。如果有问题的软件是一个未安装软件,可用installp –u强制删除。

 

三.系统补丁

例如给cluster.doc.en_US.es.pdf软件升级,先进行查询,得知其改进版本为0,则通过installp-aB命令对其升级 (相关升级包已下载至当前目录),升级后软件改进版本号为1,状态为A即applied,此后,可通过installp –r对此升级进行撤销,回退至原来的状态,或通过installp –c执行该升级。

 

可以通过instfix –i命令查询系统中通过TL和SP发布包安装的所有补丁。

 

Interimfix ( ifix )

与ifix相关的两个命令:epkg和emgr。其中epkg用于创建ifix包,该ifix包可以被emgr命令使用。emgr命令用于安装,删除,列出和验证这些系统补丁。如:


升级助手—SUMA

SUMA可根据系统实际情况决定哪些补丁需要下载,及时下载并自动安装,极大减轻了系统管理员的负担。在SUMA下载任务设置界面中有一项 “System or lslpp output to filter against”设置,设置为localhost,则它会对正在运行的系统中的软件目录进行筛选,如系统已为Version6.1级别,则不会下载任何 Version5.3级别的修复程序。

下载可分几种类型:通过APAR号(APAR:Authorizedproblem analysis reports,IBM对现行系统可能存在问题的分析报告),通过补丁类型,通过TL,通过SP,下载所有最新的补丁,单独下载所需的文件集(可以通过 SUMA 获得最新的 AIX 修复程序。然而,并不推荐您安装最新的修复程序。相反,我们建议您安装最新的 TL 或 SP,因为将它们作为一个单元进行了测试,并且经历了较长的测试周期)。

使用SUMA必须保证网络的通畅,SUMA支持多种网络下载方式:http,https, ftp。

(一)SUMA的基本设置

#smit suma_config_base

此界面中的设置应用于所有SUMA下载任务,如设置下载所使用的协议,限制下载文件的大小,下载时间超时的界定等。

# suma –c 可以查看SUMA的基本设置情况。

(二)SUMA下载任务设置

# smit suma_task_defaults

可以根据每次下载需要进行单独的设置,设置完成后可使用

# suma –D查看设置情况。

(三)直接使用SUMA命令行下载

如下载最新的SP包:

# /usr/sbin/suma –x –a RqType=SPAction=Download –a RqName=’6100-01-01-0823’

下载周三23:00针对AIX6.1发布的TL2:

# /usr/sbin/suma –s “0 23 * * 3” –a RqType=ML–a Action=Download –a RqName=’6100-02’

下载最新的安全补丁:

# /usr/sbin/suma –x –a Action=Download –a RqType=Security

 

SUMA可以放至到crontab中使其自动下载,如:

crontab: 0 23 * * 3  _SUMA=cron /usr/suma/bin/suma  –x  1

 

有用的资料:http://www.ibm.com/developerworks/cn/aix/library/au-updateaix.html#resources

通过IBM网站下载

http://www-933.ibm.com/support/fixcentral/

AIX4.3.3后的所有补丁均可在此网站下打到并下载。此网站上不但包括AIX补丁,还包括IBM其它产品的相关补丁。

练习:

1.软件处于什么状态用户才可以使用它?(答案:a,d)

a.      Applied state

b.      Removed state

c.      Install state

d.      Commit state

2.写出一条命令可以列出系统中所有已安装的软件? (答案:lslpp –l或lslpp -L)

3.下面哪些可以做为一个实体被安装? (答案:全选)

a.      Ifix

b.      LPP

c.      Package

d.      Bundle