目錄
-
- 一、軟體包分類
-
- 1、源碼包
- 2、二進制包
- 二、安裝方式
-
- 1、YUM安裝
- 2、RPM安裝
- 3、源碼安裝
一、軟體包分類
1、源碼包
源碼包能直接看到源碼,需要我們去軟體官網進行下載下傳,通常為了友善釋出,會将源碼包做打包壓縮處理(常用的打包壓縮格式為"tar.gz"),其中一般包含多個檔案(源代碼檔案、配置和檢測程式、軟體安裝說明和軟體說明)。
優點:
① 開源,如果有足夠的能力,可以直接修改源代碼;
② 安裝時可以根據自己的需求選擇相應的功能,是以更加适合自己的系統,并且更加穩定、高效;
③ 解除安裝友善,直接删除安裝軟體的目錄即可。
缺點:
① 安裝步驟較多,尤其安裝較大的軟體集合時,容易出現錯誤;
② 因為是編譯安裝,安裝過程中一旦報錯新手很難解決;
③ 編譯時間比較長。
2、二進制包
二進制包就是源碼包經過成功編譯之後産生的包,是Linux下預設的軟體安裝包。
優點:
① 包管理系統簡單,隻需要幾個指令就可以實作包的安裝,更新,查詢和解除安裝;
② 安裝速度比源碼包快很多;
③ 安裝過程中報錯幾率很小。
缺點:
① 已經經過編譯,看不到源代碼;
② 功能選擇不如源碼包靈活;
③ 安裝過程中有很多依賴包,依賴性不好解決。
二、安裝方式
1、YUM安裝
① YUM簡介
yum(Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟體包管理器。基于RPM包管理,能夠從指定的伺服器自動下載下傳RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載下傳、安裝。yum提供了查找、安裝、删除某一個、一組甚至全部軟體包的指令,而且指令簡潔而又好記。
② YUM指令
-
指令解釋
yum - Yellowdog Updater Modified(Shell前端軟體包管理器)
-
指令文法
yum [options] [command] [package …]
其中,[options]為可選項,選項包括-h(幫助),-y(當安裝過程提示選擇全部為"yes"),-q(不顯示安裝的過程)等等;[command]為所要進行的操作;[package]是操作的對象。
- 常用的yum指令
Ⅰ、顯示和查找
命 令 | 解 釋 |
---|---|
yum repolist [all / enabled / disabled] | 顯示配置的倉庫 [全部 / 可用 / 不可用] |
yum list [all] | 顯示所有軟體包 |
yum list | grep 包名 | 查找指定的軟體包 |
yum list installed | 顯示已安裝的所有軟體包 |
yum list available | 顯示可安裝的軟體包 |
yum list updates | 顯示已更新的軟體包 |
yum list recent | 顯示最近增加的軟體包 |
yum search 關鍵詞 | 以指定的關鍵詞對軟體包進行模糊查詢 |
yum info 包名 | 顯示指定軟體包資訊 |
yum provides 包名 | 列出軟體包中的檔案 |
Ⅱ、安裝
命 令 | 解 釋 |
---|---|
yum install 包名 | 安裝指定軟體包(過程中需要确認) |
yum install 包名 -y | 安裝指定軟體包(無需确認) |
Ⅲ、更新
命 令 | 解 釋 |
---|---|
yum update 包名 | 更新指定軟體包 |
yum check-update | 檢查可更新的程式 |
Ⅳ、解除安裝
命 令 | 解 釋 |
---|---|
yum remove 包名 | 解除安裝已安裝的軟體包 |
Ⅴ、建立和清理緩存
命 令 | 解 釋 |
---|---|
yum makecache | 建構緩存 |
yum clean all | 清除緩存 |
③ 配置yum源
yum管理是從指定的伺服器下載下傳資源,而下載下傳資源的這個地方就叫做yum源。使用yum安裝軟體時至少需要一個yum源,這個yum源既可以是網絡源,也可以是本地源。接下來為大家示範兩種yum源的搭建方式。
Ⅰ、網絡yum源搭建(以阿裡雲源為例)
[[email protected] ~]# yum install wget //安裝wget(一個從網絡上自動下載下傳檔案的自由工具)
[[email protected] /]# cd /etc/yum.repos.d/ //備份/etc/yum/repos.d/CentOS-Base.repo檔案
[[email protected] yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.backup
[[email protected] yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo //下載下傳新的CentOS-Base.repo到/etc/yum.repos.d(以CentOS-7.repo為例)
--2020-03-17 09:31:20-- http://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主機 mirrors.aliyun.com (mirrors.aliyun.com)... 111.19.177.243, 111.19.210.115, 111.19.177.248, ...
正在連接配接 mirrors.aliyun.com (mirrors.aliyun.com)|111.19.177.243|:80... 已連接配接。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:2523 (2.5K) [application/octet-stream]
正在儲存至: “/etc/yum.repos.d/CentOS-Base.repo”
100%[======================================>] 2,523 --.-K/s 用時 0s
2020-03-17 09:31:20 (10.5 MB/s) - 已儲存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])
[[email protected] yum.repos.d]# yum clean all //清理緩存
已加載插件:fastestmirror
正在清理軟體源: base extras updates
Cleaning up list of fastest mirrors
[[email protected] yum.repos.d]# yum makecache //建構緩存
已加載插件:fastestmirror
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00
extras | 2.9 kB 00:00
updates | 2.9 kB 00:00
(1/10): base/7/x86_64/group_gz | 165 kB 00:00
(2/10): base/7/x86_64/filelists_db | 7.3 MB 00:02
(3/10): base/7/x86_64/other_db | 2.6 MB 00:00
(4/10): extras/7/x86_64/filelists_db | 216 kB 00:00
(5/10): extras/7/x86_64/other_db | 106 kB 00:00
(6/10): base/7/x86_64/primary_db | 6.0 MB 00:03
(7/10): updates/7/x86_64/filelists_db | 4.0 MB 00:01
(8/10): updates/7/x86_64/other_db | 493 kB 00:01
(9/10): updates/7/x86_64/primary_db | 6.7 MB 00:02
(10/10): extras/7/x86_64/primary_db | 164 kB 00:04
中繼資料緩存已建立
Ⅱ、本地yum源搭建
在沒有網絡的情況下,yum可以使用本地CD光牒(映像檔案)作為yum源,Linux系統安裝映像檔案中就含有幾乎所有常用的 RPM 包,是以足以滿足我們的需求。
[[email protected] ~]# mount /dev/sr0 /media/ //挂載CD光牒
mount: /dev/sr0 寫保護,将以隻讀方式挂載
[[email protected] ~]# cd /etc/yum.repos.d/ //備份yum源配置檔案
[[email protected] yum.repos.d]# mkdir backup
[[email protected] yum.repos.d]# mv Cen* backup/
[[email protected] yum.repos.d]# cp backup/CentOS-Media.repo CentOS-Media.repo //我們以CentOS-Media.repo為模闆進行修改(此檔案就是以本地CD光牒作為 yum源的模闆檔案,隻需進行簡單的修改即可)
[[email protected] yum.repos.d]# vim CentOS-Media.repo
[CentOS] //軟體源的名字,不能為空
name=CentOS-Media //軟體源的描述
baseurl=file:///media/ //指定伺服器位址,因為是本地檔案是以使用file,在這裡一定要注意是三個"/",其中前兩個是标準格式,第三個是目錄路徑。
gpgcheck=0 //表示下載下傳軟體包時是否檢查簽名,0表示不檢查,1表示檢查
enabled=1 //表示是否啟用這個軟體源,0表示不啟用,1表示啟用
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 //開啟gpgcheck後通過gpgkey來指定相應的簽名認證資訊路徑
[[email protected] yum.repos.d]# yum clean all //清理緩存
已加載插件:fastestmirror
正在清理軟體源: CentOS
Cleaning up list of fastest mirrors
Other repos take up 79 M of disk space (use --verbose for details)
[[email protected] yum.repos.d]# yum makecache //建構緩存
已加載插件:fastestmirror
Determining fastest mirrors
CentOS | 3.6 kB 00:00
(1/4): CentOS/group_gz | 166 kB 00:00
(2/4): CentOS/filelists_db | 3.2 MB 00:00
(3/4): CentOS/primary_db | 3.1 MB 00:00
(4/4): CentOS/other_db | 1.3 MB 00:00
中繼資料緩存已建立
2、RPM安裝
① RPM簡介
rpm(redhat package manager) 原本是 Red Hat Linux 發行版專門用來管理 Linux 各項套件的程式,由于它遵循 GPL 規則且功能強大友善,因而廣受歡迎。逐漸受到其他發行版的采用。yum可以自動判斷依賴,一次性安裝多個rpm軟體包,但原理和一個個地安裝rpm軟體包沒有本質差別。
② RPM包在哪裡?
[[email protected] ~]# mount /dev/sr0 /media/ //首先需要挂載CD光牒
mount: /dev/sr0 寫保護,将以隻讀方式挂載
[[email protected] ~]# cd /media/ //進入挂載點
[[email protected] media]# ll //Package這個目錄裡就是自帶編譯好的rpm程式包
總用量 686
-rw-rw-r--. 1 root root 14 11月 26 2018 CentOS_BuildTag
drwxr-xr-x. 3 root root 2048 11月 26 2018 EFI
-rw-rw-r--. 1 root root 227 8月 30 2017 EULA
-rw-rw-r--. 1 root root 18009 12月 10 2015 GPL
drwxr-xr-x. 3 root root 2048 11月 26 2018 images
drwxr-xr-x. 2 root root 2048 11月 26 2018 isolinux
drwxr-xr-x. 2 root root 2048 11月 26 2018 LiveOS
`drwxrwxr-x. 2 root root 663552 11月 26 2018 Packages`
drwxrwxr-x. 2 root root 4096 11月 26 2018 repodata
-rw-rw-r--. 1 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-7
-rw-rw-r--. 1 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root 2883 11月 26 2018 TRANS.TBL
[[email protected] media]# cd Packages/ //進入Package目錄
[[email protected] Packages]# ls //rpm包命名原則:軟體包名-版本号-釋出次數-适用系統-适用的CPU架構平台_支援系統位數.包擴充名(rpm)
...省略部分資訊
zenity-3.28.1-1.el7.x86_64.rpm
zip-3.0-11.el7.x86_64.rpm
zlib-1.2.7-18.el7.x86_64.rpm
zlib-devel-1.2.7-18.el7.x86_64.rpm
zsh-5.0.2-31.el7.x86_64.rpm
zziplib-0.13.62-9.el7.x86_64.rpm
...省略部分資訊
③ RPM指令
-
指令解釋
rpm - RPM Package Manager(RPM軟體包管理器)
-
指令文法
rpm [選項]… [完整包名]
- 常用的rpm指令
Ⅰ、安裝
rpm -ivh 完整軟體包名
選 項 | 解 釋 |
---|---|
-i | 安裝( install) |
-v | 顯示詳細資訊(verbose) |
-h | 顯示進度條(hash),每個#代表%2的進度 |
--force | 強制安裝 |
--nodeps | 忽略依賴 |
Ⅱ、更新
rpm -Uvh 完整軟體包名
如果該軟體沒安裝過則直接安裝;若沒安裝則更新至最新版本
rpm -Fvh 完整軟體包名
如果該軟體沒有安裝,則不會安裝,必須安裝有較低版本才能更新
選 項 | 解 釋 |
---|---|
-U | 更新或安裝 |
-F | 更新 |
Ⅲ、解除安裝
RPM 軟體包的解除安裝要考慮包之間的依賴性,先安裝的後解除安裝,後安裝的先解除安裝。
rpm -e 軟體包名
選 項 | 解 釋 |
---|---|
-e | 解除安裝( erase) |
Ⅳ、查詢
rpm -q 軟體包名
查詢軟體包是否安裝
rpm -qa
查詢所有已安裝的軟體包
rpm -qi
查詢軟體包相關資訊
rpm -qf 檔案名
查詢系統檔案屬于哪個RPM包
rpm -qR 軟體包名
查詢軟體包的依賴性
選 項 | 解 釋 |
---|---|
-q | 查詢(query) |
-a | 所有(all) |
-i | 軟體包相關資訊(information) |
-f | 系統檔案所屬的軟體包(file) |
-R | 軟體包的依賴性(rely) |
Ⅳ、校驗
rpm -V 已安裝的軟體包名
選 項 | 解 釋 |
---|---|
-V | 校驗指定rpm包中的檔案(verify) |
執行後無任何提示資訊,表明軟體包安裝的檔案均未改動過。
3、源碼安裝
① 安裝
Ⅰ、下載下傳源碼包
下載下傳指定軟體的源碼包(字尾名為"tar.gz"或"tar.bz2")至"/usr/local/src"目錄下(推薦大家去官方網站去下載下傳)。
Ⅱ、解壓源碼包
[[email protected] src]# tar -zxvf 軟體包全名 //解壓字尾名為tar.gz的源碼包
[[email protected] src]# tar -jxvf 軟體包全名 //解壓字尾名為tar.bz2的源碼包
Ⅲ、切換到源碼目錄(解壓後的目錄)下,執行後續操作
我們可以檢視INSTALL檔案,裡面寫着一些安裝說明。一般來說源碼安裝需要三步:配置(configure)→編譯(make)→安裝(make install)。
a、配置 # ./configure
可以跟以下參數:
參 數 | 解 釋 |
---|---|
--prefix=安裝路徑 | 指定安裝路徑 |
--enable-FEATURE | 啟用某項功能 |
--disable-FEATURE | 禁用某項功能 |
--with-package=包所在的路徑 | 與其他軟體關聯 |
配置操作主要是定義需要的功能選項、檢測系統環境是否符合安裝要求(例如,是否有gcc編譯器,是否滿足依賴需求等)、把系統環境的檢測結果和定義好的功能選項寫入 Makefile 檔案(後續的編譯和安裝需要依賴這個檔案的内容)。
b、編譯 # make
make 會調用 gcc 編譯器,并讀取 Makefile 檔案中的資訊進行系統軟體編譯。
c、安裝 # make install
根據Makefile定義的檔案路徑進行安裝,整個過程不報錯,即為安裝成功。如果出現"error"或"warning"且安裝過程停止,表示安裝失敗;但是如果僅出現警告資訊,但安裝過程還在繼續,這并不是安裝失敗!
tips:如果在 “./configure” 或 “make” 兩步中出現錯誤,則在重新執行這兩步前必須執行 make clean 指令,它會清空 Makefile 檔案或編譯産生的 “.o” 頭檔案。
② 解除安裝
源碼包解除安裝非常簡單便利,隻需要直接删除軟體的安裝目錄即可,但删除前記得将軟體的服務停止哦!