一、rpm包简介

RPM[1] 是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。

二、rpm包的安装

首先本例实在CentOS中进行的,若是别的发行版不在本篇文件的介绍范围内,同时在找rpm安装包时最好是发行商提供或者是从官方下载,最后还可以从国内比较常用的镜像网站中下载,请记住一定不要安装来路不明的包,不然若安装后果自负,下面说下常用的几个镜像网站有:

CentOS:网易镜像:http://mirrors.163.com 搜狐镜像:  http://mirrors.sohu.com

rpm包的安装:

[root@hpf-linux ~]# rpm -ivh zsh-4.3.10-7.el6.i686.rpm
Preparing...                ########################################### [100%]1:zsh                    ########################################### [100%]

通常在使用rpm命令进行安装rpm包时要提前将rpm包给下载到本地,或者使用http的链接

[root@hpf-linux~]# rpm -ivh
Retrieving
http://mirrors.sohu.com/centos/6.6/updates/i386/Packages/unzip-6.0-2.el6_6.i686.rpm
Preparing...                ########################################### [100%]1:unzip                  ########################################### [100%]

若包已经安装后还想从新安装就可以使用--replacepkgs 选项,而原来的配置文件不会被覆盖,新安装的配置文件将会重命名以.rpmnew为后缀的文件。

[root@hpf-linux ~]# rpm -ivh zsh-4.3.10-7.el6.i686.rpm
Preparing...                ########################################### [100%]
package zsh-4.3.10-7.el6.i686 is already installed
[root@hpf-linux ~]# rpm -ivh --replacepkgs  zsh-4.3.10-7.el6.i686.rpm
Preparing...                ########################################### [100%]
1:zsh                       ########################################### [100%]

在安装时出现了安装rpm包常见的依赖关系可以使用--nodeps选项(忽略依赖关系)安装。但是这样虽然安装了包但是还是不能达到自己想要的结果,所以就有了程序包管理器的前段工具(yum)的出现,这样就解决了依赖的问题,由于本篇是介绍rpm安装所以就不介绍yum的使用。

三、rpm包的升级

常用选项及意义:

-Uvh   后面接的套件即使没有安装过,则系统将予以直接安装; 若后面接的套件有安装过旧版,则系统自动更新至新版;

-Fvh    如果后面接的套件并未安装到您的 Linux 系统上,则该套件不会被安装;亦即只有安装至您 Linux 系统内的套件会被『升级』!

[root@hpf-linux ~]# rpm -e zsh
[root@hpf-linux ~]# rpm -q zsh-4.3.10-7.el6.i686.rpm         //查询zsh包是否安装
package zsh-4.3.10-7.el6.i686.rpm is not installed
[root@hpf-linux ~]# rpm -Fvh zsh-4.3.10-7.el6.i686.rpm      //由于系统没有安装zsh包,所以使用-Uvh升级包就无法升级
[root@hpf-linux ~]# rpm -q zsh-4.3.10-7.el6.i686.rpm
package zsh-4.3.10-7.el6.i686.rpm is not installed
[root@hpf-linux ~]# rpm -Uvh zsh-4.3.10-7.el6.i686.rpm
Preparing...                ########################################### [100%]
1:zsh                       ########################################### [100%]

四、rpm包的卸载

前面已经使用过卸载的选项-e,若在卸载某个包时出现被别的包依赖则可以有下面几种情况:

1、把依赖者一同卸载 ;

2、忽略依赖关系:--nodeps ;   //一般请不要这么做可能会出现不必要的麻烦

3、不在卸载。

五、rpm包的查询

1、查询所以已安装的包:

[root@hpf-linux ~]# rpm -qa
nagios-plugins-dummy-1.4.16-10.el6.i686
libgxim-0.3.3-3.1.el6.i686
cjkuni-fonts-common-0.2.20080216.1-36.el6.noarch
nagios-plugins-ping-1.4.16-10.el6.i686
.......................
[root@hpf-linux ~]# rpm -qa | grep "zsh"    //查询zsh包是否在计算机上安装zsh-4.3.10-7.el6.i686

2、查询某单个包是否安装也可以这样使用:

[root@hpf-linux ~]# rpm -q zsh
zsh-4.3.10-7.el6.i686

3、查询包的描述信息:

[root@hpf-linux ~]# rpm -qi zsh-4.3.10-7.el6.i686
Name        : zsh                          Relocations: (not relocatable)    //表示不支持用户自定义安装路径
Version     : 4.3.10                            Vendor: CentOS
Release     : 7.el6                         Build Date: 2013年11月25日 星期一 01时37分44秒
Install Date: 2015年07月10日 星期五 00时44分02秒      Build Host: c6b9.bsys.dev.centos.org
Group       : System Environment/Shells     Source RPM: zsh-4.3.10-7.el6.src.rpm
Size        : 4777026                          License: BSD
Signature   : RSA/SHA1, 2013年11月25日 星期一 03时30分40秒, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <
http://bugs.centos.org>
URL         :
http://zsh.sunsite.dk/
Summary     : A powerful interactive shell
Description :
The zsh shell is a command interpreter usable as an interactive login
shell and as a shell script command processor.  Zsh resembles the ksh
shell (the Korn shell), but includes many enhancements.  Zsh supports
command line editing, built-in spelling correction, programmable
command completion, shell functions (with autoloading), a history
mechanism, and more.

4、查询安装包生成的列表的位置:

[root@hpf-linux ~]# rpm -ql zsh
/bin/zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
...........

5、查询某文件是那个包安装生成的:

[root@hpf-linux ~]# rpm -qf /etc/passwd
setup-2.8.14-20.el6_4.1.noarch

6、查询包安装后生成的帮助文档:

[root@hpf-linux ~]# rpm -qd zsh
/usr/share/doc/zsh-4.3.10/BUGS
/usr/share/doc/zsh-4.3.10/CONTRIBUTORS
/usr/share/doc/zsh-4.3.10/FAQ
/usr/share/doc/zsh-4.3.10/FEATURES
..........................

7、查询安装后生成的配置文件:

[root@hpf-linux ~]# rpm -qc zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc

8、查询包相关的脚本:

[root@localhost ~]# rpm -q --scripts httpd
preinstall scriptlet (using /bin/sh):              //preinstall 安装前脚本
# Add the "apache" user
getent group apache >/dev/null || groupadd -g 48 -r apache
getent passwd apache >/dev/null || \useradd -r -u 48 -g apache -s /sbin/nologin \-d /var/
www -c"Apache" apache
exit 0
postinstall scriptlet (using /bin/sh):          //postinstall 安装后脚本
# Register the httpd service
/sbin/chkconfig --add httpd
/sbin/chkconfig --add htcacheclean
preuninstall scriptlet (using /bin/sh):       //preuninstall  卸载前脚本
if [ $1 = 0 ]; then
/sbin/service httpd stop > /dev/null 2>&1
/sbin/chkconfig --del httpd
/sbin/service htcacheclean stop > /dev/null 2>&1
/sbin/chkconfig --del htcacheclean
fi
posttrans scriptlet (using /bin/sh):           //
postuninstall 卸载后脚本
test -f /etc/sysconfig/httpd-disable-posttrans || \/sbin/service httpd condrestart >/dev/null 2>&1 || :

9、查询尚未安装的rpm包文件的相关信息

查询安装后会生成的文件列表: rpm -qpl 包名

[root@hpf-linux ~]# rpm -q wiresharkpackage
wireshark is not installed
[root@hpf-linux ~]# rpm -qpl wireshark-1.8.10-8.el6_6.i686.rpm
/etc/pam.d/wireshark
/etc/security/console.apps/wireshark
/usr/lib/libwireshark.so.2
/usr/lib/libwireshark.so.2.0.10
/usr/lib/libwiretap.so.2
............................

查询未安装包的简单描述信息:

[root@hpf-linux ~]# rpm -qpi wireshark-1.8.10-8.el6_6.i686.rpm
Name        : wireshark                    Relocations: (not relocatable)
Version     : 1.8.10                            Vendor: CentOS
Release     : 8.el6_6                       Build Date: 2014年10月22日 星期三 07时49分43秒
Install Date: (not installed)               Build Host: c6b9.bsys.dev.centos.org
Group       : Applications/Internet         Source RPM: wireshark-1.8.10-8.el6_6.src.rpm
Size        : 50542085                         License: GPL+
Signature   : RSA/SHA1, 2014年10月22日 星期三 08时01分53秒, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <
http://bugs.centos.org>
URL         :
http://www.wireshark.org/
Summary     : Network traffic analyzer
Description :
Wireshark is a network traffic analyzer for Unix-ish operating systems.
This package lays base for libpcap, a packet capture and filtering
library, contains command-line utilities, contains plugins and
documentation for wireshark. A graphical user interface is packaged
separately to GTK+ package.

五、rpm包的校验

1、检查包安装后生成的文件是否被修改过:

改变了zsh包所生成的文件/etc/skel/.zshrc ,而导致其大小、MD5校验码以及文件时间戳的改变。

[root@hpf-linux ~]# rpm -ql zsh       //查询zsh包生成的列表
/bin/zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
................
[root@hpf-linux ~]# rpm -V zsh    //查看包是否发生改变,不输出结果就代表未改变
[root@hpf-linux ~]# echo "##########" >> /etc/skel/.zshrc       //改变文件
[root@hpf-linux ~]# tail -2 /etc/skel/.zshrc
#colors
##########
[root@hpf-linux ~]# rpm -V zsh
S.5....T.  c /etc/skel/.zshrc

通过输出结果发现zsh安装包发生改变,其改变的项目的意义为:

S file Size differs  大小发生改变

M Mode differs (includes permissions and file type) 头文件权限发生改变

5 digest (formerly MD5 sum) differs MD5码发生改变

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 能力改变了

通过改回文件的原先内容在使用校验时发现虽然其前两项变回来了,但是其时间戳已发生改变而无法改回。

[root@hpf-linux ~]# vim /etc/skel/.zshrc
[root@hpf-linux ~]# tail -2 /etc/skel/.zshrc
# autoload -U colors
#colors
[root@hpf-linux ~]# rpm -V zsh
.......T.  c /etc/skel/.zshrc

2、校验来源合法性和软件完整性:

校验包完整通过单向加密机制(MD5|sha1)来校验;

校验来源合法性通过公钥加密机制(RSA)校验;

通过-K选项和--checksig两个选项都能校验:

[root@hpf-linux ~]# rpm -K wireshark-1.8.10-8.el6_6.i686.rpm
wireshark-1.8.10-8.el6_6.i686.rpm: rsa sha1 (md5) pgp md5 OK
[root@hpf-linux ~]# rpm -K zsh-4.3.10-7.el6.i686.rpm
zsh-4.3.10-7.el6.i686.rpm: rsa sha1 (md5) pgp md5 OK
[root@hpf-linux ~]# rpm --checksig wireshark-1.8.10-8.el6_6.i686.rpm
wireshark-1.8.10-8.el6_6.i686.rpm: rsa sha1 (md5) pgp md5 OK
[root@hpf-linux ~]# rpm --checksig zsh-4.3.10-7.el6.i686.rpm
zsh-4.3.10-7.el6.i686.rpm: rsa sha1 (md5) pgp md5 OK

3、导入密钥:

可以使用--import选项导入rpm包的密钥,通常密钥是由包提供者来给与,本例是导入iso镜像中的包密钥。

[root@hpf-linux ~]# ls /media/
CentOS_BuildTag  isolinux                  RPM-GPG-KEY-CentOS-6           TRANS.TBL
EULA             Packages                  RPM-GPG-KEY-CentOS-Debug-6
GPL              RELEASE-NOTES-en-US.html  RPM-GPG-KEY-CentOS-Security-6
p_w_picpaths           repodata                  RPM-GPG-KEY-CentOS-Testing-6
[root@hpf-linux ~]# rpm --import /media/RPM-GPG-KEY-CentOS-6

4、rpm包的数据库的初始化及重建:

数据库所在位置:

[root@hpf-linux ~]# ls /var/lib/rpm/
Basenames     __db.003     Group         Packages        Requirename     Triggername
Conflictname  __db.004     Installtid    Providename     Requireversion
__db.001      Dirnames     Name          Provideversion  Sha1header
__db.002      Filedigests  Obsoletename  Pubkeys         Sigmd5

数据库初始化:

命令选项    rpm --initdb

如果事先不存在一个数据库,则新建之

数据库重建:

命令选项    rpm --rebuilddb

直接新建数据库,会覆盖原有库

通过上面的简要介绍我们已经基本掌握rpm包及命令的使用,今后在使用时首先要考虑的是包来源合法及安全,剩下的通过本篇文章的简要描述来使用rpm命令帮助我们完成日常工作所需。

转载于:https://blog.51cto.com/cuchadanfan/1672972

linux下rpm包和命令使用简介相关推荐

  1. linux卸载rpm包的命令,Linux(centos)下安装卸载命令rpm,make install使用方法

    A:RPM包, 这种软件包就像windows的EXE安装文件一样,各种文件已经编译好,并打了包,哪个文件该放到哪个文件夹,都指定好了,安装非常方便,在图形界面里你只需要双击就能自动安装. ==如何卸载 ...

  2. linux下rpm包安装MySQL

    继上次用tar.gz包方式安装失败后, wlinux下安装MySQL遇到的坑_阿部仲麻吕的博客-CSDN博客先是显示不安装libgcc_s.so.1不能工作,网上找了好多办法,有,看看libgcc_s ...

  3. linux卸载rpm包的命令,如何恢复误删除的rpm包命令

    如何恢复误删除的rpm包命令 在linux学习过程中,我们会遇到各种各样的问题,当然,如果能够将遇到的问题一一解决也是非常开心的,因为在解决问题的过程中我们的专业技能也得到了很大的提升.最近的测试中遇 ...

  4. Linux下 RPM 包和Deb包的安装(代码指令+案列)

    目录 案列一:(Centos下)RPM包的安装: --tree的安装 案列二:(Kali linux 下)安装Deb包: --安装dpkg -- 安装 gdebi RPM [1]  是Red-Hat ...

  5. Linux下rpm包x86、i386、i486、i586、i686和x86_64 后缀含义

    虽然rpm包版本很多,不过目前的新机器都可以使用x86_64版本,而且也应该使用这个版本,除非一些特殊场合,比如为了使用一些老版程序.有些功能没有x86_64版本,那也只好用i386了.现在的发行包, ...

  6. Linux 下rpm包搭建LAMP环境

    LAMP是Linux-Apache-MySQL-PHP的意思. LAMP网站架构具有Web资源丰富.低价格.等特点.是目前国际流行的Web框架.用来搭建动态网站或者服务器的开源软件,本身都是各自独立的 ...

  7. linux jar管理工具,常用的linux下jar包管理命令

    1. 查看jar目录: jar tvf filename.jar 2. 解压包: jar xvd filename.jar 3. 打包: jar cvf filename.jar a. class b ...

  8. linux的jar命令不能使用,经常使用的linux下jar包管理命令

    一. 查看jar目录: jar tvf filename.jar 二. 解压包: jar xvd filename.jar 三. 打包: jar cvf filename.jar a. class b ...

  9. 七周二次课(1月23日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包...

    七周二次课(1月23日) 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 linux下抓包 ========================== ...

最新文章

  1. 我来谈谈PHP和JAVA在web开发上的的区别
  2. Spark生态顶级项目汇总
  3. 轻量级NuGet—BaGet
  4. C++ —— C++类
  5. python中提供怎样的内置库、可以用来创建用户界面_使用外部GUI库在Autodesk中创建用户界面可能会...
  6. xampp如何上传文件到服务器,xampp安装到云服务器
  7. 在vue项目中导入element-ui
  8. 鸿蒙对抗谷歌,华为下定决心对抗谷歌,打出第一张王牌,鸿蒙系统更进一步
  9. 【转】用photoshop批量修改图片尺寸
  10. log4j 和slf4j的比较
  11. 翻译: 2.6 概率论 深入神经网络 pytorch
  12. Python图像处理丨认识图像锐化和边缘提取的4个算子
  13. Redies tutorial
  14. H5第三方专业支付接口、安全稳定、费率优惠
  15. 【图像处理】基于灰度矩的亚像素边缘检测方法理论及MATLAB实现
  16. 从Uniswap v3来看新的期权范式?
  17. 简明Jieba中文分词教程(分词、关键词提取、词性标注、计算位置)
  18. 论文笔记22:QRNN3D: 3D Quasi-Recurrent Neural Network for Hyperspectral Image Denoising
  19. UMI绝对定量转录组+代谢组联合研究β-葡萄糖苷酶抑制剂在草菇采后贮藏中的应用前景
  20. 英式音标26字母(U-Z)

热门文章

  1. 机器学习基础专题:特征工程
  2. 两道统计题(两次检测呈阳性,连续抛硬币)
  3. 管理信息系统 课程设计
  4. 【视频开发】图像清晰度评价方法
  5. 题目1105:字符串的反码
  6. c# 调用 WINDOW API DLL
  7. VS combox控件的简单用法
  8. php vue jwt 实战,Vue路由之JWT身份认证的实现方法
  9. 在此服务器找不到请求的url,在此服务器上找不到请求的URL /.阿帕奇
  10. matlab离散系统 响应,离散系统的频率响应和输出响应的matlab实现