Linux-RPM命令及其在CentOS、RedHat、Fedora中的示例

什么是Rpm?Rpm是基于Red Hat的操作系统中流行的包管理器。  Rpm全名是Red Hat Package Manager。Rpm使用Rpm作为包扩展和格式。Rpm软件包通常是从internet上的存储库分发的,但是使用USB、光学媒体或其他方式在过去也很流行。Yum是用于从网络或internet存储库获取rpm包的在线包管理器。

null

说明

Yum文件的名称如下,包括名称、版本、版本和体系结构。

<name>-<version>-<release>.<architecture>.rpm

存储库

如前所述,存储库用于在internet上保存rpm包,但在极少数情况下,CD也可以用作存储库。使用存储库,但不使用yum/dnf命令。

Rpm搜索

通常,Rpm包由存储库和包管理器(如yum、dnf)提供。但也有其他网站提供手动下载Rpm包。

http://rpm.pbone.net/

Srpm公司

包的源代码与srpm包一起分发。Srpm包使用tar.gz或tar.bz2压缩

PatchRPM和DeltaRpm

Rpm包提供了一些选项,使下载的大小更小。软件包包含许多不同类型的文件。但并不是所有的文件都改变了。为了使包更小,只有更改后的文件才在Deltarpm中分发。

Rpm安装

Rpm软件包通常具有依赖性,这意味着如果我们想安装某些软件包,我们需要在安装之前安装其他相关的软件包。但是我们跳过这个,安装一些带有 -ivh 参数。

$ rpm -ivh tmux-1.8-4.el7.x86_64.rpm
Rpm Install
Rpm安装

我们需要root权限来安装rpm包。在我们的示例中,我们尝试安装tmux,但正如我们在消息中看到的,它已经安装好了。

相关文章: Fedora安装后的10件事

检查相关性

正如我们所知,Rpm包有依赖性,这意味着安装一个包可能需要其他包。必须在安装当前包之前安装所需的包。我们可以像下面这样检查依赖关系。

rpm -qpR tmux-1.8-4.el7.x86_64.rpm
图片[2]-Linux-RPM命令及其在CentOS、RedHat、Fedora中的示例-yiteyi-C++库
Rpm相关性检查

正如我们看到的,tmux包依赖于sh、标准C库、ncurses、事件库等。

忽略依赖项检查安装

通常,如果我们试图安装一个包,其中有未满足的依赖,它会给出错误,没有安装。 有一种方法可以强制安装具有未满足的依赖关系的包。我们将提供 --nodeps 安装选项。

$ rpm -ivh --nodeps tmux-1.8-4.el7.x86_64.rpm
Install Omitting Dependency Check
安装忽略依赖项检查

下载Rpm

Yum习惯于自动下载和安装,但在某些情况下,我们可能需要下载软件包并安装其他系统等。我们可以使用名为 yumdownloader 就像下面一样。yumdownloader下载操作不需要任何特权。

$ yumdownloader tmux
Download Rpm
下载Rpm

我们只向 yumdownloader .

检查已安装的RPM包

Rpm数据库保存有关已安装软件包的信息。我们可以像下面这样查询这个数据库。如果安装了Rpm/应用程序,则打印完整的软件包名称。

$ rpm -q tmux
Check Installed RPM Package
检查已安装的RPM包

列出已安装RPM包的所有文件

我们可能需要列出的文件和已安装的Rpm包。这与检查过程非常相似,我们只需添加一个 -l 参数如下。

$ rpm -ql tmux
图片[6]-Linux-RPM命令及其在CentOS、RedHat、Fedora中的示例-yiteyi-C++库
列出已安装软件包的文件

列出最近安装的RPM软件包

我们可能想列出最后安装的Rpm软件包。但请记住,这会产生很多线条。

$ rpm -qa --last

我不能把截图放在这里,因为它超过了我的终端历史。所以我可以对这个列表进行一些限制或分页。

$ rpm -qa --last | less
List Recently Installed RPM Packages
列出最近安装的RPM软件包

我们可以这样做,这将打印与时间信息的RPM包安装日期。例如在截图中 kdeadmin 包于11月24日09:50:33安装。

相关文章: 如何获得更新、升级、分布式升级、完全升级,以及它们的异同?

列出所有已安装的RPM软件包

列出已安装软件包的另一种方法是列出所有软件包,而不仅仅是最新安装的软件包。

$ rpm -qa

在这种情况下少用些更实用。我们也可以用更少的资源搜索命令输出。

$ rpm -qa | less
List Recently Installed RPM Packages
列出最近安装的RPM软件包

升级RPM包

如果Rpm软件包已经安装好,我们可以将现有的软件包升级到新的软件包。升级的好处是,升级后旧的包也作为备份,如果新的包不起作用,旧的包可以使用。

rpm -Uvh tmux-1.8-4.el7.x86_64.rpm
Upgrade RPM Packages
升级RPM包

卸载 RPM包

正在卸载 或擦除和Rpm包可以用 -电子 参数如下。

$ rpm -evv tmux-1.8-4.el7.x86_64.rpm
Uninstall RPM Package
卸载 RPM包

卸载 没有依赖项的RPM包

我们只能卸载 包本身并在系统中保留依赖性包。

$ rpm -ev --nodeps tmux
Uninstall RPM Package Without Dependencies
卸载 没有依赖项的RPM包

删除Rpm包的另一种方法是不删除依赖项。

查询文件名以查找相关的RPM包

有时我们需要从文件名中找到相关的Rpm包。

rpm -qf /bin/sh
Query File Name To Find Related RPM Package
查询文件名以查找相关的RPM包

显示简介 关于已安装的RPM软件包

我们可以获得有关和安装的Rpm软件包的信息,如名称、版本、大小、url等。

$ rpm -qi bash
Get Info About Installed RPM Package
显示简介 关于已安装的RPM软件包

获取有关RPM包的信息

实际上,Rpm提供了很多关于包及其内容的重要信息。我们可以列出和Rpm包信息,而无需安装它。

$ rpm -qip tmux-1.8-4.el7.x86_64.rpm
Get Information About RPM Package
获取有关RPM包的信息

已安装RPM包的查询文档

安装的Rpm包的文档可以如下所示。这类似于从文件中查找Rpm包名称。

$ rpm -qdf /bin/bash
Query Documentation Of Installed RPM Package
已安装RPM包的查询文档

验证RPM包

我们可以检查和Rpm包并根据Rpm数据库进行验证。验证 -副总裁 应提供参数。

$ rpm -Vp tmux-1.8-4.el7.x86_64.rpm
Verify RPM Package
验证RPM包

验证所有RPM包

我们可以验证所有安装的Rpm软件包。验证进程将查看Rpm数据库以完成此作业。请记住,这将需要很多时间。我们将使用 -a --all 为了这次行动。

$ rpm -Va
Verify All RPM Packages
验证所有RPM包

导入RPM包的GPG密钥

GPG是一种验证真实性的安全协议。GPG最近被用来消除rouge存储库和Rpm包,但是为了从这个协议中受益,GPG必须配置为Rpm。要配置GPG,必须导入标志。

$ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

列出所有导入的RPM GPG密钥

我们可以列出现有的或导入的GPG密钥,如下所示。

$ rpm -qa gpg-pubkey*
List All Imported RPM GPG Keys
列出所有导入的RPM GPG密钥

从截图中我们可以看到,GPG键有一个不同的命名约定,比如 gpg-pubkey-GUID 哪里 GUID UID编号 是防止名称冲突的唯一标识符。

相关文章: 如何将PPA添加到Ubuntu、Debian存储库中?

初始化RPM数据库

如果我们想创建一个新的RPM数据库来保存安装的包信息,我们可以使用 --initdb 选项。这将创建一个新的、空的、新的数据库。

$ sudo rpm --initdb

重建损坏的RPM数据库

有时Rpm数据库可能会损坏。损坏的Rpm数据库无法更新或使用。所以为了使它进入工作状态,Rpm数据库应该重建如下。

$ cd /var/lib$ rm __db*$ rpm --rebuilddb$ rpmdb_verify Packages

我们走吧 /var/lib 并删除未完成的数据库包。然后运行rpm rebuild命令。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享