安装包收集流程图
2021-07-19 16:36:31 0 举报
test
作者其他创作
大纲/内容
开始命令行输入要采集包名是否为空
yes
key 为 “Description”说明该安装包信息已经结束
获取debian版本号
debian
new st_deb_version_info一个安装包信息结构体
复制rpm文件夹到uagent工作目录
删除/uagent/script/rpm文件夹
查找出指定的安装包信息
flag 是否为true
保存相应的key的value到st_deb_version_info
复制/var/lib/rpm文件夹下的文件到/usr/local/uagent/script下,/var/lib/rpm/ 有任何软件升级的需求,版本之间的比较就是来自於这个数据库,而如果你想要查询系统已经安装的软件,也是从这里查询的
new DebVersionInfos vector
设置 flag = true
key是“Description”
no
new RpmVersionInfos Map
有且不为“kernel”
读取这些位置的文件,redhat: /etc/redhat-release ;debian: /etc/lsb-release
将st_deb_version_info在尾部追加入DebVersionInfos vector
输入包名
开始
new st_rpm_version_info一个安装包信息结构体
更新包名key的value值
读取文本一行字符串
无或是“kernel”
包名是否与“kernel”一样
获取redhat版本号
遍历出map中采集到的安装包信息
用vector数据结构保存安装包信息
获取linux系统系列
输出查到的安装包信息
因为文本是以 key : value 格式存储
读取/var/lib/dpkg/status文本
将获得的字符串前后去空格
key 是 “Package”
/var/lib/dpkg/status 记录的是安装的软件包信息的汇总形式为 key:value
key是\"Package\" || \"Maintainer\" \"Source\" || \"Version\" || \"Description\"
用链接库的函数读取rpm各种配置信息
遍历出vector中采集到的安装包信息
查找map中是否已有该包名key以及包名key是否为“kernel”
插入该安装包信息到map中
用已有信息拼接该安装包“kernel”
标志开始一个新的安装包信息
获取迭代器的rpm安装包信息
保存package值到st_deb_version_info
redhat
结束
拼接的安装包“kernel”是否与查找到的一样
打开文件,读取文件内容,遍历字符串,直到遍历到数字,也就是版本号,存好返回
flag设为false
获取内核信息是否成功
加载rpm动态链接库
收藏
收藏
0 条评论
下一页