在 Fedora 中安裝替代版本的 RPM 包
模組化使 Fedora 能夠在倉庫中提供替代版本的 RPM 軟體包。每個 Fedroa 版本可以原生構建不同應用、語言執行時和工具版本的多個版本。
Fedora Magazine 大約一年前就寫了 Fedora 28 伺服器版的模組化。那時,它只是一個有附加內容的可選倉庫,並且明確只支援伺服器版。到目前為止,它已經發生了很多變化,現在模組化是 Fedora 發行版的核心部分。一些軟體包已完全變成模組。在編寫本文時,Fedora 30 的 49,464 個二進位制 RPM 軟體包中的 1,119(2.26%)來自模組(關於這個數字的更多資訊)。
模組化基礎知識
由於許多軟體包有不同的版本會讓人難以承受(並且難以管理),所以包被分組為模組,它可以代表一個應用程式、一個語言執行時或任何其他合理的組。
模組通常有多個流,這通常代表軟體的主要版本。它可以並行使用,但在給定系統上只能安裝每個模組的一個流。
為了不讓使用者因為太多選擇而難以承受,每個 Fedora 版本都有一組預設,因此只需要在需要時做出決定。
最後,為了簡化安裝,可以根據用例使用預定義的 profile 選擇性地安裝模組。例如,資料庫模組可以作為客戶端,服務端或同時安裝。
實際使用模組化
當你在 Fedora 系統上安裝 RPM 軟體包時,它很可能它來自模組流。你可能沒有注意到的原因之一是模組化的核心原則之一是在你探究之前保持不可見。
讓我們比較以下兩種情況。首先,安裝流行的 i3 平鋪視窗管理器,然後安裝極簡化的 dwm 視窗管理器:
$ sudo dnf install i3
...
Done!
正如所料,上面的命令會在系統上安裝 i3 包及其依賴項。這裡沒有其他事情發生。但另一個會怎麼樣?
$ sudo dnf install dwm
...
Enabling module streams:
dwm 6.1
...
Done!
感覺是一樣的,但後臺發生了一些事情 。它啟用了預設的 dwm 模組流(6.1),並且安裝了模組中的 dwm 包。
為了保持透明,輸出中有一條關於模組自動啟用的訊息。但除此之外,使用者不需要了解模組化的任何資訊,以便按照他們一貫的方式使用他們的系統。
但如果他們使用模組化方式呢?讓我們看看如何安裝不同版本的 dwm。
使用以下命令檢視可用的模組流:
$ sudo dnf module list
...
dwm latest ...
dwm 6.0 ...
dwm 6.1 [d] ...
dwm 6.2 ...
...
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
輸出顯示 dwm 模組有四個流,6.1 是預設值。
要安裝不同版本的 dwm 包,例如,安裝 6.2 的流。啟用它,然後使用以下兩個命令安裝軟體包:
$ sudo dnf module enable dwm:6.2
...
Enabling module streams:
dwm 6.2
...
Done!
$ sudo dnf install dwm
...
Done!
最後,讓我們看下配置,以 PostgreSQL 為例。
$ sudo dnf module list
...
postgresql 9.6 client, server ...
postgresql 10 client, server ...
postgresql 11 client, server ...
...
要安裝 PostgreSQL 11 服務端,使用以下命令:
$ sudo dnf module install postgresql:11/server
請注意,除了啟用流之外,我們可以指定配置從而使用一條命令安裝模組。
可以立即安裝多個版本。要新增客戶端工具,使用下面的命令:
$ sudo dnf module install postgresql:11/client
還有許多其他帶有多個流的模組可供選擇。在編寫本文時,Fedora 30 中有 83 個模組流。包括兩個版本的 MariaDB、三個版本的 Node.js、兩個版本的 Ruby 等等。
有關完整的命令集(包括從一個流切換到另一個流),請參閱模組化的官方使用者文件。
via: https://fedoramagazine.org/installing-alternative-rpm-versions-in-fedora/
作者:Adam Šamalík 選題:lujun9972 譯者:geekpi 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- yum/dnf/rpm 等 檢視rpm 包安裝路徑 (fedora 中 pygtk 包內容安裝到哪裡了)
- 怎麼在 Fedora 中建立我的第一個 RPM 包?
- yum如何解除安裝已安裝的rpm並安裝本地rpm包
- Mysql 5.7在OL 6上以RPM包安裝MySql
- RPM包的安裝與升級
- rpm包安裝升級與解除安裝
- RPM包安裝與介紹
- centos(linux): rpm -V 驗證rpm包安裝程式的安全CentOSLinux
- mysql8.0.30的RPM包安裝方法MySql
- CentOS下使用rpm包安裝MySQLCentOSMySql
- centos以RPM包方式安裝redis的方法CentOSRedis
- 在Fedora 30系統中安裝深度DDE桌面
- OpenSSH9.6p1的EL7版本rpm安裝包製作
- 基於Linux的MySQL5.7RPM包安裝LinuxMySql
- Greenplum_原始碼編譯安裝和RPM包安裝原始碼編譯
- Linux RPM包安裝、解除安裝、升級命令講解Linux
- 把Discord安裝在Fedora Linux上Linux
- rpm:虛擬包:空白包:欺騙包:do nothing包:滿足現有rpm包安裝依賴的要求
- 透過yum在centos6.6上安裝mysql5.7.21rpm包CentOSMySql
- 【DB寶3】在Docker中使用rpm包的方式安裝Oracle 19cDockerOracle
- yum安裝軟體之後如何儲存rpm安裝包
- 徹底解除安裝rpm軟體包的指令碼指令碼
- 在Fedora FC5安裝vmware 5.5
- 在 Fedora 上安裝 MongoDB 伺服器MongoDB伺服器
- 使用CheckInstall從原始碼製作RPM安裝包原始碼
- Yum命令之僅下載rpm安裝包且不安裝
- mysql安裝(rpm)MySql
- Linux rpm -e --nodeps rpm解除安裝Linux
- Fedora16怎麼安裝Chrome?Fedora16安裝Chrome的方法教程Chrome
- Fedora中安裝 Shutter步驟介紹
- Redis在Windows作業系統的各版本安裝包(壓縮包)下載地址RedisWindows作業系統
- PostgreSQL 10.12 安裝系列 - 本地RPM安裝SQL
- 在Linux(Redhat/CentOS)下安裝MySQL之yum(rpm)線上安裝方式LinuxRedhatCentOSMySql
- 在Linux(Redhat/CentOS)下安裝MySQL之yum(rpm)離線安裝方式LinuxRedhatCentOSMySql
- Install Google Chrome on Fedora 28/27, CentOS/RHEL 7.5 (在 fedora 28 等 上 安裝 chrome)GoChromeCentOS
- Fedora22如何安裝Adobe Flash Player?Fedora22安裝Adobe Flash Player的方法
- 如何在 Fedora、CentOS、RHEL 中啟用 RPM Fusion 倉庫CentOS
- MySQL 5.7.22 rpm 安裝方式MySql