欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

AIX如何管理LPP及强制删除LPP

程序员文章站 2024-01-31 08:34:52
...

复杂度3/5
机密度4/5

最后更新2021/04/29

前面介绍过LPP是AIX的程序包,AIX近几年来(可能也有十多年了)为了方便技术支持,大补丁、升级、新安装等操作时,几乎都是强制标准安装模式,除了一些辅助性的功能包,把所有的LPP程序包都会安装进去。有时即使已经采用了选择性安装,在AIX的包管理机制中会检查哪些包没有装,在相关安装时会一并安装进去。如果系统来回增删了几次,有可能各个包之间的依存关系发生混乱,导致无法强制覆盖、无法安装。尽管AIX的包依赖管理比Linux简单很多,也不会有Linux那么多散碎的依赖关系(这也是AIX强制整体安装的结果吧?),意外总可能发生,就需要手工干预了。

其实AIX使用四个ODM对其安装的所有包进行管理,此处指通过lslpp能看到的安装包。AIX也支持rpm,所有通过rpm安装的程序不在此列。另外,非IBM AIX操作系统集成的的软件也不在此列,例如几乎所有第三方程序都有自己的管理方案,不在本节讨论范围之内。

AIX的LPP包信息保存在4个ODM中,分别是lpp,product,history,inventory。强烈建议直接修改odm之前进行odm备份,无需复杂备份,直接copy一份到其它目录即可,当然也可以使用saveodm命令。下面其他步骤用来将出现问题的lpp包从管理信息中强制删除,这样再此之后可以再次安装,就不会有什么依赖冲突了。

  1. Backup the odm
# /usr/lib/instl/saveodms
  1. Remove from /usr/lib/objrepos
# export ODMDIR=/usr/lib/objrepos
# odmget -q name=<fileset_name> lpp  -> 记录下有问题包的 "lppid#"
# odmdelete -q name=<fileset_name> -o lpp
# odmdelete -q lpp_name=<fileset_name> -o product
# odmdelete -q lpp_id= <lppid# from above> -o history
# odmdelete -q lpp_id= <lppid# from above> -o inventory
  1. Remove from /etc/objrepos
# export ODMDIR=/etc/objrepos
# odmget -q name=<fileset_name> lpp  -> take note of the "lppid#"
# odmdelete -q name=<fileset_name> -o lpp
# odmdelete -q lpp_name=<fileset_name> -o product
# odmdelete -q lpp_id= <lppid# from above> -o history
# odmdelete -q lpp_id= <lppid# from above> -o inventory
  1. 执行lppchk -v 看看是否还有错误提示,如果没问题,可以重新安装以前出现问题的程序包。
相关标签: aix 操作系统