Linux軟體安裝方式 – Tarball&RPM&YUM
軟體安裝
簡介
概念詳解
# 概念詳解
- 開放源碼: 程式碼, 寫給人類看的程式語言, 但機器並不認識, 所以無法執行;
- 編譯器: 將程式碼轉譯成為機器看的懂得語言, 就類似翻譯者的角色;
- 可可執行文件: 經過編譯器變成二進位程式後, 機器看的懂所以可以執行的文件;
- make: 作用是開始進行源程式碼編譯;
- configure: 一般用來生成 Makefile, 為下一步的編譯做準備;
- Tarball軟體: 所謂的 Tarball 文件, 其實就是將軟體的所有源程式碼文件先以 tar 打包, 然後再以壓縮技術來壓縮, 通常最常見的就是以 gzip 來壓縮;
- Tarball: linux系統下最方便的打包工具, 以tar這個指令來打包與壓縮的檔案;
- RPM: 全名是"RedHat Package Manager"簡稱則為 RPM; 通過預先編譯並打包成為 RPM 文件格式後, 再安裝軟體的一種方式;
- SRPM: SRPM 所提供的套件內容並沒有經過編譯, 提供的是原始碼;其中SRPM中包含了所有 RPM 檔案所提供的數據;
- YUM: Yum是一個互動式的、基於RPM的包管理器; 它可以自動執行系統更新, 包括依賴關係基於"倉庫"元數據的分析和廢棄處理;
# 常用相關命令
- file: 用於識別文件的類型, 也可以用來辨別一些內容的編碼格式, 通過分析文件頭部資訊中的標識來顯示文件類;
- type: 用來顯示指定命令的類型, 判斷給出的指令是內部指令還是外部指令;
# 軟體安裝方式
##Tarball方式
- 取得原始文件: 將 tarball 文件在 /usr/local/src 目錄下解壓縮;
- 取得步驟流程: 進入新創建的目錄下面,去查閱 INSTALL 與 README 等相關文件內容 (很重要的步驟) ;
- 相依屬性軟體安裝: 根據 INSTALL/README 的內容察看並安裝好一些相依的軟體 (非必要) ;
- 創建 makefile: 以自動偵測程式 (configure 或 config) 偵測作業環境,並創建 Makefile 這個文件;
- 編譯: 以 make 這個程式並使用該目錄下的 Makefile 做為他的參數配置文件,來進行 make (編譯或其他) 的動作;
- 安裝: 以 make 這個程式,並以 Makefile 這個參數配置文件,依據 install 這個標的 (target) 的指定來安裝到正確的路徑;
##RPM方式
- 將 RPM 由廠商的網頁下載下來;
- 解決 RPM 包管理依賴;
- 通過 RPM -ivh 安裝軟體;
##YUM方式
- 配置網路(網路可通);
- 修改數據源;
- 通過 yum install命令安裝軟體;
目前在 Linux 界軟體安裝方式最常見的有兩種,分別是:
- dpkg: 這個機制最早是由 Debian Linux 社群所開發出來的, 通過 dpkg 的機制, Debian 提供的軟體就能夠簡單的安裝起來, 同時還能提供安裝後的軟體資訊, 實在非常不錯; 只要是衍生於 Debian 的其他 Linux distributions 大多使用 dpkg 這個機制來管理軟體的, 包括 B2D, Ubuntu 等等;
- RPM: 這個機制最早是由 Red Hat 這家公司開發出來的, 後來實在很好用, 因此很多 distributions 就使用這個機制來作為軟體安裝的管理方式; 包括 Fedora, CentOS, SuSE 等等知名的開發商都是用這咚咚;
istribution 代表 | 軟體管理機制 | 使用指令 | 線上升級機制(指令) |
---|---|---|---|
Red Hat/Fedora | RPM | rpm, rpmbuild | YUM (yum) |
Debian/Ubuntu | DPKG | dpkg | APT (apt-get) |
RPM 與 SRPM區別:
文件格式 | 文件名格式 | 直接安裝與否 | 內含程式類型 | 可否修改參數並編譯 |
---|---|---|---|---|
RPM | xxx.rpm | 可 | 已編譯 | 不可 |
SRPM | xxx.src.rpm | 不可 | 未編譯之源程式碼 | 可 |
file 命令使用
# 查看系統的文件
$ file /bin/bash
/bin/bash: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=9223530b1aa05d3dbea7e72738b28b1e9d82fbad, stripped
# 是 binary 且是可以執行的時候, 就會顯示可執行文件類別 (ELF 64-bit LSB executable), 同時會說明是否使用動態函數庫 (shared libs);
# 查看系統提供的文件
$ file /etc/init.d/network
/etc/init.d/network: Bourne-Again shell script, ASCII text executable
# 如果是一般的 script , 就會顯示出 text executables 之類的字樣;
命名規範
Linux安裝包命名規範,通過 rp-pppoe-3.11-5.el7.x86_64.rpm
查看文件的意義:
- rp-pppoe: 軟體名稱;
- 3.11: 軟體版本資訊;
- 5: 釋出版本次數;
- el7.x86_64: 操作硬體平台;
- rpm: 擴展名;
平台名稱 | 適合平台說明 |
---|---|
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 方面的軟體。 |
Tarball&RPM&YUM
Tarball
# Tarball 安裝流程
- 將 Tarball 由廠商的網頁下載下來;
- 將 Tarball 解開,產生很多的源程式碼文件;
- 開始以 gcc 進行源程式碼的編譯 (會產生目標文件 object files);
- 然後以 gcc 進行函數庫、主、副程式的鏈接,以形成主要的 binary file;
- 將上述的 binary file 以及相關的配置文件安裝至自己的主機上面;
# Tarball 安裝常用命令
- ./configure: 建立 Makefile 文件;
- make clean: 讀取 Makefile 中關於 clean 的工作;
- make: 會依據 Makefile 當中的預設工作進行編譯的行為;
- make install: 會依據 Makefile 這個文件裡面關於 install 的項目;
# Tarball 默認安裝路徑
- /usr/local/etc: 配置文件
- /usr/local/lib: 函數庫
- /usr/local/bin: 可執行文件
- /usr/local/man: 線上說明文檔, 主要是可通過 man 命令查看命令使用文檔
# 建議
- 最好將 tarball 的原始數據解壓縮到 /usr/local/src 當中;
- 安裝時, 最好安裝到 /usr/local 這個默認路徑下;
- 考慮未來的卸載過程, 最好可以將每個軟體單獨的安裝在 /usr/local 下面;
- 為安裝到單獨目錄的軟體之 man page 加入 man path 搜尋;
- 安裝 nginx 依賴
$ yum install -y wget gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel 安裝
- 下載&解壓 nginx 源碼包
# 下載 nginx 源碼包
$ wget //nginx.org/download/nginx-1.16.1.tar.gz
# 解壓 nginx 源碼包
$ tar -zxvf nginx-1.16.1.tar.gz -C /usr/local/src
# 進入 nginx 源碼路徑
$ cd /usr/local/src/nginx-1.16.1
- 參數配置&Makefile生成
# 查詢可用的參數
$ ./configure --help
# 參數配置
$ ./configure --prefix=/usr/local/nginx \ # 安裝路徑指定
--sbin-path=/usr/local/nginx/sbin/nginx \
--modules-path=/usr/local/nginx/modules \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--lock-path=/usr/local/nginx/logs/nginx.lock \
--with-http_gzip_static_module \
--with-http_ssl_module
# 創建 Makefile
$ make
# 安裝 nginx
$ make install
RPM
# RPM 安裝流程(離線、在線都可安裝軟體)
- 將 RPM 由廠商的網頁下載下來;
- 解決 RPM 包管理依賴;
- 通過 RPM -ivh 安裝軟體;
# RPM 默認安裝路徑
- /etc: 一些配置文件放置的目錄, 例如 /etc/crontab;
- /usr/bin: 一些可可執行文件案;
- /usr/lib: 一些程式使用的動態函數庫;
- /usr/share/doc: 一些基本的軟體使用手冊與說明文檔;
- /usr/share/man: 一些 man page 文件;
# RPM 常用命令
- rpm -ivh package_name
- rpm -Uvh package_name
- rpm -qa
- rpm -e
- RPM安裝軟體
# 光碟安裝軟體
$ rpm -ivh /光碟掛載路徑/rp-pppoe-3.11-5.el7.x86_64.rpm
# 安裝多個軟體
$ rpm -ivh a.i386.rpm b.i386.rpm *.rpm # *.rpm表示許多的軟體文件
# 聯網安裝軟體
$ rpm -ivh //website.name/path/pkgname.rpm
- RPM升級
# -Uvh: 後面接的軟體即使沒有安裝過, 則系統將予以直接安裝; 若後面接的軟體有安裝過舊版, 則系統自動更新至新版;
# -Fvh: 如果後面接的軟體並未安裝到你的 Linux 系統上, 則該軟體不會被安裝; 亦即只有已安裝至你 Linux 系統內的軟體會被"升級";
- RPM查詢
# 顯示所有安裝軟體
$ rpm -qa
# 顯示已安裝的軟體
$ rpm -q[licdR] 已安裝的軟體名稱
# 顯示已安裝的軟體
$ rpm -qf 存在於系統上面的某個文件名
# 查看RPM文件
$ rpm -qp[licdR] 未安裝的某個文件名稱
#選項與參數:
#查詢已安裝軟體的資訊:
##-q: 僅查詢,後面接的軟體名稱是否有安裝;
##-qa: 列出所有的,已經安裝在本機 Linux 系統上面的所有軟體名稱;
##-qi: 列出該軟體的詳細資訊 (information) ,包含開發商、版本與說明等;
##-ql: 列出該軟體所有的文件與目錄所在完整文件名 (list) ;
##-qc: 列出該軟體的所有配置文件 (找出在 /etc/ 下面的文件名而已)
##-qd: 列出該軟體的所有說明文檔 (找出與 man 有關的文件而已)
##-qR: 列出與該軟體有關的相依軟體所含的文件 (Required 的意思)
##-qf: 由後面接的文件名稱,找出該文件屬於哪一個已安裝的軟體;
##-q --scripts:列出是否含有安裝後需要執行的腳本檔,可用以 debug 喔!
#查詢某個 RPM 文件內含有的資訊:
##-qp[icdlR]:注意 -qp 後面接的所有參數以上面的說明一致。但用途僅在於找出某個 RPM 文件內的資訊,而非已安裝的軟體資訊;
# 查找是否安裝 docker-ce 軟體
# 不必要加上版本
$ rpm -q docker-ce
docker-ce-19.03.2-3.el7.x86_64
# 顯示 docker-ce 軟體所有目錄與文件
$ rpm -ql docker-ce
/usr/bin/docker-init
/usr/bin/docker-proxy
/usr/bin/dockerd
/usr/lib/systemd/system/docker.service
/usr/lib/systemd/system/docker.socket
/var/lib/docker-engine/distribution_based_engine-ce.json
# 顯示 docker-ce 說明資料
$ rpm -qi docker-ce
Name : docker-ce
Epoch : 3
Version : 19.03.2
Release : 3.el7
Architecture: x86_64
Install Date: Wed 21 Sep 2022 09:51:07 PM CST
Group : Tools/Docker
# 顯示 docker-ce 配置文件
$ rpm -qc docker-ce
$ rpm -qd docker-ce
# 顯示 docker-ce 以來
$ rpm -qR docker-ce
/bin/sh
container-selinux >= 2:2.74
containerd.io >= 1.2.2-3
device-mapper-libs >= 1.02.90-1
docker-ce-cli
# 顯示 /bin/sh 由那個軟體包提供的
$ rpm -qf /bin/sh
# 查看 RPM 文檔
$ rpm -qpR filename.xxx.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卸載軟體&重建
# 卸載過程一定是由最上層刪除到最下層的依賴, 否則容易出現錯誤
# 嘗試卸載 pam 軟體
$ rpm -qa | grep pam
$ rpm -e pam # 發現pam被kbd、sudo等依賴
error: Failed dependencies:
libpam.so.0()(64bit) is needed by (installed) kbd-1.15.5-15.el7.x86_64
libpam.so.0()(64bit) is needed by (installed) sudo-1.8.23-3.el7.x86_64
......
# 重建資料庫
$ rpm --rebuilddb
- RPM 數字簽名
# -Va: 列出目前系統上面所有可能被更動過的檔案;
$ rpm -Va
# -V: 後面加的是軟體名稱, 若該軟體所含的檔案被更動過, 才會列出來;
$ rpm -V 已安裝的軟體名稱
# -Vp: 後面加的是檔案名稱, 列出該軟體內可能被更動過的檔案;
$ rpm -Vp 某個 RPM 檔案的檔名
# -Vf: 列出某個檔案是否被更動過
$ rpm -Vf 在系統上面的某個檔案
# 查看 Docker-ce 是否被更改過
# 若無輸出資訊, 則表示沒有文件被更改過
$ rpm -V docker-ce
# 查看 /etc/crontab 是否被修改過
$ rpm -Vf /etc/crontab
YUM
# YUM 安裝流程(離線、在線都可安裝軟體)
- 配置網路(網路可通)
- 修改數據源
- 通過 yum install命令安裝軟體
# YUM options
- -y: 當 yum 要等待使用者輸入時, 這個選項可以自動提供 yes 的回應;
- --installroot=/some/path: 將該軟體安裝在 /some/path 而不使用預設路徑;
# YUM 常用查詢命令
- search:
- info:
- list:
- provides:
# YUM 常用安裝&升級命令
- install:
- groupinstall:
- update:
- YUM查詢
# yum [list|info|search|provides|whatprovides] 參數
# 搜索 ifconfig 屬於那個軟體包
# yum search 命令行/軟體包
$ yum search ifconfig
Loaded plugins: fastestmirror # yum 系統自己找出最近的 yum server
Loading mirror speeds from cached hostfile # 找出速度最快的那一部 yum server
* base: mirrors.ustc.edu.cn # 底下三個軟體庫,且來源為該伺服器!
* extras: mirrors.aliyun.com
* updates: mirrors.ustc.edu.cn
====================================================== Matched: ifconfig ======================================================
net-tools.x86_64 : Basic networking tools
# 查找 net-tools 功能介紹
# yum info 軟體包
$ yum info net-tools
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.ustc.edu.cn
Installed Packages
Name : net-tools
Arch : x86_64
Version : 2.0
Release : 0.25.20131004git.el7
Size : 917 k
Repo : installed
From repo : base
Summary : Basic networking tools
URL : //sourceforge.net/projects/net-tools/
License : GPLv2+
Description : The net-tools package contains basic networking tools,
: including ifconfig, netstat, route, and others.
: Most of them are obsolete. For replacement check iproute package.
# 列出伺服器所有軟體名稱
$ yum list
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.ustc.edu.cn
Installed Packages # 已安裝的軟體
GeoIP.x86_64 1.5.0-13.el7 @anaconda
......
Available Packages # 可安裝的其他軟體
......
# 軟體名稱 版本 在那個軟體庫[base|extras|updates]中
# 列出可升級的軟體
$ yum list updates
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.ustc.edu.cn
base | 3.6 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
Updated Packages
# 列出提供 passwd 文件的軟體有哪些
yum provides passwd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.ustc.edu.cn
passwd-0.79-6.el7.x86_64 : An utility for setting or changing passwords using PAM
Repo : base
passwd-0.79-4.el7.x86_64 : An utility for setting or changing passwords using PAM
Repo : @anaconda
- YUM 安裝&升級
# 安裝 pam-devel
$ yum install pam-devel
Loaded plugins: fastestmirror # 首先的 5 行在找出最快的 yum server
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.ustc.edu.cn
Resolving Dependencies # 接下來先處理依賴的軟體問題
--> Running transaction check
---> Package pam-devel.x86_64 0:1.1.8-23.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
# 由上面的檢查發現到 pam 這個軟體也需要同步升級,這樣才能夠安裝新版 pam-devel 喔!
# 至於下面則是一個總結的表格顯示!
===============================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================
Installing:
pam-devel x86_64 1.1.8-23.el7 base 185 k
Transaction Summary
===============================================================================================================================
Install 1 Package # 要安裝軟體數量是一個
Total download size: 185 k
Installed size: 528 k
Is this ok [y/d/N]: y
Downloading packages:
pam-devel-1.1.8-23.el7.x86_64.rpm | 185 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : pam-devel-1.1.8-23.el7.x86_64 1/1
Verifying : pam-devel-1.1.8-23.el7.x86_64 1/1
Installed:
pam-devel.x86_64 0:1.1.8-23.el7
Complete!
- YUM 移除
$ yum remove pam-devel
YUM 其他配置
YUM 倉庫配置
# YUM 倉庫配置文件查看
$ vi /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=//mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=//mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=//mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=//mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=//mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=//mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=//mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=//mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
參數詳情:
- name:只是說明一下這個軟體庫的意義而已,重要性不高!
- mirrorlist=:列出這個軟體庫可以使用的映射站台,如果不想使用,可以註解到這行;
- baseurl=:這個最重要,因為後面接的就是軟體庫的實際網址! mirrorlist 是由 yum 程式自行去捉映射站台, baseurl 則是指定固定的一個軟體庫網址!我們剛剛找到的網址放到這裡來啦!
- enable=1:就是讓這個軟體庫被啟動。如果不想啟動可以使用 enable=0 喔!
- gpgcheck=1:還記得 RPM 的數碼簽章嗎?這就是指定是否需要查閱 RPM 文件內的數碼簽章!
- gpgkey=:就是數碼簽章的公鑰檔所在位置!使用默認值即可
YUM 倉庫查看&清除
- 列出使用的軟體庫
$ yum repolist all
# 上面最右邊有寫 enabled 才是有啟動的;
- 清除軟體庫數據
$ yum clean
YUM 群組功能
- 查詢目前軟體庫與本機上安裝過的軟體群組
$ yum grouplist
Installed environment groups: # 已經安裝的系統環境軟體群組
Development and Creative Workstation
Available environment groups: # 還可以安裝的系統環境軟體群組
......
Installed groups: # 已經安裝的軟體群組!
Development Tools
Available Groups: # 還能額外安裝的軟體群組!
......
- 查看&安裝軟體群組
# 查看 GNOME Desktop 軟體群組
$ yum groupinfo "GNOME Desktop"
# 安裝 GNOME Desktop 軟體群組
$ yum groupinstall "GNOME Desktop"
區別
訂製化
Tarball:可訂製性高、可任意指定自定義參數;如,安裝路徑、第三方插件、平台限制小等原因;
rpm:可訂製性較低、可指定的自定義參數有限;
yum:可訂製性低、可指定的自定義參數極其有限;
複雜性
Tarball:安裝方式最為複雜,操作難度係數高,要求有一定的Linux知識;
rpm:安裝方式較為複雜,操作難度相比於Tarball簡單不少,要求有基礎的Linux知識;
yum:安裝方式最為簡單,操作難度幾乎沒有,要求有簡單的Linux知識;
推薦性
Tarball:在有一定運維基礎的情況下最推薦這個,可控性強,可按照要求來安裝&卸載;但是有一定難度,不建議新手上手;
rpm:不推薦這個,rpm解決依賴還是較為麻煩;有依賴問題、難度,不推薦新手使用;
yum:較為推薦;個人測試環境、不重要的軟體可通過yum安裝,簡單快捷方便;
安裝方式 | 訂製化 | 複雜性 | 推薦性 |
---|---|---|---|
Tarball | ☆☆☆☆☆ | ☆☆☆☆☆ | ☆ |
rpm | ☆☆☆ | ☆☆☆ | ☆☆☆ |
yum | ☆ | ☆ | ☆☆☆☆☆ |