RPM应用

首先我们需要了解什么是程序包管理:

程序包管理:

程序包管理:
        功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作;

1、程序的组成组成清单 (每个包独有)
            文件清单
            安装或卸载时运行的脚本
        2、数据库(公共)
            程序包名称及版本
            依赖关系;
            功能说明;
            安装生成的各文件的文件路径及校验码信息;

程序包管理方式分为两种(这里我们只讲解RPM):
        使用包管理器:rpm
        使用前端工具:yum, dnf

RPM是一款好用的软件包安装和管理程序。使用RPM,用户可以自行安装和管理
Linux上的应用程序和系统工具。RPM可以让用户直接以binary方式安装软件包,并且可替用户查询是否已经安装了有关的库文件;在用RPM删除程
序时,它又会聪明地询问用户是否要删除有关的程序。如果使用RPM来升级软件,RPM会保留原先的配置文件,这样用户就不用重新配置新的软件了。RPM保
留一个数据库,这个数据库中包含了所有的软件包的资料,通过这个数据库,
用户可以进行软件包的查询。

rpm包有主包和支包,主包提供软件的主要功能,而支包提供扩展功能

testapp: 拆包
            testapp-VERSION-ARCH.rpm: 主包
            testapp-devel-VERSION-ARCH.rpm:支包
            testapp-testing-VERSION-ARHC.rpm

下图中第一个yum包就是主包,下面提供了其外围的子包以及子包的子包

打印应用程序依赖的各个共享库使用ldd命令

管理及查看本机装载的库文件:
        ldconfig
            /sbin/ldconfig -p: 显示本机已经缓存的所有可用库文件名及文件路径映射关系;

配置文件为:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
            缓存文件:/etc/ld.so.cache

1.安装:
        rpm {-i|--install} [install-options] PACKAGE_FILE ...
            -v: verbose显示详细安装过程
            -vv:  显示更为详细的安装过程
            -h: 以#显示程序包管理执行进度;每个#表示2%的进度
                [install-options]
                    --test: 测试安装,但不真正执行安装过程;dry run模式;
                    --nodeps:忽略依赖关系;
                    --replacepkgs: 重新安装;

--nosignature: 不检查来源合法性;
                    --nodigest:不检查包完整性;

--noscipts:不执行程序包脚本片断;
                        %pre: 安装前脚本; --nopre
                        %post: 安装后脚本; --nopost
                        %preun: 卸载前脚本; --nopreun
                        %postun: 卸载后脚本;  --nopostun

使用rpm安装软件:

重装软件包:

不检测来源合法性和包完整性安装:发现没有了像上面安装时出现的警告信息

2.升级

rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
        upgrage:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”;
        freeshen:安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作;
            rpm -Uvh PACKAGE_FILE ...
            rpm -Fvh PACKAGE_FILE ...

--oldpackage:降级;
            --force: 强行升级;

3.查询:

rpm {-q|--query} [select-options] [query-options]
        [select-options]
            -a: 所有包
            -f: 查看指定的文件由哪个程序包安装生成
            -p /PATH/TO/PACKAGE_FILE:针对尚未安装的程序包文件做查询操作;
            --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供;
            --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖;
        [query-options]
            --changelog:查询rpm包的changlog
            -c: 查询程序的配置文件
            -d: 查询程序的文档
            -i: information
            -l: 查看指定的程序包安装后生成的所有文件;
            --scripts:程序包自带的脚本片断
            -R: 查询指定的程序包所依赖的CAPABILITY;
            --provides: 列出指定程序包所提供的CAPABILITY;

查询所有已经安装的以z开头的程序包

查看指定的文件由哪个程序包安装生成

查询rpm包的changlog

查询指定的CAPABILITY被哪个包所依赖;

查询包的详细信息

查询包的配置文件

查询包的帮助文档

查询包的脚本片段

查询程序包安装时生成的文件

查询指定的程序包所依赖的CAPABILITY

查询未安装的程序包需要使用-p选项组合以上说到的选项

4.卸载:
        rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]
           [--notriggers] [--test] PACKAGE_NAME ...

5.校验:检测安装后是否修改过程序的某文件 使用-V选项

对以上输出信息解释:

S file Size differs
           M Mode differs (includes permissions and file type)
           5 digest (formerly MD5 sum) differs
           D Device major/minor number mismatch
           L readLink(2) path mismatch
           U User ownership differs
           G Group ownership differs
           T mTime differs
           P caPabilities differ

6.包的合法性,来源性确认

导入所需要公钥:
            rpm --import /PATH/FROM/GPG-PUBKEY-FILE
            CentOS 7发行版光盘提供的密钥文件:RPM-GPG-KEY-CentOS-7

7. 数据库重建:rpm数据库文件发生损坏时
        rpm {--initdb|--rebuilddb}
            initdb: 初始化
                如果事先不存在数据库,则新建之;否则,不执行任何操作;
            rebuilddb:重建
                无论当前存在与否,直接重新创建数据库;

时间: 2024-08-05 02:35:44

RPM应用的相关文章

rpm几个有用的参数

学习京峰公开课Linux软件管理的笔记 rpm -qi lzrsz 查询软件的相关信息 rpm -qf /bin/sz 查询命令对应的软件

软件包管理之RPM

一.前言 在没有软件包管理器前,用户都是通过源代码的方式来安装软件.但是我们很容易发现,在每次安装软件时都必须对操作系统的境.编译的参数进行对应的编译,并且操作过程很是复杂,这对于不熟悉操作系统的朋友来说真心困难,那么有没有一款软件能让用户能很简单的安装所需的软件呢? 随着自由软件蓬勃发展,Linux系统的飞快发展,很多软件开发者.企业和社区将这些软件开始通过收集.整理.编译制作成distributions发布到常用的Linux操作系统上,但是后来发现,这样做在日后软件更新.系统更新上面都需要做

centos6.5 rpm安装glusterfs以及第三方测试工具

这篇文章适合初学者读,做下实验来之后对glusterfs有一个初步的了解,我的所有操作都是在一台机器上做的.还有一些环境配置我列举了一下,并没有很详细的列出来,相信大家应该没问题.一些第三方测试工具需要大家自行在网上下载.楼主也是一个一个下载下来的.此次下载的是3.47的版本,因为我们公司用的就是这个版本,之前试过其它版本,老是会出现服务挂起的现象,没有办法,版本回退 glusterfs  rpm包下载地址: https://download.gluster.org/pub/gluster/gl

LAMP基于RPM包搭建

一:简述 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准. HTTP是一个客户端和服务器端请求和应答的标准(TCP).客户端是终端用户,服务器端是网站.通过使用Web浏览器.网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求.(我们称这个客户端)叫用户代理(user agent).应答的服务器上存储着(一些)资源,比如HTML文件和图像.(我们称)这个

Linux基本功杂记——[010]——{rpm、yum及源码方式管理软件包}

一.yum配置文件位置 /etc/yum.conf /etc/yum.repos.d/*.repo 二.yum常用命令 install pkgs reinstall pkgs update pkgs update-to check-update erase pkgs list installed/updates info pkgs provides pkgs deplist pkgs repolist all/enabled/disabled history [info num] clean a

包管理工具rpm和yum的用法

包管理工具rpm和yum的用法 一.rpm的用法 rpm原本是Rde Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐收到其他发行版的采用,RPM套件管理方式的出现,让Linux易于安装.升级,间接提升了Linux的适用性. rpm用法:rpm [OPTION...] 1.rpm安装软件包,后面需要跟上程序包文件的绝对路径或相对路径 常用选项: -v:显示指令的执行过程 -vv:详细显示指令执行过程,便于排错 -h:以#号显示程

学习笔记之Linux程序包管理rpm、yum、编译

无论是Windows系统还是Linux系统,我们用户想要在操作系统上获得更多的乐趣还是更多的功能的话,就需要在一个干净的系统上安装各式各样的软件程序,Linux上的是ELF格式的,目前比较常见的程序包管理器如: Redhat软件包管理器---rpm Debian软件包管理器---dpkg 一.1.RPM 安装:rpm {-i|--install} [install-options] PACKAGE_FILE... -v: verbose,详细信息 -vv: 更详细的输出 -h: hashmark

用法: rpm

用法: rpm [选项...] 查询/验证软件包选项:  -a, --all                        查询/验证所有软件包  -f, --file                       查询/验证文件属于的软件包  -g, --group                      查询/验证组中的软件包  -p, --package                    查询/验证一个软件包  --pkgid                          quer

linux入门基础——linux软件管理RPM

因为linux入门基础是基于CentOS讲解的,讲的是CentOS上的软件包管理.ubuntu的软件包管理有这些:ubuntu软件包管理,包管理指南,ubuntu软件包管理. linux软件管理:RPM软件包管理 源代码形式 绝大多数开源软件都是直接以源代码形式发布 源代码一般会被打包成tar.gz的归档压缩文件 程序源代码需要手动编译成二进制形式之后才能够运行使用 源代码基本编译流程: 1 ./configure   检查编译环境.相关库文件以及配置参数并生成makefile 2 make  

lamp 基于rpm包环境搭建,以及https的实现

1 搭建开始 环境准备开始: [root ~]# service httpd24 stop # 关闭此前编译的2.4 [root ~]# yum install -y php php和httpd结合的方式是模块化的: [root ~]# rpm -ql php /etc/httpd/conf.d/php.conf /usr/lib64/httpd/modules/libphp5.so # 就这个模块 /var/lib/php/session /var/www/icons/php.gif 既然是模