我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux命令:RPM

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux命令:RPM


RPM令简介:

RPM 全名是『 RedHat Package Manager 』简称则为 RPM。RPM 是以一种数据库记录的方式来将你所需要的套件安装到你的 Linux 主机的一套管理程序。


1.命令格式:

  rpm [选项][文件]

2.命令功能:

 RPM最大的特点就是将您要安装的套件先编译且打包好了,透过包装好的套件里头预设的数据库记录, 记录这个套件要安装的时候必须要的相依属性模块(Linux主机需要预先存在的几个必须的套件),当安装时RPM会先依照套件里头的纪录数据查询Linux主机的相依属性套件是否满足,若满足则予以安装,若不满足则不予安装。那么安装的时候就将该套件的信息整个写入RPM的数据库中,以便未来的查询、验证与反安装!

这样的优点是:

  a. 由于已经编译完成并且打包完毕,所以安装上很方便( 不需要再重新编译 );
  b. 由于套件的信息都已经记录在 Linux 主机的数据库上,很方便查询、升级与反安装;

缺点是:
  a. 安装的环境必须与打包时的环境需求一致或相当;;
  b. 需要满足套件的相依属性需求;
  c. 反安装时需要特别小心,最底层的套件不可先移除,否则可能造成整个系统的问题!


3.命令参数:

3.1.RPM 安装包


rpm -i /PATH/TO/PACKAGE_FILE
  -h:  以#显示进度;每个#表示2%;
  -v:  显示详细过程
  -vv:  更详细的过程

  
rpm -ivh /PATH/TO/PACKAGE_FILE
  --nodeps: 忽略依赖关系;
  --replacepkgs: 重新安装,替换原有安装;
  --force: 强行安装,可以实现重装或降级,为--replacefiles与--replacepkgs的综合体

  --test :测试安装该软件,可找出是否有属性相依的问题。

   eg1: rpm -ivh pkgname.i386.rpm --test

  --replacefiles: 安装的过程当中出现了『某个文件已经被安装在你的系统上面』的资讯,或出现版本不合的信息(confilcting files) 时,可以使用这个参数来直接覆盖文件。

    危险性:覆盖的动作是无法复原的!否则会欲哭无泪!


[root@localhost]~# rpm -ivh zsh-4.2.6-3.el5.x86_64.rpm
rpm -ivh zsh-4.2.6-3.el5.x86_64.rpm
warning: zsh-4.2.6-3.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...   ########################################### [100%]
  package zsh-4.2.6-3.el5.x86_64 is already installed

[root@localhost]~#  网络安装某个文件

[root@localhost]~# rpm -ivh http://website.name/path/pkgname.rpm



3.2.RPM 查询包

在查询的部分,所有的参数之前都需要加上 -q 才是所谓的查询!
查询主要分为两部分,一个是查已安装,另一个则是查某个 rpm 档案内容。


参数:

-q :仅查询(query),后面接的套件名称是否有安装;
-qa :列出所有的(all),已经安装在本机 Linux 系统上面的所有套件名称;


-qi :列出该套件的详细信息 (information),包含开发商、版本与说明等;
-ql :列出该套件所有的档案与目录所在完整文件名 (list);
-qc :列出该套件的配置文件    (找出在 /etc/ 底下的檔名而已)
-qd:列出该套件的所有说明档   (找出与 man 有关的档案document)
-qR :列出与该套件有关的相依套件所含的档案 (Required)
-qf :由后面接的文件名称(file),找出该档案属于哪一个已安装的套件;

rpm -q --scripts PACKAGE_NAME: 查询指定包中包含的脚本(scripts);


-qp[i|c|d|l|R]:未安装时,查询RPM档案内将含有的信息(Package)

  注意 -qp 后面接的所有参数与上面的说明一致。

  但用途仅在于找出RPM档案内的信息,而非已安装的套件信息!


[root@localhost]/media/Server# rpm -qi bash
Name  : bash  Relocations: (not relocatable)
Version  : 3.2   Vendor: Red Hat, Inc.
Release  : 24.el5  Build Date: Tue 21 Oct 2008 08:15:56 PM CST
Install Date: Thu 17 Apr 2014 11:41:58 AM CST      Build Host: hs20-bc1-5.build.redhat.com
Group : System Environment/Shells Source RPM: bash-3.2-24.el5.class="lazy" data-src.rpm
Size  : 5388767   License: GPLv2+
Signature : DSA/SHA1, Mon 08 Dec 2008 08:25:44 PM CST, Key ID 5326810137017186
Packager : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
URL   : http://www.gnu.org/software/bash
Summary : The GNU Bourne Again shell (bash) version 3.1.
Description :
The GNU Bourne Again shell (Bash) is a shell or command language
interpreter that is compatible with the Bourne shell (sh). Bash
incorporates useful features from the Korn shell (ksh) and the C shell
(csh). Most sh scripts can be run by bash without modification. This
package (bash) contains bash version 3.1, which improves POSIX
compliance over previous versions.

[root@localhost]/media/Server# rpm -ql bash
/bin/bash
/bin/sh
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
/usr/bin/bashbug-64

...

[root@localhost]/media/Server# rpm -qf /bin/ls
coreutils-5.97-23.el5

[root@localhost]/media/Server# rpm -q --scripts zsh
postinstall scriptlet (using /bin/sh): 安装后要执行的程式
if [ ! -f /etc/shells ] ; then
  echo "/bin/zsh" > /etc/shells
else
  grep -q "^/bin/zsh$" /etc/shells || echo "/bin/zsh" >> /etc/shells
fi
/sbin/install-info /usr/share/info/zsh.info.gz /usr/share/info/dir \
 --entry="* zsh: (zsh).  An enhanced bourne shell."
preuninstall scriptlet (using /bin/sh):卸载要执行的程式

if [ "$1" = 0 ] ; then
  /sbin/install-info --delete /usr/share/info/zsh.info.gz /usr/share/info/dir \
  --entry="* zsh: (zsh).   An enhanced bourne shell."
fi

postuninstall scriptlet (using /bin/sh):卸载要执行的程式

if [ "$1" = 0 ] ; then
  if [ -f /etc/shells ] ; then
   TmpFile=`/bin/mktemp /tmp/.zshrpmXXXXXX`
   grep -v '^/bin/zsh$' /etc/shells > $TmpFile
   cp -f $TmpFile /etc/shells
   rm -f $TmpFile
   chmod 644 /etc/shells
  fi
fi


3.3.RPM 升级包
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;

   -Uvh --oldpackage: 降级

rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出;



3.4.RPM 校验
参数:
-V :后面加的是套件名称,若该套件所含的档案被更动过,才会列出来;
-Va :列出目前系统上面所有可能被更动过的档案;
-Vp :后面加的是文件名称,列出该套件内可能被更动过的档案;
-Vf :列出某个档案(file)是否被更动过~


[root@linux ~]# rpm -Va
[root@linux ~]# rpm -V 已安装的套件名称
[root@linux ~]# rpm -Vp 某个 RPM 档案的档名
[root@linux ~]# rpm -Vf 在系统上面的某个档案



3.5.RPM 卸载包

[root@linux ~]# rpm -e logrotate  <==卸载套件,无信息反馈即OK
[root@linux ~]# rpm --rebuilddb  <==重建数据库



3.6.RPMBUILD 安装包

--rebuild
这个参数会将后面的 SRPM 进行『编译』与『打包』的动作,最后会产生 RPM 的档案,但是产生的 RPM 档案并没有安装到系统上。
--recompile
这个动作会直接的『编译』『打包』并且『安装』啰!请注意, rebuild 仅『编译并打包』而已,而 recompile 不但进行编译跟打包,还同时进行『安装』了!



3.7.重建数据库
    rpm
        --rebuilddb: 重建数据库,一定会重新建立;
        --initdb:初始化数据库,没有才建立,有就不用建立;


[root@localhost ~]# ls /var/lib/rpm         锁文件
Basenames     __db.001  Dirnames  Installtid  Providename     Requirename     Sigmd5
Conflictname  __db.002  Filemd5s  Name        Provideversion  Requireversion  Triggername
__db.000      __db.003  Group     Packages    Pubkeys         Sha1header



3.8.检验来源合法性,及软件包完整性 ( rpm -K     英文:check)

加密类型:
    对称:加密解密使用同一个密钥
    公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来,并公开出去;
    单向:

# ls /etc/pki/rpm-gpg/
    RPM-GPG-KEY-redhat-release   
rpm -K /PAPT/TO/PACKAGE_FILE
    dsa, gpg: 验正来源合法性,也即验正签名;可以使用--nosignature,略过此项
    sha1, md5: 验正软件包完整性;可以使用--nodigest,略过此项   
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: 导入密钥文件

[root@localhost ~]# rpm -K zsh-4.2.6-3.el5.x86_64.rpm
zsh-4.2.6-3.el5.x86_64.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#37017186)
[root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@localhost ~]# rpm -K zsh-4.2.6-3.el5.x86_64.rpm
zsh-4.2.6-3.el5.x86_64.rpm: (sha1) dsa sha1 md5 gpg OK
[root@localhost ~]# rpm -K --nodigest zsh-4.2.6-3.el5.x86_64.rpm
zsh-4.2.6-3.el5.x86_64.rpm: (sha1) dsa gpg OK


---end---

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux命令:RPM

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux命令中的rpm安装命令

在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装、卸载及管理等操作。RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件。Linux 安装时,除了几
2022-06-04

Linux命令中的rpm命令怎么用

这篇文章的内容主要围绕Linux命令中的rpm命令怎么用进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!在Linux中,RPM是进行软件得安装、卸载、
2023-06-28

解压rpm包的linux命令及rpm命令使用简介

rpm 是红帽(RedHat)软件包管理工具,实现类似于 Windows 中的添加/删除程序功能 rpm -ivh install_rpm tar xvf informix-linux.tar inux下解压命令大全 .tar 解包:ta
2022-06-04

Linux中rpm命令怎么用

这篇文章主要介绍了Linux中rpm命令怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。[root@wang /]# rpm -qa // 查看安装所有包[root@wa
2023-06-09

Linux中Rpm命令有什么用

这篇文章主要介绍了Linux中Rpm命令有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版
2023-06-09

Linux系统rpm命令是什么

这篇文章主要为大家分析了Linux系统rpm命令是什么的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux系统rpm命令是什么”的知识吧。rpm用于管理
2023-06-28

Linux系统rpm命令怎么用

这篇文章将为大家详细讲解有关Linux系统rpm命令怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。rpm 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵
2023-06-28

Linux下 rpm 命令查询方法

[root@wang /]# rpm -qa // 查看安装所有包 [root@wang /]# rpm -qa |grep vim // 查询所安装的包 +包名 [root@wang /]# rpm -qi libattr-devel /
2022-06-04

Linux的rpm命令怎么使用

RPM(RPM Package Manager)是一种常用于在Linux系统上安装、升级、卸载软件包的命令行工具。以下是一些常见的rpm命令的用法示例:1. 安装rpm包:```rpm -i package.rpm```2. 升级已安装的r
2023-09-13

Linux rpm命令的使用方法

这篇文章跟大家分析一下“Linux rpm命令的使用方法”。内容详细易懂,对“Linux rpm命令的使用方法”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“Linux rpm命令
2023-06-28

tar命令与rpm命令怎么在linux中使用

tar命令与rpm命令怎么在linux中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一. tar 1.压缩一组文件为tar.gz后缀。 # tar cvf backu
2023-06-13

Linux rpm命令参数使用总结

本篇内容主要讲解“Linux rpm命令参数使用总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux rpm命令参数使用总结”吧!RPM是RedHat Package Manager(R
2023-06-09

怎么在Linux 中使用RPM命令

怎么在Linux 中使用RPM命令?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.我们得到一个新软件,在安装之前,一般都要先查看一下这个软件包里有什么内容,假设这个文件是
2023-06-13

linux中的rpm -ivhrpm命令是什么

这篇文章主要为大家展示了“linux中的rpm -ivhrpm命令是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“linux中的rpm -ivhrpm命令是什么”这篇文章吧。是RPM软件包的
2023-06-28
2024-04-02
2023-09-14

编程热搜

目录