如何在 CentOS 上安裝 RPM

通常,用戶使用 yum 命令行實用程序安裝軟件包。 官方的 CentOS 存儲庫包含數千個 RPM 包,但在某些情況下,您可能會遇到一個不在任何存儲庫中的 RPM 文件。

一些軟件作者僅提供可下載的 RPM 文件用於安裝,這就是為什麼 RPM 文件設計為在軟件存儲庫之外獨立下載和安裝的原因。

在本教程中,我們將學習如何將 .rpm 文件安裝到您的 Linux CentOS 發行版。

什麼是 RPM 包管理器

Red Hat Package Manager 是一個免費的開源軟件包管理系統,用於安裝、卸載和管理 Red Hat 及其衍生產品(如 CentOS 和 Fedora.

先決條件

在我們開始之前,您需要確保您有 sudo 權限,並且您已經在系統上安裝了一些 RPM、DNF 和 YUM 包管理器(默認情況下都包含在內)。

另外,請確保您要安裝的 RPM 軟件包是為您的系統架構和 CentOS 版本構建的。

出於本教程的目的,我們將在 CentOS 8 上下載並安裝 Slack RPM 包。

下載RPM安裝包

通常,Web 瀏覽器用於定位和下載 .rpm 文件,但您也可以使用命令行工具,例如 wget 或 curl 命令。

為了 example,我們將使用wget命令將slack包(rpm)下載到當前目錄(我是下載到/tmp)如下:

$ wget https://downloads.slack-edge.com/linux_releases/slack-4.3.2-0.1.fc21.x86_64.rpm
--2020-02-15 23:11:20-- https://downloads.slack-edge.com/linux_releases/slack-4.3.2-0.1.fc21.x86_64.rpm
Resolving downloads.slack-edge.com (downloads.slack-edge.com)... 99.86.243.67, 99.86.243.88, 99.86.243.60, ...
Connecting to downloads.slack-edge.com (downloads.slack-edge.com)|99.86.243.67|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 60768380 (58M) [application/octet-stream]
Saving to: ‘slack-4.3.2-0.1.fc21.x86_64.rpm’

slack-4.3.2-0.1.fc21.x86_6 100%[========================================>] 57.95M 584KB/s in 2m 19s

2020-02-15 23:13:40 (427 KB/s) - ‘slack-4.3.2-0.1.fc21.x86_64.rpm’ saved [60768380/60768380]

要驗證您可以使用 ls 命令列出 ‘/tmp’ 目錄下的 rpm 文件:

$ ls /tmp/
slack-4.3.2-0.1.fc21.x86_64.rpm

使用 RPM 命令安裝 RPM 文件

您可以使用兩種方法安裝 RPM 包。 首先是使用 RPM 命令,另一個是使用 yum 包管理器。

在下面的命令中,我們使用 -i 安裝下載rpm包的選項:

$ sudo rpm -i /tmp/slack-4.3.2-0.1.fc21.x86_64.rpm
warning: ./slack-4.3.2-0.1.fc21.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 8e6c9578: NOKEY
error: Failed dependencies:
libXScrnSaver is needed by slack-4.3.2-0.1.fc21.x86_64
libappindicator-gtk3 is needed by slack-4.3.2-0.1.fc21.x86_64

從上面的輸出我們可以看出安裝失敗是因為缺少依賴包。 所以我們必須檢查rpm依賴包並手動安裝它們。

檢查 RPM 依賴項

為了檢查包的依賴關係,我們有兩個 rpm 選項。 您可以使用 -qpR 查詢 rpm 文件和 -qR 按包名查詢。

rpm -qpR .rpm-file

rpm -qR package-name

為了 example,讓我們查詢一個 .rpm(我們使用 slack rpm,我們之前已經下載過)文件來找到它所有需要的依賴包:

$ sudo rpm -qpR /tmp/slack-4.3.2-0.1.fc21.x86_64.rpm
warning: slack-4.3.2-0.1.fc21.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 8e6c9578: NOKEY
libXScrnSaver
libappindicator-gtk3
libsecret-1.so.0()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1

使用 yum 安裝 RPM 包

現在來了一個方便的工具,叫做 yum 我們不必擔心依賴關係。 這個 yum 包管理器可以拉取所有必需的依賴項並為我們設置它們。

我們現在將使用 yum 包管理器通過以下命令安裝我們下載的包:

$ sudo yum localinstall /tmp/slack-4.3.2-0.1.fc21.x86_64.rpm
CentOS-8 - AppStream 6.4 kB/s | 4.3 kB 00:00
CentOS-8 - Base 5.2 kB/s | 3.8 kB 00:00
CentOS-8 - Extras 2.7 kB/s | 1.5 kB 00:00
Extra Packages for Enterprise Linux Modular 8 - x86_6 26 kB/s | 27 kB 00:01
Extra Packages for Enterprise Linux 8 - x86_64 20 kB/s | 29 kB 00:01
Dependencies resolved.
======================================================================================
Package Architecture Version Repository Size
======================================================================================
Installing:
slack x86_64 4.3.2-0.1.fc21 @commandline 58 M

Transaction Summary
======================================================================================
Install 1 Package

Total size: 58 M
Installed size: 185 M
Is this ok [y/N]:

打字後 y 它將安裝所有依賴項和我們的包:

Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : slack-4.3.2-0.1.fc21.x86_64 1/1
Running scriptlet: slack-4.3.2-0.1.fc21.x86_64 1/1
Verifying : slack-4.3.2-0.1.fc21.x86_64 1/1

Installed:
slack-4.3.2-0.1.fc21.x86_64

Complete!

刪除 RPM 包

要刪除 RPM 包,我們指示 RPM 刪除軟件 -e 選項。

在下面的 example,我們將卸載(移除)slack 包:

$ sudo rpm -e slack-4.3.2-0.1.fc21.x86_64

結論

在本教程中,我們向您展示瞭如何在 CentOS 上安裝和刪除 RPM 包。 您應該更喜歡使用 yum 而不是 rpm,因為它會自動為您解析所有依賴項。 Yum 使跟踪安裝、更新和先決條件變得簡單。