安装和维护LPP软件
installp 对包提供了如下四种主要的操作:
Apply
Commit
Reject
Remove
webes.4.0.0.1 commited
webes.4.0.0.2 commited
软件包在被安装后,可以处于 applied 和 committed 两种状态。
applied 状态 :
applied 状态会在 /usr/lpp/PackageName 目录保留软件包的前一个版本;
当软件包的新版本出现问题时,可以回滚到前一个稳定版本;
committed 状态 :
committed 状态则会删除软件所有以前的版本,用户不再可以进行回滚操作。
1. 将软件包安装为 applied 状态
installp -avX -d/usr/sys/inst.images bos.net
installp -aF -d /dev/cd0 sysmgt.help.zh_CN
列出已经applied 但未提交的安装更新
installp -s
2. 将软件包安装为 committed 状态
installp -acpX -d/usr/sys/inst.images bos.net
commit 一个处于 applied 状态的软件包,也是使用 installp 命令来完成的。
如:
installp -c FilesetName| all
如:commit 所有的软件包更新
installp -cgX all
3. reject 一个处于 applied 状态的软件包
installp -r FilesetName
-- 批量回滚处于Applied软件包
如:reject 所有写在 ./reject.list 文件中的 applied 状态的软件包
installp -rBfX ./reject.list
applied--->commited
webes 4.0 commited
webes 4.2 applied
installp -r webes 4.2
smit commit
smit reject
installp 处理 Apply 操作的流程:
1. 检查所需的 filesets 是否在安装媒介上存在。
2. 检查所需的 filesets 的版本,以确定他们是否已经被安装在系统上。
3. 解包 liblpp.a 文件,将其中的控制文件按照包的类型拷贝到相应目录。
(usr 部分拷贝到 /usr/lpp/Package_Name,share 部分拷贝到 /usr/share/lpp/Package_Name,root 部分拷贝到 /usr/lpp/Package_Name/inst_root/liblpp.a)
4. 检查磁盘空间。
5. 检查所依赖的包是否已经安装或者在即将安装的软件包列表上。
6. 检查 license 。
7. 执行安装(拷贝文件,运行安装脚本)并生成 status 文件。
8. 如果 status 文件显示 apply 操作成功,更新 ODM 数据库中的 SWVPD 信息,否则清除并显示所有失败的文件。
installp 处理 Reject 操作的流程
1. 检查软件包之间的依赖关系,保证所有被依赖的包都已被 Reject 。
2. 如果 ./lpp.reject 存在则执行 ./lpp.reject,否则执行系统缺省的 /usr/lib/instl/reject 脚本,进行和 Apply 反向的 Reject 操作
3. 更新 SWVPD 数据
installp 处理 Remove 操作的流程
1. 检查包之间的依赖关系,保证所有被依赖的包也都被 Remove 。
2. 如果 ./lpp.deinstall 存在则执行 ./lpp.deinstall ,否则执行系统缺省的 /usr/lib/instl/deinstall 脚本。
3. 删除属于此 fileset 的文件。
4. 从 SWVPD 中删除相关信息。
5. 删除软件 license 许可。