linux rpm包管理

一、概要

RPM:RPM Package Manager(rpm软件包管理器)的缩写。它能将编译好的程序打包一个文件或有限的几个文件,可用于实现安装、卸载、升级、查询等功能。

二、rpm软件包管理

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

例如:bash-1.1.0-5.el6.x86_64.rpm

其中bash是就是我们的软件名字,1.1.0-5是该软件的版本号,el6.x86_64这 两个部分是指我们该rpm包的运行平台的操作系统版本。例如el6就表示是针对于RHEL6的发现版本,我们使用的是什么版本的Linux操作系统,我们 就要去下载对应的rpm版本,x86_64表示是运行在64位上的系统。

rpm的基础命令: rpm [option] /path/to/package_file(rpm+选项+安装包文件)

rpm的使用方法相当简单,常用选项有:

安装软件:rpm -i /path/to/package_file

卸载软件:rpm -epackage_name(软件名字)

以升级方式安装:rpm -U /path/to/package_file //软件原先存在则升级,否则安装

常用组合命令:

-v: 显示安装过程

-h:以#显示安装进度,一个#表示2%

例如:我们安装下bash的rpm包

[root@jxf home]# rpm -ivh bash-1.1.0-5.el6.x86_64.rpm   // 通常我们一般安装时跟上 -ivh参数,来显示安装的详细信息

Preparing… ########################################## [100%]

1:tigervnc ########################################### [100%]

此时,我们发现软件已经安装完毕。

另外:rpm –test /path/to/package_file 将对安装包进行安装测试,不会直接安装

rpm –replacepkgs /path/to/package_file 将对软件进行覆盖安装

注意:在卸载程序包时,如果此程序被其他包所依赖,则将依赖于此包的所有包一并卸载,或者,使用–nodpes选项忽略依赖关系;但是,依赖于此程序的程序包可能无法正常运行。

RPM常用查询命令

rpm -qa 列出所有已安装的rpm软件

[root@jxf home]# rpm -qa java-1.6.0-openjdk-devel-1.6.0.0-1.50.1.11.5.el6_3.x86_64 qimageblitz-0.0.4-1.el6.x86_64 gnome-python2-gnomevfs-2.28.0-3.el6.x86_64 perl-ExtUtils-ParseXS-2.2003.0-129.el6.x86_64 iscsi-initiator-utils-6.2.0.873-2.el6.x86_64 libhbaapi-2.2.6-1.el6.x86_64 perl-BSD-Resource-1.29.03-3.el6.x86_64 sane-backends-1.0.21-3.el6.x86_64 gtkspell-2.0.16-1.el6.x86_64

rpm -qf filename 查询指定文件属于哪个rpm包

[root@xiaoluo home]# rpm -qf /usr/share/mysql/

-libs-.-.el6_3.x86_64

rpm -qi packagename 查询已软件包的信息

[root@localhost jjh]# rpm -qi libmtp

Name : libmtp Relocations: (not relocatable)

Version : 1.0.1 Vendor: CentOS

Release : 2.el6 Build Date: Wed 18 Aug 2010 09:30:05 PM CST

Install Date: Tue 03 Mar 2015 04:41:08 PM CST Build Host: c6b3.bsys.dev.centos.org

Group : System Environment/Libraries Source RPM: libmtp-1.0.1-2.el6.src.rpm

Size : 711583 License: LGPLv2+

Signature : RSA/8, Sun 03 Jul 2011 12:36:58 PM CST, Key ID 0946fca2c105b9de

Packager : CentOS BuildSystem <http://bugs.centos.org>

URL : http://libmtp.sourceforge.net/

Summary : A software library for MTP media players

Description :

This package provides a software library for communicating with MTP

(Media Transfer Protocol) media players, typically audio players, video

players etc.

rpm -ql packagename 查询指定软件包包含的文件

[root@localhost jjh]# rpm -ql libmtp

/lib/udev/rules.d/60-libmtp.rules

/usr/lib64/libmtp.so.8

/usr/lib64/libmtp.so.8.3.1

/usr/share/hal/fdi/information/10freedesktop/10-usb-music-players-libmtp.fdi

rpm -qip software.rpm 查询rpm文件的信息

[root@jxf home]# rpm -qip zip-3.0-1.el6.x86_64.rpm

Name : zip Relocations: (not relocatable)

Version : 3.0 Vendor: CentOS

Release : 1.el6 Build Date: Wed 18 Aug 2010 09:30:05 PM CST

Install Date: (not installed) Build Host: c6b3.bsys.dev.centos.org

Group : Applications/Archiving Source RPM: zip-3.0-1.el6.src.rpm

Size : 823612 License: BSD

Signature : Tue 03 Mar 2015 04:41:08 PM CST Key ID 0946fca2c105b9de

Packager : CentOS BuildSystem <http://bugs.centos.org>

URL : http://www.info-zip.org/Zip.html

Summary : A file compression and packaging utility compatible with PKZIP

Description :

The zip program is a compression and file packaging utility. Zip is

analogous to a combination of the UNIX tar and compress commands and

is compatible with PKZIP (a compression and file packaging utility for

MS-DOS systems).

Install the zip package if you need to compress files using the zip

program.

rpm -qlp software.rpm 查询rpm文件包含的文件

[root@jxf home]# rpm -qlp zip-3.0-1.el6.x86_64.rpm

/usr/bin/zip

/usr/bin/zipcloak

/usr/bin/zipnote

/usr/bin/zipsplit

/usr/share/doc/zip-3.0

/usr/share/doc/zip-3.0/CHANGES

/usr/share/doc/zip-3.0/LICENSE

/usr/share/doc/zip-3.0/README

/usr/share/doc/zip-3.0/README.CR

/usr/share/doc/zip-3.0/TODO

/usr/share/doc/zip-3.0/WHATSNEW

/usr/share/doc/zip-3.0/WHERE

/usr/share/doc/zip-3.0/algorith.txt

/usr/share/man/man1/zip.1.gz

/usr/share/man/man1/zipcloak.1.gz

/usr/share/man/man1/zipnote.1.gz

/usr/share/man/man1/zipsplit.1.gz

rpm校验命令: rpm -V package_name:查询包安装后文件属性是否发生变化

[root@localhost jjh]# rpm -V libmtp

[root@localhost jjh]#

如果没有任何显示,则说明该软件是完整的,否则显示以下数据。

例如:S..D…..P

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 -K /path/to/package_file: 手动检查包的完整性

[root@xiaoluo home]# rpm -K zip-3.0-1.el6.x86_64.rpm

zip-3.0-1.el6.x86_64.rpm: rsa sha1 (md5) pgp md5

数据库目录 /var/lib/rpm

使用rpm –initdb:初始化

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

rpm –rebuilddb:重建

如果重建,覆盖原有的数据库

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2015-04-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 14.04上安装Solr 5.2.1

Solr是一个基于Apache Lucene的搜索引擎平台。它是用Java编写的,并使用Lucene库来实现索引。可以使用各种REST API访问它,包括XML...

19360
来自专栏Urahara Blog

CVE-2017-12629 - Apache Solr XXE & RCE 漏洞分析

38480
来自专栏乐沙弥的世界

使用CRM方式管理heartbeat

1、在heartbeat v2之后的版本,可以将haresources方式管理的资源转化为基于CIB方式进行管理 2、使用CRM(CIB)管理,需要配置ha...

15940
来自专栏磨磨谈

Ceph数据盘怎样实现自动挂载

在Centos7 下,现在采用了 systemctl来控制服务,这个刚开始用起来可能不太习惯,不过这个服务比之前的服务控制要强大的多,可以做更多的控制,本节将来...

16210
来自专栏Hongten

hadoop2-elasticsearch的安装

18020
来自专栏编程坑太多

python多版本共存最好的解决方案-虚拟环境

19040
来自专栏Java技术分享

持久化persistence.xml配置文件

 在EJB中,一个实体Bean应用由实体类和persistence.xml文件文件组成。persistence.xml文件在jar文件的META-INF目录下...

25480
来自专栏IT笔记

SpringBoot开发案例之配置静态资源文件路径

前言 SpringBoot本质上是为微服务而生的,以JAR的形式启动运行,但是有时候静态资源的访问是必不可少的,比如:image、js、css 等资源的访问。 ...

2.2K100
来自专栏惨绿少年

网络知识 ACL NAT IPv6

第1章 ACL 访问控制列表 访问控制表(Access Control List,ACL),又称存取控制串列,是使用以访问控制矩阵为基础的访问控制方法,每一个对...

49700
来自专栏纯洁的微笑

springboot(一):入门篇

什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使...

32170

扫码关注云+社区

领取腾讯云代金券