RPM和YUM软件仓库的区别
在RPM(紅帽軟件包管理器)公布之前,要想在Linux系統中安裝軟件只能采取編譯源碼包的方式,所以早期安裝軟件是一件非常困難、耗費耐心的事情,而且大多數的服務程序僅僅提供自身的源代碼,還需要運維人員編譯代碼后自行解決軟件之間的依賴關系。
總而言之,早期Linux系統在安裝、升級、卸載服務程序時還要考慮到其他程序、庫的依賴關系,所以在進行校驗、安裝、卸載、查詢、升級等管理軟件操作時難度都非常大,RPM機制則正是為了解決這些問題而設計的。
通過RPM安裝的服務程序會像Windows系統中的控制面板那樣,建立統一的數據庫,詳細記錄軟件信息并能夠自動分析依賴關系。表1-1是一些常用的RPM軟件包命令。
表1-1 常用的RPM命令
| rpm -ivh 文件名.rpm | 安裝軟件 |
| rpm -uvh 文件名.rpm | 升級軟件 |
| rpm -e 文件名.rpm | 卸載軟件 |
| rpm -qpi 文件名.rpm | 查詢軟件描述信息 |
| rpm -qpl 文件名.rpm | 列出軟件文件信息 |
| rpm -qf 文件名 | 查詢文件屬于哪個RPM |
但是,盡管RPM能夠幫助用戶查詢軟件之間的依賴關系,但問題還是要運維人員自己來解決,而有些大型軟件可能與數十個程序都有依賴關系,在這種情況下安裝軟件依然是很繁瑣的,Yum軟件倉庫便是為了進一步降低軟件安裝難度和復雜度而設計的技術。Yum軟件倉庫可以根據用戶的要求分析出所需軟件包及其相關的依賴關系,然后自動從服務器下載軟件包并安裝到系統。Yum軟件倉庫的技術拓撲如下圖所示。
Yum軟件倉庫中的RPM軟件包可以是由紅帽官方發布的,也可以是第三方發布的,當然也可以是自己編寫的。表1-2所示為一些常見的Yum命令,當前只需對它們有一個簡單印象即可。
表1-2 常見的Yum命令
| yum repolist all | 列出所有倉庫 |
| yum list all | 列出倉庫中所有軟件包 |
| yum info 軟件包名稱 | 查看軟件包信息 |
| yum install 軟件包名稱 | 安裝軟件包 |
| yum reinstall 軟件包名稱 | 重新安裝軟件包 |
| yum update 軟件包名稱 | 升級軟件包 |
| yum remove 軟件包名稱 | 移除軟件包 |
| yum clean all | 清除所有倉庫緩存 |
| yum check-update | 檢查可更新的軟件包 |
| yum grouplist | 查看系統中已經安裝的軟件包組 |
| yum groupinstall 軟件包組 | 安裝指定的軟件包組 |
| yum groupremove 軟件包組 | 移除指定的軟件包組 |
| yum groupinfo 軟件包組 | 查詢指定的軟件包組信息 |
Yum雖然解決了軟件的依賴關系問題,但仍然還是存在著分析不準確、內存占用量大、不能多人同時安裝軟件等等硬傷。終于在2015年隨著Fedora 22系統的發布,紅帽又給了我們一個新的選擇——DNF,實際就是解決了上述問題的Yum軟件倉庫的提升版,行業內叫做Yum v4版本。
作為Yum軟件倉庫v3版本的接替者,DNF特別友好的繼承了原有的命令格式,使用習慣上保持一致~不用擔心不會操作,舉例來說以前安裝軟件用的是“yum install 軟件包名稱”,那么現在則是“dnf install 軟件包名稱”,命令替換成dnf即可。
當然RHEL 8系統也照顧到了老用戶的習慣問題,同時兼容保留了yum和dnf兩個命令,在實際操作中隨意選擇喜歡的執行就好,甚至提示信息都基本一樣,感知不到什么區別。
總結
以上是生活随笔為你收集整理的RPM和YUM软件仓库的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目管理计划Office Project
- 下一篇: 新型城镇化提质扩容 打造民村智慧城市