linux软件管理器之——rpm

rpm的全名为“RedHat Package Manager”,是一种软件管理机制。顾名思义,这个机制最早是有RedHat公司开发出来的,后来因为实在很好用,包括fedora,centos,suse等知名厂商也使用了这个机制来作为软件安装的管理方式。rpm是以一种数据库记录的方式来将你所需要的软件安装到你的linux系统的一套管理机制。

rpm包的命名格式

    rpm的命名格式为:name-version-relase.arch.rpm

version: major.minor.release,包括主版本号,次版本号,修正号

release: rpm自身的发行号,与程序源码的发行号无关,仅用于标识对rpm包不同制作的修订;同时,release还包含此包适用的OS

arch: 适用于的硬件平台,

x86: i386, i486, i586, i686等;

x86_64: x86_64

powerpc: ppc

noarch: 依赖于虚拟机,与平台无关

下面举一个简单的例子:

分包机制:

在使用rpm包时,由于整个包有非常多的功能,而每位使用者的需求有可能不同,为了解决这一问题,就有了分包的机制。

其中分为核心包和子包:

以此包为例:bash-4.2.3-3.centos7.x86_64.rpm

其核心包即主包:命名与源程序一致

bash-4.2.3-3.centos7.x86_64.rpm

而子包可能就为:

bash-a-4.2.3-3.centos7.x86_64.rpm

bash-b-4.2.3-3.centos7.x86_64.rpm

bash-devel-4.2.3-3.centos7.x86_64.rpm

获取rpm包的途径

1、发行的光盘或站点服务器

镜像:

http://mirrors.163.com

http://mirrors.sohu.com

2、项目的官网

源代码

rpm包

3、很多第三方机构或个人制作并公开发布许多rpm包

http://rpmfind.net

http://rpm.pbone.net

可靠的途径:EPEL

Fedora-EPEL

RPM的基本功能

安装程序包:

格式:

rpm [option] /path/to/package_file

【options】

-i: install安装选项

-v:显示详细的信息,下面的2个甚至3个V表示的详细的程度。

-vv:

-vvv:

-h:

一般比较常用的组合选项:-ivh

--test: 仅作测试,并没有真正执行安装

--nodeps:忽略依赖关系

在安装的过程中,如果该包依赖于其它包则:

1、解决依赖关系

2、忽略依赖关系(使用--nodeps选项),能安装上,但有可能无法运行;

--replacepkgs:重新安装,如果原有配置文件作了修改,很有可能不执行替换

--prefix PATH:将软件安装到指定目录

卸载程序包

格式:

rpm [option] package_name

-e: erase 卸载

--nodeps:忽略依赖关系

如果被其它包所依赖:

1、将依赖于此包的所有包一并卸载

2、忽略依赖关系能卸载,但依赖于此包程序包可能会运行不正常;

注意:如果包的配置文件安装后曾被改动过,卸载时,此文件将不会被卸载,而会被重命名保存下来

升级程序包

格式:

rpm [option] /path/to/package_file

-U :升级或安装(此前可以没有)  常用组合:-Uvh

-F :纯升级 (此前必须存在)       常用组合:-Fvh

--force: 强制升级

注意:不应该对内核执行升级操作,而是安装另一个内核,因为系统允许多内核并存。

查询操作

查询某包是否安装

rpm -q package_name...

查询所有已经安装的包

rpm -qa

查询包的描述信息

rpm -qi package_name

查询某包安装生成了哪些文件

rpm -ql package_name

查询某包安装生成了哪些配置文件

rpm -qc package_name

查询某包安装生成了哪些帮助文件

rpm -qd package_name

查询程序包的相关脚本

rpm -q --scripts package_name

查询某文件是由哪个包安装生成的

rpm -qf /path/to/some_file

对尚未安装的包执行查询

rpm [option] /path/to/package_file

-qpi:描述信息

-qpl:安装生成了哪些文件

-qpc:安装生成了哪些配置文件

-qpd:安装生成了哪些帮助文件

校验:

用于检查包安装生成的文件属性是否发生变化

rpm -V package_name

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

某属性无变化,显示为.(点)

来源合法性及完整性检验:

在检验之前必须有个前提:在当前系统上导入包的制作者的公钥

具体导入的方法:

rpm --import /path/to/key_file

# rpm -qa gpg-pubkey*

显示所有已经导入的gpg格式的公钥

# rpm -qi gpg-pubkey-NAME

显示密钥的详细信息

检查包:安装过程中会自动执行

手动检查:

rpm -K /path/to/package_file

rpm --checksig /path/to/package_file

不检查包完整性:

rpm -K --nodigest

不检查来源合法性:

rpm -K --nosignature

库重建:

rpm的数据库目录为:/var/lib/rpm

重建:

rpm --initdb:初始化

如果事先没有库,会新建一个;如果有,则不新建;

rpm --rebuilddb: 重建

直接重建,覆盖原有的数据库


如需更详细的rpm用法可参考rpm的中文介绍:

http://os.51cto.com/art/201108/285804.htm


时间: 2024-10-02 18:21:38

linux软件管理器之——rpm的相关文章

16、Linux软件管理工具rpm详解

1 Linux软件安装概述 安装程序的方式: 软件包概述 RPM RPM的缺点 RPM包 RPM分包 RPM命令的使用 rpm 包管理 升级注意项 如何安装rpm软件包 如何卸载rpm软件包 如何升级rpm软件包 如何查询rpm软件包 如何查看与rpm包相关的文件和其他信息 如何校验rpm包 RPM的数据库 1 Linux软件安装概述 安装程序的方式: 通用二进制格式:直接解压压缩文件,就可以使用.但一定要注意安装平台. 软件包管理器:如RPM. 软件包管理器的前端工具:如YUM. 源代码编译.

linux软件管理之rpm、yum

应用程序: 程序:Architecture C语言:源代码-->(编译)二进制格式 脚本:解释器(二进制程序) 源代码-->编译-->链接-->运行 程序: 库: 静态 动态 静态连接(直接把需要的库文件打包进程序) 动态连接(将载入内存的库文件直接调用) 共享库 .so后缀(shared object) 配置文件 程序的组成部分: 1.二进制程序(二进制文件运行需要依赖于库,这里的库指的是共享库和程序自身提供的库) 库一般存放在/lib,/usr/lib路径,应用程序的库及系统底

Linux软件管理之RPM

1.概述 对于一个软件安装到LINUX后,一般而言,需要注意安装后的一些位置,比如可执行二进制程序,配置文件,帮助文件,库文件都分别存放在哪里,因为这些是应用程序运行所必须的.以前学习过LINUX的FHS结构,知道/etc用于存放配置文件:/lib,/usr/lib,/usr/local/lib用于存放库文件:/usr/share/,/usr/local/share/用于存放帮助文档:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/

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

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

Linux软件管理 - RPM工具

Linux软件管理 - RPM工具 文本关键字:Linux.软件管理.RPM工具.软件依赖 一.RPM介绍 1. RPM含义 RPM的全称是:Red Hat Package Manager,是RPM软件包管理器.在Linux系统中对应命令是rpm,我们看到名称中含有Red Hat,也就说明主要是在Red Hat发行版中使用的,除此之外还包括和Red Hat最亲近的CentOS,以及其他一些主流发行版:SuSE.Fedora等. 2. RPM特点 rpm也是一种打包格式,使用rpm工具来进行管理

  程序包管理器之 RPM的用法

在Linux中我们经常回遇到安装个卸载各种程序,但是我们又没有必要每次都对源代码进行预处理.编译.汇编.链接,这样很不方便,于是我们就可以使用RPM包管理器. 一:RPM包的介绍:RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux.S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了. 二:RPM包的功能介绍:

linux软件管理(六)

[教程主题]:linux软件管理 [1]软件包管理 在系统管理中,软件包的管理是最重要的,是系统管理的基础的基础, 只有我们学会软件包的管理才能谈得上其它的应用. RPM RPM是软件管理程序,提供软件的安装.升级.查询.反安装的功能.优点:a.安装方便,软件中所有数据都经过编译和打包b.查询.升级.反安装方便缺点:a.缺乏灵活性b.存在相依属性 用法: rpm  参数   软件包 指令选项-i:安装.-U:升级安装,如果不存在也安装.-F:更新安装,如果不存在不安装.-v:查看信息.-h:有进

linux软件包管理之RPM

RPM是RHEL的一款后端软件包管理工具:全称为RedHat Package Manage,由RedHat公司开发,主要作为RehHat Linux软件包的管理机制之一,但并未用作商业用途,而是遵循GPL协议,其设计理念是开放的:现包括SUSE.Openlinux等发行版都采用,是非常强大的软件管理工具. RPM是以一种数据库记录的方式来将需要的软件包安装到linux系统的一套管理机制,最大特点是: 1.由于软件包是已经编译过且打包完毕的,所以软件传输与安装很方便 2.由于软件安装之后信息都记录

linux软件管理之------编译安装nginx服务器并手动编写自动化运行脚本

红帽系列的 linux软件管理分为三类:1. rpm 安装软件.2. yum 安装软件.3. 源码包编译安装.前面两种会在相关专题给出详细讲解.源码包的编译安装是非常关键的,我们知道linux的相关版本非常多,相关的编译器,解释器也有很多,很多还有最小系统,嵌入式系统等等.同一功能的软件如果只有编译好的软件包,在其它linux的平台上,可能并不能正常安装运行,在此情况下,源码包编译安装出现了.所以本文的重点是以nginx为例,给出源码包编译安装的详细过程,同时带你手工编写自动化运行脚本. 准备工