前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux中RPM命令的20个实际示例

linux中RPM命令的20个实际示例

作者头像
入门笔记
发布2022-06-03 10:43:55
1.4K0
发布2022-06-03 10:43:55
举报
文章被收录于专栏:入门小站

rpm(RedHat Package Manager) 简介

  1. rpm是免费的,并在以下条件下发布GPL(General Public License)。
  2. rpm将所有已安装包的信息保存在/var/lib/rpm数据库。
  3. rpm是 Linux 系统下安装包的唯一方式,如果你已经使用源代码安装了包,那么rpm不能管理它。
  4. rpm处理.rpm文件,其中包含有关软件包的实际信息,例如:what it is,from where it comes,dependencies info,version info等等。

rpm 命令有五种基本模式

  1. Install: 用于安装rpm包。
  2. Remove:它用于删除或卸载rpm`包。
  3. Upgrade:用于更新现有的rpm包。
  4. Verify: 用于验证rpm包。
  5. Query: 用于查询任何rpm包。

在哪里可以找到rpm

以下是rpm站点列表,你可以在其中找到并下载所有RPM包。

  1. http://rpmfind.net
  2. http://www.redhat.com
  3. http://freshrpms.net/
  4. http://rpm.pbone.net/

请记住你必须是root用户在 Linux 中安装软件包

1. 如何检查rpm签名包

在 Linux 系统上安装包之前,请务必检查包的 PGP 签名,并确保其完整性和来源是OK.使用以下命令–checksig(check signature) 选项来检查名为的包的签名pidgin.

代码语言:javascript
复制
[rumenz@local]#rpm  --checksig pidgin-2.7.9-5.el6.2.i686.rpm

pidgin-2.7.9-5.el6.2.i686.rpm: rsa sha1 (md5) pgp md5 OK

2. 如何安装rpm

要安装rpm软件包,请使用以下命令-i选项。例如,要安装一个名为的rpmpidgin-2.7.9-5.el6.2.i686.rpm.

代码语言:javascript
复制
[rumenz@local]#rpm  -ivh pidgin-2.7.9-5.el6.2.i686.rpm

Preparing...                ########################################### [100%]
   1:pidgin                 ########################################### [100%]
rpm 命令和选项
  1. -i: 安装一个包
  2. -v: 详细显示更好的显示
  3. -h: 在解压包存档时打印散列标记。

3. 安装前如何检查rpm包的依赖关系

假设你想在安装或升级包之前进行依赖项检查。比如使用下面的命令来检查依赖BitTorrent-5.2.2-1-Python2.4.noarch.rpm包裹。它将显示包的依赖项列表。

代码语言:javascript
复制
[rumenz@local]#rpm  -qpR BitTorrent-5.2.2-1-Python2.4.noarch.rpm

/usr/bin/python2.4
python >= 2.3
python(abi) = 2.4
python-crypto >= 2.0
python-psyco
python-twisted >= 2.0
python-zopeinterface
rpmlib(CompressedFileNames) = 2.6
rpm 命令和选项
  1. -q: 查询一个包
  2. -p:列出此包提供的功能。
  3. -R: 列出此包所依赖的功能..

4. 如何安装无依赖的rpm

如果你知道所有需要的软件包都已经安装,你可以使用选项忽略这些依赖项–nodeps(no dependencies check) 在安装包之前。

代码语言:javascript
复制
[rumenz@local]#rpm  -ivh --nodeps BitTorrent-5.2.2-1-Python2.4.noarch.rpm

Preparing...                ########################################### [100%]
   1:BitTorrent             ########################################### [100%]

上面的命令通过忽略依赖错误来强制安装rpm包,但是如果缺少这些依赖文件,那么程序将无法运行。

5. 如何检查已安装的rpm

使用-q带有包名的选项,将显示是否安装了 rpm。

代码语言:javascript
复制
[rumenz@local]#rpm  -q BitTorrent

BitTorrent-5.2.2-1.noarch

6. 如何列出已安装rpm包的所有文件

要查看已安装的rpm包的所有文件,请使用-ql(query list) 与rpm命令。

代码语言:javascript
复制
[rumenz@local]#rpm  -ql BitTorrent

/usr/bin/bittorrent
/usr/bin/bittorrent-console
/usr/bin/bittorrent-curses
/usr/bin/bittorrent-tracker
/usr/bin/changetracker-console
/usr/bin/launchmany-console
/usr/bin/launchmany-curses
/usr/bin/maketorrent
/usr/bin/maketorrent-console
/usr/bin/torrentinfo-console

7. 如何列出最近安装的rpm

使用以下rpm命令-qa(query all) 选项,将列出所有最近安装的rpm包。

代码语言:javascript
复制
[rumenz@local]#rpm  -qa --last

BitTorrent-5.2.2-1.noarch                     Tue 04 Dec 2012 05:14:06 PM BDT
pidgin-2.7.9-5.el6.2.i686                     Tue 04 Dec 2012 05:13:51 PM BDT
cyrus-sasl-devel-2.1.23-13.el6_3.1.i686       Tue 04 Dec 2012 04:43:06 PM BDT
cyrus-sasl-2.1.23-13.el6_3.1.i686             Tue 04 Dec 2012 04:43:05 PM BDT
cyrus-sasl-md5-2.1.23-13.el6_3.1.i686         Tue 04 Dec 2012 04:43:04 PM BDT
cyrus-sasl-plain-2.1.23-13.el6_3.1.i686       Tue 04 Dec 2012 04:43:03 PM BDT

8. 如何列出所有已安装的rpm

键入以下命令以打印Linux系统上已安装软件包的所有名称。

代码语言:javascript
复制
[rumenz@local]#rpm  -qa

initscripts-9.03.31-2.el6.centos.i686
polkit-desktop-policy-0.96-2.el6_0.1.noarch
thunderbird-17.0-1.el6.remi.i686

9. 如何升级rpm

如果我们要升级任何rpm–Uupgrade) 选项将被使用。使用此选项的主要优点之一是它不仅会升级任何软件包的最新版本,而且还会保留旧软件包的备份,以便在较新升级的软件包不运行先前安装的软件包的情况下可以再次使用。

代码语言:javascript
复制
[rumenz@local]#rpm  -Uvh nx-3.5.0-2.el6.centos.i686.rpm
Preparing...                ########################################### [100%]
   1:nx                     ########################################### [100%]

10. 如何删除rpm

要卸载rpm包,例如我们使用包名nx, 不是原来的包名nx-3.5.0-2.el6.centos.i686.rpm.这-e (erase)选项用于删除包。

代码语言:javascript
复制
[rumenz@local]#rpm  -evv nx

11. 如何删除没有依赖关系的rpm

–nodeps(Do not check dependencies) 选项强制从系统中删除rpm包。但请记住,删除特定包可能会破坏其他工作应用程序。

代码语言:javascript
复制
[rumenz@local]#rpm  -ev --nodeps vsftpd

12. 如何查询一个文件属于哪个rpm

假设你有文件列表,并且想找出属于这些文件的包。例如,以下命令与-qf(query file) 选项将显示一个文件/usr/bin/htpasswd由包裹拥有httpd-tools-2.2.15-15.el6.centos.1.i686.

代码语言:javascript
复制
[rumenz@local]#rpm  -qf /usr/bin/htpasswd

httpd-tools-2.2.15-15.el6.centos.1.i686

13. 如何查询已安装的rpm包信息

假设你已经安装了一个rpm包并且想知道有关该包的信息。下列-qi(query info) 选项将打印已安装包的可用信息。

代码语言:javascript
复制
[rumenz@local]#rpm  -qi vsftpd

Name        : vsftpd       Relocations: (not relocatable)
Version     : 2.2.2       Vendor: CentOS
Release     : 11.el6       Build Date: Fri 22 Jun 2012 01:54:24 PM BDT
Install Date: Mon 17 Sep 2012 07:55:28 PM BDT      Build Host: c6b8.bsys.dev.centos.org
Group       : System Environment/Daemons           Source RPM: vsftpd-2.2.2-11.el6.src.rpm
Size        : 351932                               License: GPLv2 with exceptions
Signature   : RSA/SHA1, Mon 25 Jun 2012 04:07:34 AM BDT, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://vsftpd.beasts.org/
Summary     : Very Secure Ftp Daemon
Description :
vsftpd is a Very Secure FTP daemon. It was written completely from
scratch.

14. 安装前获取rpm包信息

你从网上下载了一个软件包,想在安装前了解软件包的信息。例如,以下选项-qip(query info package) 将打印包[sqlbuddy]的信息。

代码语言:javascript
复制
[rumenz@local]#rpm  -qip sqlbuddy-1.3.3-1.noarch.rpm

Name        : sqlbuddy                     Relocations: (not relocatable)
Version     : 1.3.3                        Vendor: (none)
Release     : 1                            Build Date: Wed 02 Nov 2011 11:01:21 PM BDT
Install Date: (not installed)              Build Host: rpm.bar.baz
Group       : Applications/Internet        Source RPM: sqlbuddy-1.3.3-1.src.rpm
Size        : 1155804                      License: MIT
Signature   : (none)
Packager    : Erik M Jacobs
URL         : http://www.sqlbuddy.com/
Summary     : SQL Buddy â Web based MySQL administration
Description :
SQLBuddy is a PHP script that allows for web-based MySQL administration.

15. 如何查询已安装rpm包的文档

要获取已安装软件包的可用文档列表,请使用以下命令和选项-qdf(query document file) 将显示与vmstat包相关的手册页。

代码语言:javascript
复制
[rumenz@local]#rpm  -qdf /usr/bin/vmstat

/usr/share/doc/procps-3.2.8/BUGS
/usr/share/doc/procps-3.2.8/COPYING
/usr/share/doc/procps-3.2.8/COPYING.LIB
/usr/share/doc/procps-3.2.8/FAQ
/usr/share/doc/procps-3.2.8/NEWS
/usr/share/doc/procps-3.2.8/TODO

16. 如何验证rpm

验证软件包会将软件包的已安装文件信息与rpm数据库进行比较。这-Vp(verify package) 用于验证包。

代码语言:javascript
复制
[rumenz@local downloads]#rpm  -Vp sqlbuddy-1.3.3-1.noarch.rpm

S.5....T.  c /etc/httpd/conf.d/sqlbuddy.conf

17. 如何验证所有rpm

键入以下命令以验证所有已安装的rpm包。

代码语言:javascript
复制
[rumenz@local]#rpm  -Va

S.5....T.  c /etc/rc.d/rc.local
.......T.  c /etc/dnsmasq.conf
.......T.    /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf
S.5....T.  c /etc/yum.conf
S.5....T.  c /etc/yum.repos.d/epel.repo

18. 如何导入rpmGPG 密钥

验证RHEL/CentOS/Fedora包,你必须导入GPG钥匙。为此,请执行以下命令。它会导入CentOS 6GPG 密钥。

代码语言:javascript
复制
[rumenz@local]#rpm  --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

19. 如何列出所有导入的rpmGPG 密钥

打印所有导入的GPG键,请使用以下命令。

代码语言:javascript
复制
[rumenz@local]#rpm  -qa gpg-pubkey*

gpg-pubkey-0608b895-4bd22942
gpg-pubkey-7fac5991-4615767f
gpg-pubkey-0f2672c8-4cd950ee
gpg-pubkey-c105b9de-4e0fd3a3
gpg-pubkey-00f97f56-467e318a
gpg-pubkey-6b8d79e6-3f49313d
gpg-pubkey-849c449f-4cb9df30

20. 如何重建损坏的rpm数据库

有时rpm数据库会损坏并停止rpm和系统上其他应用程序的所有功能。所以,此时我们需要重建rpm数据库并借助以下命令进行恢复。

代码语言:javascript
复制
[rumenz@local]# cd /var/lib/rpm
[rumenz@local]# rm __db*
[rumenz@local]# rpm  --rebuilddb
[rumenz@local]# rpmdb_verify Packages
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • rpm(RedHat Package Manager) 简介
  • rpm 命令有五种基本模式
  • 在哪里可以找到rpm包
  • 1. 如何检查rpm签名包
  • 2. 如何安装rpm包
    • rpm 命令和选项
    • 3. 安装前如何检查rpm包的依赖关系
      • rpm 命令和选项
      • 4. 如何安装无依赖的rpm包
      • 5. 如何检查已安装的rpm包
      • 6. 如何列出已安装rpm包的所有文件
      • 7. 如何列出最近安装的rpm包
      • 8. 如何列出所有已安装的rpm包
      • 9. 如何升级rpm包
      • 10. 如何删除rpm包
      • 11. 如何删除没有依赖关系的rpm包
      • 12. 如何查询一个文件属于哪个rpm包
      • 13. 如何查询已安装的rpm包信息
      • 14. 安装前获取rpm包信息
      • 15. 如何查询已安装rpm包的文档
      • 16. 如何验证rpm包
      • 17. 如何验证所有rpm包
      • 18. 如何导入rpmGPG 密钥
      • 19. 如何列出所有导入的rpmGPG 密钥
      • 20. 如何重建损坏的rpm数据库
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档