自己生成AIX bff打包安装文件

2023-10-27

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

最后更新2021/04/28

AIX提供了生成打包文件的命令:mkinstallp,需要安装bos.adt.insttools fileset
查看fileset是否已经安装:

#lslpp -L bos.adt.insttools
  Fileset                      Level  State  Type  Description (Uninstaller)
  ----------------------------------------------------------------------------
  bos.adt.insttools         7.1.3.15    C     F    Tool to Create installp Packages
  • 准备
    先要准备一个安装目录:
#mkdir -p ~/build/mypackage

把安装包需要的文件放到对应的目录和子目录下:

~/build/mypackage/usr/local/bin/my_execution
~/build/mypackage/usr/local/filepackage/my_files
~/build/mypackage/usr/local/filepackage/lib/my_libs

mkinstallp命令使用一个template文件控制如何生成安装文件,下面是一个最简单模板文件的例子:

#cat ~/build/mypackage/template
Package Name: my_package
Package VRMF: 1.0.0.0
Update: N
Fileset
  Fileset Name: mypackage.rte
  Fileset VRMF: 1.0.0.0
  Fileset Description: bff packaging process template
  Bosboot required: N
  License agreement acceptance required: N
  Include license files in this package: N
  Requisites:
  USRFiles
     /usr/local/bin/my_execution
     /usr/local/filepackage/my_files
     /usr/local/filepackage/lib/my_libs
  EOUSRFiles
  USRLIBLPPFiles
  EOUSRLIBLPPFiles
  ROOT Part: N
  ROOTFiles
  EOROOTFiles
EOFileset

VRMF 表示此fileset对应的版本号Version, 发布号Release, 维护级别Maintenance level, 补丁级别Fix

模板文件中的USRFiles段说明在安装包中有哪些文件,以及安装的目标位置;

ROOTFiles表示不同机器之间不能共享的文件,仅仅用于AIX无盘工作站使用,目前已经没有什么用处,通常都是N;

  • 生成包
    生成命令非常简单:
# mkinstallp -d ~/build/mypackage -T ~/build/mypackage/template
Using ~/build/mypackage as the base package directory.
Cannot find ~/build/mypackage/.info. Attempting to create.
Using ~/build/mypackage/.info to store package control files.
Cleaning intermediate files from ~/build/mypackage/.info.

Using ~/build/mypackage/template as the template file.
vopt_manager 1.0.0.0 I
processing mypackage.rte
creating ./.info/liblpp.a
creating ./tmp/mypackage.1.0.0.0.bff
  • 安装
    安装刚生成的安装包
 # cd ./tmp
 # inutoc .
 # installp -acXgd . mypackage.rte
+-----------------------------------------------------------------------------+
                    Pre-installation Verification...
+-----------------------------------------------------------------------------+
Verifying selections...done
Verifying requisites...done
Results...

SUCCESSES

  Filesets listed in this section passed pre-installation verification
  and will be installed.

  Selected Filesets
  -----------------
  mypackage.rte 1.0.0.0                    # manage creation and deletion...

  << End of Success Section >>

+-----------------------------------------------------------------------------+
                   BUILDDATE Verification ...
+-----------------------------------------------------------------------------+
Verifying build dates...done

FILESET STATISTICS

    1  Selected to be installed, of which:
        1  Passed pre-installation verification
  ----
    1  Total to be installed

+-----------------------------------------------------------------------------+
                         Installing Software...
+-----------------------------------------------------------------------------+

installp:  APPLYING software for:
        mypackage.rte 1.0.0.0

Finished processing all filesets.  (Total time:  0 secs).

+-----------------------------------------------------------------------------+
                                Summaries:
+-----------------------------------------------------------------------------+

Installation Summary

Name Level Part Event Result

mypackage.rte            1.0.0.0         USR         APPLY       SUCCESS

You can see your package content with lslpp :

 # lslpp -f mypackage.rte

  Fileset               File
  ----------------------------------------------------------------------------
Path: /usr/lib/objrepos
  mypackage.rte 1.0.0.0
     /usr/local/bin/my_execution
     /usr/local/filepackage/my_files
     /usr/local/filepackage/lib/my_libs

如果重新build,要先把.info和tmp子目录删掉:

#rm -rf tmp .info
  • 更进一步
    前面只完成了最基础的打包过程,如果想在安装之前、之后做一些额外动作怎么办?还有pre/post script可以帮助实现这个目标。

生成相应的脚本:

 echo 'echo PRE INSTALL' > /tmp/pre_install.sh
 echo 'echo POST INSTALL' > /tmp/post_install.sh
 echo 'echo PRE REMOVAL' > /tmp/pre_removal.sh
 chmod u+x /tmp/pre_install.sh /tmp/post_install.sh /tmp/pre_removal.sh

修改模板文件:

#cat ~/build/mypackage/template
Package Name: mypackage
Package VRMF: 1.0.0.0
Update: N
Fileset
  Fileset Name: mypackage.rte
  Fileset VRMF: 1.0.0.0
  Fileset Description: bff packaging process template
  Bosboot required: N
  License agreement acceptance required: N
  Include license files in this package: N
  Requisites:
  USRFiles
     /usr/local/bin/my_execution
     /usr/local/filepackage/my_files
     /usr/local/filepackage/lib/my_libs
  EOUSRFiles
  USRLIBLPPFiles
     Pre-installation Script: /tmp/pre_install.sh
     Post-installation Script: /tmp/post_install.sh
     Pre-deinstall Script: /tmp/pre_removal.sh
  EOUSRLIBLPPFiles
  ROOT Part: N
  ROOTFiles
  EOROOTFiles
EOFileset

现在我们把这些脚本放到了绝对目录/tmp中,其实也可以放到build目录下,但脚本编写一定要注意在build目录下的时候,真正执行时的所在目录其实是刨除build父目录之后的位置。下面是安装时的屏显:

+-----------------------------------------------------------------------------+
                         Installing Software...
+-----------------------------------------------------------------------------+

installp:  APPLYING software for:
        mypackage.rte 1.0.0.0

PRE INSTALL
POST INSTALL
Finished processing all filesets.  (Total time:  0 secs).

+-----------------------------------------------------------------------------+
                                Summaries:
+-----------------------------------------------------------------------------+

Installation Summary
 -------------------- 
 Name Level Part Event Result

mypackage.rte            1.0.0.0         USR         APPLY       SUCCESS

删除:

 #installp -u mypackage.rte
+-----------------------------------------------------------------------------+
                    Pre-deinstall Verification...
+-----------------------------------------------------------------------------+
Verifying selections...PRE REMOVAL
done
Verifying requisites...done
Results...

SUCCESSES
---------
  Filesets listed in this section passed pre-deinstall verification
  and will be removed.

  Selected Filesets
  -----------------
mypackage.rte 1.0.0.0                    # manage creation and deletion...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自己生成AIX bff打包安装文件 的相关文章

  • RTX线程通信之——线程标志

    文章目录 Thread Flags 概念 RTX线程标志API 案例 LED灯同步闪亮 小结 参考资料 Thread Flags In a real application we need to be able to communicate
  • Client-Server问题

    1 实验内容与要求 需要创建客户Client和服务器Server两个进程 它们通过管道进行通信 Client进程派生3个生产者线程 一个管道线程 共享一个20个slots的缓冲区 每个生产者线程随机产生一个数据 打印出来自己的id 进程 线
  • 设备管理过程

    复杂度2 5 机密度2 5 最后更新2021 04 19 AIX中对设备会有如下五个操作 define aix下能看到设备的定义 但驱动程序并没有加载或初始化 该设备不可用 lsdev看到设备时defined 很多逻辑设备 vg lv等 只
  • 虚拟机管理程序、虚拟化和云: 深入剖析 PowerVM 虚拟机管理程序

    预备知识 Power 是没有限制的虚拟化 一些企业打算依靠 PowerVM 虚拟化将多个工作负载整合到较少系统上 从而提高服务器利用率 降低成本 Power VM 为基于 Power Systems 平台的高级 RAS 功能和领先性能为 A
  • 红帽7.9部署telnet服务

    升级ssh 为预防万一提前配置telnet服务 安装软件包 yum install telnet server yum install xinetd xinetd加入开机自启 systemctl enable xinetd service
  • Linux,Network manager 导致节点异常重启

    推断是Network manager 导致的 原因待查今天在VmWare的虚拟机上装了个测试RAC 又遇到了一个摸不到头绪的问题CRS装好后 一旦登陆图形界面 节点就重启 事情就有这么巧不登陆图形界面 观察了1个小时没问题 一旦登陆后 立刻
  • 《一个操作系统的实现》读书笔记-- 第一章--最小的“操作系统”

    一 最简单的 操作系统 最最简单的 操作系统 就是一个最最简单的引导扇区 Boot Sector 虽然它不具有任何功能 但是它却能够直接在裸机上运行 不依赖其他软件 一个引导扇区是512个字节 并且以0xAA55为结束标识的扇区 下面就是那
  • Visual studio 2005 hangs on startup AppHangXProcB1 svchost devenv.exe svchost.exe:{2a811bb2-303b-48b...

    This problem has been torturing me for the whole afternoon and after searching on the web for a long time I finally get
  • 自己动手写操作系统(一)

    本系列文章将一步步实现一个简单的操作系统 实验环境是在Linux系统下通过Bochs虚拟机运行我们自己写的操作系统 一 实验环境搭建 1 Ubuntu的安装 Windows用户可以选择在虚拟机中安装Ubuntu 具体安装教程可自行搜索 2
  • Windows运行常用命令(win+R)

    1 calc 启动计算器 2 notepad 打开记事本 3 write 写字板 4 mspaint 画图板 5 snippingtool 截图工具 支持无规则截图 6 mplayer2 简易widnows media player 7 S
  • Linux常用命令记录

    文章目录 1 软件安装 安装软件 来自源服务器 安装 deb软件 来自本地 deb文件 修复依赖关系 卸载软件 2 文件 文件夹操作 删除文件夹 移动文件 文件重命名 3 程序查看 处理 进程查看 查看端口占用情况 强制终止程序 4 解压文
  • Anaconda 安装 Python 库(MySQLdb)的方法-(转)

    安装python库的过程中 最重要的地方就是版本需要兼容 其中操作系统为64位 Python为2 X 64位 下载安装文件的时候也要注意版本匹配 其中文件名中包含的cp27表示CPython 2 7版本 cp34表示CPython 3 4
  • 使用 GCC C 在 AIX 上处理空指针

    我们有一段用 C 编写的代码 有时不能很好地处理零指针 该代码最初是在 Solaris 上编写的 此类指针会导致分段错误 并不理想 但比继续耕耘要好 我们的经验是 如果您在 AIX 上读取空指针 您将得到 0 如果您使用xlc编译器你可以添
  • Linux(13):例行性工作排程

    例行性工程 听谓的排程是将工作安排执行的流程之意 Linux 排程就是透过 crontab 与 at 这两个东西 两种工作排程的方式 一种是例行性的 就是每隔一定的周期要来办的事项 一种是突发性的 就是这次做完以后就没有的那一种 at at
  • Linux(12):磁盘配额(Quota)与进阶文件系统管理

    磁盘配额 Quota 的应用与实作 Quota 的一般用途 针对 www server 例如 每个人的网页空间的容量限制 针对 mail server 例如 每个人的邮件空间限制 针对 file server 例如 每个人最大的可用网络硬盘
  • 什么时候a>a为真?

    是的 我想我真的是在做梦 我在 AIX 机器上编译并运行了以下代码 AIX 3 5 PowerPC POWER5 processor type IBM XL C C for AIX V10 1 Version 10 01 0000 0003
  • I/O设备模型

    I O设备模型 绝大部分的嵌入式系统都包括一些I O Input Outut 输入 输出 设备 例如仪器上的数据显示屏 工业设备上的串口通信 数据采集设备上用于保存数据的Flash或SD卡 以及网络设备的以太网接口等 I O设备模型框架 R
  • 【操作系统xv6】学习记录4-一级页表与二级页表

    占位
  • AIX 进程内存随着循环中的 malloc 释放调用而增加

    我在 AIX 6 1 上运行此代码 while true int a rand generate a random integer value void test malloc a a allocate large chunk of mem
  • SWIG 在 AIX 上崩溃(使用 python,可能还有其他所有 SWIG 支持)

    SWIG 在 AIX 上可以轻松编译和安装 不幸的是 一个简单的SWIG 你好世界 http www swig org tutorial html 也可以编译 但不是那么容易 因分段错误或非法指令而崩溃 取决于编译 链接器过程的一些细节 g

随机推荐

  • java安装配置以及eclipse下载(Windows10)

    1安装java 安装java有两部 1 安装jdk和jre 2 配置环境 1 1 安装jdk 和 jre jdk 安装网址 http www oracle com technetwork java javase downloads inde
  • 使用NIST库查找介质衰减系数

    前提 本文需要利用NIST库查找物质X射线下的衰减系数 NIST库网址 https www nist gov pml 进入网址后显示如下界面 点击左侧选项栏 点开后选择 向下拉选择 选择 而后滑到底部 根据需要选择对应的表格
  • JVM问答

    目录 1 什么是Java虚拟机 为什么Java被称作是 平台无关的编程语言 2 Java内存结构 3 解释内存中的栈 stack 堆 heap 和方法区 method area 的用法 4 对象分配规则 5 什么是类的加载 6 类加载器 7
  • Mycat读写分离、主从切换学习

    Mycat读写分离 主从切换学习 2016 02 21 21 39 01来源 CSDN作者 zhanglei 16155人点击 id iframeu2217703 0 src http pos baidu com pcum rdid 221
  • PyMacroParser 宏解析工具

    PyMacroParser 宏解析工具 PyMarcoParser宏解析工具 题目要求 题目描述 示例 解题思路 1 load函数 2 preDefine函数 3 dumpDict函数 4 dump函数 关键代码 1 主要函数 2 关键函数
  • 每日一题:蒟蒻

    蒟蒻 题目 Daimayuan Online Judge map可以一一映射 按键值从小到大排序 AC代码 include
  • 多线程大串讲之一:CreateThread的学习

    function CreateThread lpThreadAttributes Pointer 安全设置 dwStackSize DWORD 堆栈大小 lpStartAddress TFNThreadStartRoutine 入口函数 l
  • unity 编辑模式下运行代码和OnEnable的使用

    AudioListener inspector的代码运行 inspector页面的脚本右上角三个小点 点击右键 选择自己写的函数名 就可以运行 相应的程序了 重点 ContextMenu SetPos ContextMenu SetPos
  • 总结一下使用过的几类LCD屏特点

    1 MCU屏 一般MCU屏都会自带显存 接口为16位的80并口 相当于支持RGB565模式 8080是通过 读使能 RE 和 写使能 WE 两条控制线进行读写操作 关键管脚说明 RESET脚 复位LCD RS 寄存器选择 置1为写数据 置0
  • ios播放gif图片

    以前一直听说ios不可以播放gif图片 也没取看看 其实想想有啥不能播放的 只是没有提供现成的api而已 最近看看资料以及别人的例子了解了一下实现原理 特记录一下 gif 其实本来就是一系列的图片的集合 可以通过 imageIO 获取到图片
  • 如何配置 vscode 识别@文件路径

    在前端开发项目中常常会使用 别名 但是在vscode中默认是不识别的 可以使用下面的配置让vscode 识别 文件路径 以便支持 ctrl 左键 点击跳转 方式一 项目配置 在项目根目录创建 jsconfig json 文件 文件内容 co
  • 一文讲清数据集市、数据湖、数据网格、数据编织

    本文介绍数据仓库 数据集市 数据湖 数据网格和数据编织相关概念和使用案例 帮助你选择并利用好数据的力量来完成明智的决策 微信搜索关注 Java学研大本营 在今天的数字时代 企业每天都在应对来自四面八方的海量数据 随着对强大的数据管理和分析需
  • 基于51单片机的无线防盗报警器

    硬件设计 无线多路防盗报警器由l台接收机和多台发射机组成 接收机可以接收多台发射机 其频率都是一样的 只是编码脉冲不同 发来的报警信号 并且加以区别 进行译码然后以数字显示的形式将这些台发射机识别出来 同时音响报警 多路无线防盗报警器主要是
  • 非对称加密及案例

    1 概述 对称加密算法在加密和解密时使用的是同一个密钥 为了解决信息公开传送和密钥管理的问题 于是提出了一种新的密钥交换协议 这种协议允许在不安全的媒体上的通讯双方交换信息 安全地达成一致的密钥系统 这就是非对称加密 公钥加密 之所以称为非
  • 如何解决uniapp加载登录页时,却先跳转首页再跳转登录页的问题

    在使用uniapp开发APP的时候 很多时候需要用到自动登录功能 由于uniapp默认显示的第一页是在pages json中设置的第一项 如果我们将登录页设置为pages json中第一项的话 在自动登录首页的时候会从登录页一闪而过 如果设
  • 039. (9.12) 数模国赛C题 中小微企业的信贷决策 第三题思考

    C 中小微企业的信贷决策 第三题思考 思考 查阅 特征工程改进 模型改动方面 企业的生产经营和经济效益可能会受到一些突发因素影响 而且突发因素往往对不同行业 不同类别的企业会有不同的影响 思考 正则化提取打标签 类别太多 难分 如果要用这种
  • oracleBLOCK(数据块)

    11 4 BLOCK 数据块 11 4 1 BLOCK 数据块 的特点 BLOCK是Oracle进行存储空间IO操作的最小单位 BLOCK的管理方法是区的管理和段管理的具体体现 1 自动管理方式 如创建表空间时区为本地管理方式 并且将段的存
  • shape和resize对应的高(height)和宽(weight)的顺序

    无论是pytorch还是opencv 都有对应的成员变量shape以及函数resize 其对应的高 height 和宽 weight 的顺序是不一样的 使用opencv举一个例子 import cv2 img cv2 imread 1 jp
  • linux shell 获取某个时间段内的文件

    shell脚本里 我们主要用find命令来搜索某类文件 所以在这里 我们也用find来查找时间段内的文件 主要方法有两种 一 使用mtime来搜索 这类方法只能精确到天数 但是一般的需求 也并不需求那么精确的时间 所以还是可以满足大部分需求
  • 自己生成AIX bff打包安装文件

    复杂度3 5 机密度4 5 最后更新2021 04 28 AIX提供了生成打包文件的命令 mkinstallp 需要安装bos adt insttools fileset 查看fileset是否已经安装 lslpp L bos adt in