作者:FlySheep_ly
連結:https://www.jianshu.com/p/e9801bf4fa87

一、Linux 界的兩大主流:RPM 與 DPKG
目前在 Linux 界軟體安裝方式最常見的有兩種,分别是:
- dpkg:隻要是派生于 Debian 的其它 Linux 大多使用 dpkg 這個機制來管理軟體,包括 Ubuntu、B2D 等。
- RPM:CentOS、Red Hat 等都是使用它。
二、什麼是 RPM 與 SRPM
RPM 全名是“RedHat Package Manager”。RPM 是一種資料庫記錄的方式來将你所需要的軟體安裝到你的 Linux 系統的一套管理機制。
SRPM 是 Source RPM 的意思,也就是這個 RPM 檔案裡面含有源代碼。
兩者差別如下:
檔案格式 檔案名格式 直接安裝與否 内含程式類型 可否修改參數并編譯 RPM xxx.rpm 可 已編譯 不可 SRPM xxx.src.rpm 不可 未編譯的源代碼 可 檔案名的含義:
rp-pppoe- 3.1 - 5 .i386 .rpm軟體名稱 軟體的版本資訊 釋出的次數 适合的硬體平台 擴充名
三、什麼是 i386、i586、i686、noarch、x86_64
平台名稱 适合平台說明 i386 幾乎适用于所有的 x86 平台,不論是舊的 pentum 或者是新的 Intel Core 2 與 K8 系列的 CPU 等等,都可以正常的工作!那個 i 指的是 Intel 相容的 CPU 的意思,至于 386 不用說,就是 CPU 的等級啦! i586 就是針對 586 等級的計算機進行優化編譯。那是哪些 CPU 呢?包括 pentum 第一代 MMX CPU, AMD 的 K5, K6 系列 CPU (socket 7 插腳) 等等的 CPU 都算是這個等級; i686 在 pentun II 以後的 Intel 系列 CPU ,及 K7 以後等級的 CPU 都屬于這個 686 等級! 由于 目前市面上幾乎僅剩 P-II 以後等級的硬體平台,是以很多 distributions 都直接釋出這種等級的 RPM 檔案。 x86_64 針對 64 位的 CPU 進行優化編譯設定,包括 Intel 的 Core 2 以上等級 CPU ,以及 AMD 的Athlon64 以後等級的 CPU ,都屬于這一類型的硬體平台。 noarch 就是沒有任何硬體等級上的限制。一般來說,這種類型的 RPM 檔案,裡面應該沒有 binary program 存在, 較常出現的就是屬于 shell script 方面的軟體。 四、RPM 安裝:install
rpm -ivh package_name選項與參數:-i:install 的意思-v:檢視更詳細的安裝資訊畫面-h:以安裝資訊清單顯示安裝進度範例一:安裝原版CD光牒上的 rp-pppoe 軟體rpm -ivh /mnt/Packages/rp-pppoe-3.11-5.el7.x86_64.rpm範例二:一次安裝多個軟體rpm -ivh a.i386.rpm b.i386.rpm *.rpm範例三:直接由網絡上的某個檔案安裝,以網址來安裝rpm -ivh http://website.name/path/pkgname.rpm
RPM安裝時常用的選項與參數說明
可下達的選項 代表意義 --nodeps 使用時機:當發生軟體屬性相依問題而無法安裝,但你執意安裝時
危險性:軟體會有相依性的原因是因為彼此會使用到對方的機制或功能,如果強制安裝而不考慮軟體的屬性相依, 則可能會造成該軟體的無法正常使用! --replacefiles 使用時機:如果在安裝的過程當中出現了『某個檔案已經被安裝在你的系統上面』的資訊, 又或許出現版本不合的訊息 (confilcting files) 時,可以使用這個參數來直接覆寫檔案。
危險性:覆寫的動作是無法複原的!是以,你必須要很清楚的知道被覆寫的檔案是真的可以被覆寫喔!否則會欲哭無淚! --replacepkgs 使用時機:重新安裝某個已經安裝過的軟體!如果你要安裝一堆 RPM 軟體檔案時,可以使用 rpm -ivh *.rpm ,但若某些軟體已經安裝過了, 此時系統會出現『某軟體已安裝』的資訊, 導緻無法繼續安裝。此時可使用這個選項來重複安裝喔! --force 使用時機:這個參數其實就是 --replacefiles 與 --replacepkgs 的綜合體! --test 使用時機:想要測試一下該軟體是否可以被安裝到使用者的 Linux 環境當中,可找出是否有 屬性相依的問題。範例為:rpm -ivh pkgname.i386.rpm --test --justdb 使用時機:由于 RPM 資料庫破損或者是某些緣故産生錯誤時,可使用這個選項來更新軟體 在資料庫内的相關資訊。 --nosignature 使用時機:想要略過數字簽名的檢查時,可以使用這個選項。 --prefix 新路徑 使用時機:要将軟體安裝到其他非正規目錄時。舉例來說,你想要将某軟體安裝到 /usr/local 而非正規的 /bin, /etc 等目錄, 就可以使用『 --prefix /usr/local 』來處理了。 --noscripts 使用時機:不想讓該軟體在安裝過程中自行執行某些系統指令。
說明:RPM 的優點除了可以将檔案放置到定位之外,還可以自動執行一些前置作業的指令, 例如資料庫的初始化。 如果你不想要讓 RPM 幫你自動執行這一類型的指令,就加上他吧! 五、RPM 更新與更新(upgrade/freshen)
參數 差别 -Uvh 後面接的軟體即使沒有安裝過,則系統将予以直接安裝;若後面接的軟體有安裝過舊版,則系統自動更新至新版 -Fvh 如果後面接的軟體并未安裝到你的 Linux 系統上,則該軟體不會被安裝;亦及隻有已安裝到你 Linux 系統内的軟體會被“更新” 六、RPM 查詢(query)
rpm -qa <==已安裝軟體rpm -q[licdR] <==已安裝軟體rpm -qf 存在于系統上面的某個檔案名 <==已安裝軟體rpm -qp[licdR] 未安裝的某個檔案名稱 <==查閱 RPM 檔案參數:查詢已安裝軟體的資訊:-q :僅查詢,後面接的軟體名稱是否有安裝;-qa :列出所有的已經安裝在本機 Linux 系統上面的所有軟體名稱;-qi :列出該軟體的詳細資訊,包含開發商、版本與說明等;-ql:列出該軟體所有的檔案與目錄所在完整檔案名;-qc :列出該軟體的所有設定檔案;-qd :列出該軟體的所有幫助檔案;-qR :列出該軟體有關的依賴軟體所含的檔案;-qf :由後面接的檔案名稱找出該檔案屬于哪一個已安裝的軟體
七、解除安裝 RPM 與重建資料庫
解除安裝:rpm -e 軟體名稱重建資料庫:rpm --rebuilddb
八、YUM 線上更新機制
查詢功能
如果想要利用 yum 來查詢原版 distribution 所提供的軟體,或已知某軟體的名稱,想知道該軟體的功能, 可以利用 yum 相關的參數為:
yum [option] [查詢工作項目] [相關參數]參數:[option]:主要的參數,包括有:-y :當 yum 要等待使用者輸入時,這個選項可以自動提供 yes 的響應;--installroot=/some/path:将該軟體安裝在/some/path 中而不使用預設路徑[查詢工作項目] [相關參數]:這方面的參數有:search:搜尋某個軟體名稱或者是描述 (description) 的重要關鍵字;list:列出目前 yum 所管理的所有的軟體名稱與版本,有點類似 rpm -qa;info:同上,不過有點類似 rpm -qai 的執行結果;provides:從檔案去搜尋軟體!類似 rpm -qf 的功能!範例一:搜尋磁盤陣列 (raid) 相關的軟體有哪些? [[email protected] ~]# yum search raid已加載插件:fastestmirror, langpacksRepodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fastLoading mirror speeds from cached hostfile * epel: mirror01.idc.hinet.net============================================================ N/S matched: raid =============================================================dmraid.x86_64 : dmraid (Device-mapper RAID tool and library)dmraid.i686 : dmraid (Device-mapper RAID tool and library)dmraid-devel.x86_64 : Development libraries and headers for dmraid.dmraid-events-logwatch.x86_64 : dmraid logwatch-based email reportingkmod-redhat-megaraid_sas.x86_64 : megaraid_sas module for Driver Update Program.libstoragemgmt-megaraid-plugin.noarch : Files for LSI MegaRAID support for libstoragemgmtdmraid-events.x86_64 : dmevent_tool (Device-mapper event tool) and DSOiprutils.x86_64 : Utilities for the IBM Power Linux RAID adaptersmdadm.x86_64 : The mdadm program controls Linux md devices (software RAID arrays)snapraid.x86_64 : Disk array backup for many large rarely-changed files 名稱和簡介比對 only,使用“search all”試試。# 在冒号 (:) 左邊的是軟體名稱,右邊的則是在 RPM 内的 name 設定 (軟體名)# 瞧!上面的結果,這不就是與 RAID 有關的軟體嗎?如果想了解 mdadm 的軟體内容呢?範例二:找出 mdadm 這個軟體的功能為何[[email protected] ~]# yum info mdadm已加載插件:fastestmirror, langpacksRepodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fastLoading mirror speeds from cached hostfile * epel: mirror01.idc.hinet.net已安裝的軟體包名稱 :mdadm架構 :x86_64版本 :3.3.2釋出 :7.el7_2.1大小 :928 k源 :installed來自源:updates簡介 : The mdadm program controls Linux md devices (software RAID arrays)網址 :http://www.kernel.org/pub/linux/utils/raid/mdadm/協定 : GPLv2+描述 : The mdadm program is used to create, manage, and monitor Linux MD (software : RAID) devices. As such, it provides similar functionality to the raidtools : package. However, mdadm is a single program, and it can perform : almost all functions without a configuration file, though a configuration : file can be used to help with some common tasks.可安裝的軟體包名稱 :mdadm架構 :x86_64版本 :3.4釋出 :14.el7_3.1大小 :415 k源 :updates/7/x86_64簡介 : The mdadm program controls Linux md devices (software RAID arrays)網址 :http://www.kernel.org/pub/linux/utils/raid/mdadm/協定 : GPLv2+描述 : The mdadm program is used to create, manage, and monitor Linux MD (software : RAID) devices. As such, it provides similar functionality to the raidtools : package. However, mdadm is a single program, and it can perform : almost all functions without a configuration file, though a configuration : file can be used to help with some common tasks.範例三:列出 yum 伺服器上面提供的所有軟體名稱[[email protected] ~]# yum list範例四:列出目前伺服器上可供本機進行更新的軟體有哪些?[[email protected] ~]# yum list updates範例五:列出提供 passwd 這個檔案的軟體有哪些[[email protected] ~]# yum provides passwd
安裝/更新功能
yum [option] [安裝與更新的工作項目] [相關參數]選項與參數:install :後面接要安裝的軟體!update :後面接要更新的軟體,若要整個系統都更新,就直接 update 即可
移除功能
yum remove 軟體名稱