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

包管理-rpm

程序员文章站 2022-11-06 22:51:57
rpm包管理 程序源代码 >预处理 >编译 >汇编 >链接 数据处理 转为汇编代码 进行汇编 引入库文件 静态编译:.a 动态编译:.so包的组成: 二进制文件、库文件、配置文件、帮助文件程序包管理器: debian: deb文件, dpkg包管理器 redhat: rpm文件, rpm包管理器 r ......

rpm包管理


程序源代码---->预处理---->编译---->汇编---->链接
            数据处理  转为汇编代码  进行汇编    引入库文件
    静态编译:.a
    动态编译:.so
包的组成:
    二进制文件、库文件、配置文件、帮助文件
程序包管理器:
    debian: deb文件, dpkg包管理器
    redhat: rpm文件, rpm包管理器
    rpm:redhat package manager
    rpm package manager
rpm包命名方式:
    bash-4.2.46-19.el7.x86_64.rpm
    name-版本-编译次数.发布版本.架构
    
    systemctl start autofs --启动服务
    systemctl enable autofs
    cd /misc/cd  --会自动挂载光盘到/misc/cd
    
包:分类和拆包
    application-version-arch.rpm: 主包
    application-devel-version-arch.rpm 开发子包
    application-utils-version-arhc.rpm 其它子包
    application-libs-version-arhc.rpm 其它子包    
解决依赖包管理工具:
    yum:rpm包管理器的前端工具
    apt:deb包管理器前端工具
查看二进制程序所依赖的库文件
    ldd /path/to/binary_file    
    ldd /bin/cat  --查看cat依赖的库
管理及查看本机装载的库文件
    ldconfig 加载配置文件中指定的库文件
    /sbin/ldconfig –p 显示本机已经缓存的所有可用库文件名及文件路径
映射关系
    配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
    缓存文件:/etc/ld.so.cache

    
rpm包管理:
rpm -i [install-options] package_file
    -v:verbose:显示详细信息
    -vv:显示的更加详细
    -h:以#显示程序包管理秩序进度
    
rpm包安装:        
[install-options]
    --test: 测试安装,但不真正执行安装,即dry run模式
    --nodeps:忽略依赖关系
    --replacepkgs | replacefiles
    --nosignature: 不检查来源合法性
    --nodigest:不检查包完整性
    --noscripts:不执行程序包脚本
        %pre: 安装前脚本 --nopre
        %post: 安装后脚本 --nopost
        %preun: 卸载前脚本 --nopreun
        %postun: 卸载后脚本 --nopostun
    
rpm包升级:
升级:
rpm -u [install-options] package_file...
rpm -f [install-options] package_file...
    -u:安装有旧版程序包,则“升级”
            如果不存在旧版程序包,则“安装”
    -f:安装有旧版程序包,则“升级”
            如果不存在旧版程序包,则不执行升级操作
    rpm -uvh package_file ...
    rpm -fvh package_file ...
    --oldpackage:降级
    --force: 强制安装    
    
包查询:
rpm -q [select-options] [query-options]    
[select-options]
    -a:所有包
    -f:查看指定的文件由哪个程序包生成
        rpm -qf /etc/yum.conf
    -p profile:针对未安装的程序包文件做查询操作
    示例:rpm -qp dnf-0.6.4-2.sdl7.noarch.rpm
    --whatprovides capability:查询指定的capability由哪个包所提供
    示例:rpm -q --whatprovides httpd
    --whatrequires capability:查询指定的capability被哪个包所依赖
    示例:rpm -q --whatrequires bash
rpm2cpio 包文件|cpio –itv 预览包内文件
rpm2cpio 包文件|cpio –id “*.conf” 释放包内文件    

[query-options]    
    --changelog:查询rpm包的changelog
        rpm -q --changelog httpd
    -c:查看程序的配置文件
    -d:查询程序的文档
    -i:information
    -l:查看指定程序安装后生成的所有文件
    --scripts:程序包自带的脚本
    --provives:列出指定程序包所提供的能力
    -r:查询指定的程序包所依赖的能力
    
包卸载:
    rpm -e package_name

导入所需要公钥
    rpm -k|checksig rpmfile 检查包的完整性和签名
    rpm --import /etc/pki/rpm-gpg/rpm-gpg-key-centos-7
    
rpm数据库
    /var/lib/rpm
rpm {--initdb|--rebuilddb}
    initdb:初始化,如果事先不存在数据库则新建,否则不处理
    rebuilddb:重建已安装的包头的数据库索引目录
    
    

常用命令:rpm -ivh | -evh | -qa | -qf | -qp | -qc | -qd | -qi | -ql | --provides | --scripts