LINUX下軟件安裝方式主要有以下4種:
- 源碼方式安裝Linux軟件
- RPM工具方式安裝軟件
- yum方式在線安裝軟件
- 二進(jìn)制包安裝方式安裝軟件
下面將分別演示不同方式下軟件的安裝與管理。
1.源碼方式安裝Linux軟件
這種方式安裝安裝軟件的優(yōu)點(diǎn)是:
1)只安裝需要的軟件,不用的不安裝。
2)安裝時(shí)可以通過(guò)參數(shù)指定路徑,不需要的時(shí)候,直接刪除目錄即完成卸載。
3)可以從官網(wǎng)獲得最新的源碼包,然后安裝最新版的軟件。
源碼方式安裝軟件地般 步驟 :
采用源碼方式安裝軟件,一般包括以下三步:
1)到官網(wǎng)下載軟件壓縮包,一般是tar.gz或者是tar.bz2格式,并解壓。
2)進(jìn)入解壓目錄,執(zhí)行./configure,進(jìn)行分析環(huán)境是否滿足。
3)執(zhí)行make && make install,進(jìn)行編譯與安裝。
具體的安裝過(guò)程演示,本文不再描述。請(qǐng)關(guān)注本公眾號(hào)Python運(yùn)維實(shí)踐(haopython),看2022年7月27日發(fā)布的 《CENTOS7.8下源碼方式安裝Apache2.4.54及排錯(cuò)》 這篇文章。
注:此處插入公眾號(hào)和文章鏈接。
2.RPM工具方式安裝軟件
2.1RPM包管理工具介紹
RPM是Red Hat Package Manager的縮寫,即Redhat軟件包管理。它是linux平臺(tái)下通用的軟件包管理方式,例如Fedora、Redhat、suse等主流linux發(fā)行版本都默認(rèn)采用了這種軟件包管理方式。這種方式管理軟件的安裝優(yōu)缺點(diǎn)如下: 優(yōu)點(diǎn): 安裝簡(jiǎn)單方便。 缺點(diǎn): 對(duì)操作系統(tǒng)環(huán)境的依賴很大,它要求RPM包的安裝環(huán)境必須與RPM包封裝時(shí)的環(huán)境相一致或相當(dāng)。同時(shí)需滿足安裝時(shí)與系統(tǒng)某些軟件包的依賴關(guān)系,例如需要安裝A軟件,但是A軟件需要系統(tǒng)有B和C軟件的支持,那么就必須先安裝B和C軟件,然后才能安裝A軟件。
2.2RPM包命名及含義
對(duì)于RPM包命名格式,以下面這個(gè)文件為例進(jìn)行解釋:
mysql-community-server-8.0.29-1.el7.x86_64.rpm
它主要由六部分組成,各部分如下:
mysql-community-server:表示軟件的名稱
8.0.29:表示軟件的版本號(hào)
1:表示軟件更新發(fā)行的次數(shù)
el7:表示適用的操作系統(tǒng)平臺(tái)
x86_64:表示適合的硬件平臺(tái)
rpm:是rpm軟件包的標(biāo)識(shí)
2.3RPM工具使用命令
2.3.1安裝軟件包
命令格式:
rpm -i [輔助選項(xiàng)] file1.rpm file2.rpm…..fileN.rpm
主選項(xiàng)含義:
-i:install的意思,即安裝軟件。等同于--install。
file1.rpm file2.rpm…..fileN.rpm:表示多個(gè)軟件可以一起安裝,這種方式有助于解決多個(gè)依賴關(guān)系。
輔助選項(xiàng)參數(shù)有多個(gè),一般常用的有如下幾個(gè),或它們的 組合 :
-a,--all:查詢/驗(yàn)證所有軟件包。-v:顯示附加信息。-h:安裝時(shí)輸出標(biāo)記“#”。--test:只對(duì)安裝進(jìn)行測(cè)試,并不實(shí)際安裝。--nodeps:不檢查軟件之間的依賴關(guān)系。加入此選項(xiàng)可能會(huì)導(dǎo)致軟件不可用。--force:忽略軟件包以及軟件沖突。-U, --upgrade=:升級(jí)軟件包。+
組合用法:
一般情況下,安裝rpm包采用以下兩種方式:
rpm -ivh mysql-community-server-8.0.29-1.el7.x86_64.rpm
rpm -Uvh mysql-community-server-8.0.29-1.el7.x86_64.rpm
有時(shí)候,安裝的軟件的低版本已經(jīng)存在,這時(shí)用rpm -Uvh安裝可以解決軟件沖突的問(wèn)題,推薦使用這種方式。
2.3.2查詢軟件包
命令格式:
rpm -q [輔助選項(xiàng)] package1……packageN
常用選項(xiàng)含義如下:
-q:query的意思,也可以使用--query。輔助選項(xiàng)含義如下:-f:查詢操作系統(tǒng)中某個(gè)文件屬于哪個(gè)對(duì)應(yīng)的rpm軟件包。-p:查詢以.rpm為后綴的軟件包安裝后對(duì)應(yīng)的包名稱。-l:顯示軟件包中的所有文件列表。此選項(xiàng)后面跟軟件包安裝后對(duì)應(yīng)的包名,切記不是以.rpm為后綴的rpm包。-i:顯示軟件包的概要信息,例如軟件名稱、版本、適應(yīng)平臺(tái)、大小等等。此選項(xiàng)后面跟完整的包名,切忌不是以.rpm為后綴的rpm包。
一般常用組合使用如下:
1)qf組合:
查詢某個(gè)文件屬于哪個(gè)對(duì)應(yīng)的rpm軟件包:
[root@mysquid ~]# rpm -qf /bin/ls
coreutils-8.22-24.el7.x86_64
[root@mysquid ~]# rpm -qf /bin/scp
openssh-clients-7.4p1-21.el7.x86_64
[root@mysquid ~]#
2)qa組合
檢查yum是否安裝:
[root@mysquid ~]# rpm -qa | grep yum
yum-3.4.3-167.el7.centos.noarch
yum-langpacks-0.4.2-7.el7.noarch
yum-plugin-fastestmirror-1.1.31-53.el7.noarch
PackageKit-yum-1.1.10-2.el7.centos.x86_64
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-utils-1.1.31-53.el7.noarch
[root@mysquid ~]#
3)其他組合
rpm -qp
rpm -ql
rpm -qi
rpm -qpi
2.3.3更新軟件包
命令格式:
rpm -U [輔助選項(xiàng)] file1.rpm……fileN.rpm
主選項(xiàng)含義如下:-U:upgrade的意思,可以使用--upgrade代替。
參數(shù)說(shuō)明:
file1.rpm……fileN.rpm表示需要升級(jí)的rpm文件包。
2.3.4刪除軟件包
命令格式:
rpm -e [輔助選項(xiàng)] package1……packageN
主選項(xiàng)含義如下:-e:erase的意思,也可以用--erase代替。
參數(shù)說(shuō)明:
package1……packageN表示已經(jīng)安裝的軟件包名稱。
輔助選項(xiàng)含義如下:
--test:只執(zhí)行刪除的測(cè)試。
--nodeps:不檢查依賴性。
2.3.5驗(yàn)證未安裝的軟件包文件
發(fā)行的RPM格式的軟件包是否值得信任,是否損壞,我們可以通過(guò)RPM提供的選項(xiàng)進(jìn)行驗(yàn)證。
RPM軟件包一般使用 Gnu 隱私衛(wèi)士(或稱GPG)來(lái)簽名,從而幫助使用者肯定下載軟件包的可信任性。
命令格式:
rpm -K file1.rpm……fileN.rpm
主選項(xiàng)含義如下:
-K:checksig的意思,也可以用--checksig代替。
這個(gè)選項(xiàng)用來(lái)檢查 RPM 軟件包文件的md5校驗(yàn)和GPG簽名。
3.yum方式在線安裝軟件
yum即`yellowdog updater modified。
yellow dog(黃狗)也是一個(gè)Linux的發(fā)行版本。
3.1yum的安裝與配置
以Centos7.8為例,檢查yum是否已經(jīng)安裝,執(zhí)行如下命令:
[root@mysquid ~]# rpm -qa | grep yum
yum-3.4.3-167.el7.centos.noarch
yum-langpacks-0.4.2-7.el7.noarch
yum-plugin-fastestmirror-1.1.31-53.el7.noarch
PackageKit-yum-1.1.10-2.el7.centos.x86_64
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-utils-1.1.31-53.el7.noarch
[root@mysquid ~]#
表明yum已經(jīng)安裝。
如果沒(méi)有任何顯示,表示系統(tǒng)中還沒(méi)有安裝yum工具。
yum安裝包在Centos系統(tǒng)光盤中可以找到,執(zhí)行如下指令進(jìn)行安裝:
[root@mysquid ~]# rpm -ivh yum-*.noarch.rpm
安裝yum需要python-elementtree、python-sqlite、urlgrabber、yumconf等軟件包的支持。
3.2yum的配置
yum工具安裝完畢,接下來(lái)的工作是進(jìn)行yum的配置,yum的配置文件有主配置文件/etc/yum.conf、資源庫(kù)配置目錄/etc/yum.repos.d,yum安裝后,默認(rèn)的一些資源庫(kù)配置可能無(wú)法使用,可能需要修改。
3.3yum的特點(diǎn)
安裝方便,自動(dòng)解決依賴性問(wèn)題??梢酝瑫r(shí)配置多個(gè)資源庫(kù)(
Repository) 配置文件簡(jiǎn)單(/etc/yum.conf、/etc/yum.repos.d/CentOS-Base.repo) 保持與RPM數(shù)據(jù)庫(kù)的一致性、安全性
注意:
yum會(huì)自動(dòng)下載所有所需的升級(jí)資源包并默認(rèn)放置在:
/var/cache/yum
當(dāng)?shù)谝淮问褂?code>yum或yum資源庫(kù)更新時(shí),軟件升級(jí)所需的時(shí)間可能較長(zhǎng)。
3.4yum的基本用法
3.4.1通過(guò)yum安裝和刪除RPM包
舉例如下:
1)安裝rpm包,如mysql:
[root@mysquid ~]# yum -y install mysql-server mysql mysql-devel
[root@mysquid ~]#
2)刪除rpm包,包括與該包有依賴性的包:
[root@mysquid ~]# yum remove mysql-server mysql mysql-devel
3.4.2檢查可更新的rpm包
[root@mysquid ~]# yum check-update
[root@mysquid ~]#
3.4.3更新所有的rpm包
root@mysquid ~]# yum update
3.4.4列出資源庫(kù)中特定的可以安裝或更新以及已經(jīng)安裝的rpm包的信息
[root@mysquid ~]# yum info openssh
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
已安裝的軟件包
名稱 :openssh
架構(gòu) :x86_64
版本 :7.4p1
發(fā)布 :21.el7
大小 :1.9 M
源 :installed
來(lái)自源:anaconda
3.4.5列出資源庫(kù)中特定的可以安裝或更新以及已經(jīng)安裝的rpm包
[root@mysquid ~]# yum list gcc*
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
已安裝的軟件包
gcc.x86_64 4.8.5-44.el7 @base
gcc-c++.x86_64 4.8.5-44.el7 @base
可安裝的軟件包
gcc-gfortran.x86_64 4.8.5-44.el7 base
gcc-gnat.x86_64 4.8.5-44.el7 base
gcc-go.x86_64 4.8.5-44.el7 base
gcc-objc.x86_64 4.8.5-44.el7 base
gcc-objc++.x86_64 4.8.5-44.el7 base
gcc-plugin-devel.x86_64 4.8.5-44.el7 base
[root@mysquid ~]#
3.4.6搜索匹配特定字符的rpm包的詳細(xì)信息
[root@mysquid ~]# yum list squid
已加載插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
已安裝的軟件包
squid.x86_64 7:3.5.20-17.el7_9.6 @updates
可安裝的軟件包
squid.x86_64 7:3.5.20-17.el7_9.7 updates
[root@mysquid ~]#
3.6.7清除緩存中舊的rpm頭文件和包文件
[root@mysquid ~]# yum clean all
已加載插件:fastestmirror, langpacks
正在清理軟件源:base extras updates
Cleaning up list of fastest mirrors
[root@mysquid ~]#
3.5yum只下載軟件
使用yum的一個(gè)插件:yum-downloadonly可以用來(lái)只下載軟件,不安裝軟件。
yum -y install --downloadonly --downloaddir=/tmp httpd
--downloadonly 說(shuō)明只下載
--downloaddir 指定安裝到哪個(gè)目錄下
3.6yum加速插件
yum-fastestmirror插件可以自動(dòng)選擇速度最快的mirror。
它的配置文件在如下位置:
/etc/yum/pluginconf.d/fastestmirror.conf
其中,yum鏡像的速度測(cè)試記錄文件是這個(gè):
/var/cache/yum/timedhosts.txt
安裝加速插件 :
[root@mysquid ~]# yum -y install yum-plugin-fastestmirror
已加載插件:fastestmirror, langpacks
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/4): base/7/x86_64/group_gz | 153 kB 00:00:00
(2/4): extras/7/x86_64/primary_db | 247 kB 00:00:00
(3/4): base/7/x86_64/primary_db | 6.1 MB 00:00:01
(4/4): updates/7/x86_64/primary_db | 16 MB 00:00:04
正在解決依賴關(guān)系
……
3.7更換yum源
這里更換系統(tǒng)默認(rèn)yum源為阿里云yum源。
具體的思路是:
備份原yum源-->下載阿里云yum源-->清理緩存-->生成新緩存
具體操作如下:
3.7.1備份原yum源
[root@mysquid ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.ori.20220729
3.7.2下載阿里云yum源
[root@mysquid ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
--2022-07-29 17:06:53-- http://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主機(jī) mirrors.aliyun.com (mirrors.aliyun.com)... 27.128.222.199, 27.128.222.198, 27.128.222.205, ...
正在連接 mirrors.aliyun.com (mirrors.aliyun.com)|27.128.222.199|:80... 已連接。
已發(fā)出 HTTP 請(qǐng)求,正在等待回應(yīng)... 200 OK
長(zhǎng)度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”
100%[==================================================>] 2,523 --.-K/s 用時(shí) 0.003s
2022-07-29 17:06:53 (907 KB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])
[root@mysquid ~]#
3.7.3清理緩存
[root@mysquid ~]# yum clean all
已加載插件:fastestmirror, langpacks
正在清理軟件源:base extras updates
Cleaning up list of fastest mirrors
[root@mysquid ~]#
3.7.4生成新緩存
[root@mysquid ~]# yum makecache
已加載插件:fastestmirror, langpacks
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
……
4.二進(jìn)制包安裝方式安裝軟件
二進(jìn)制軟件包的優(yōu)點(diǎn)是安裝簡(jiǎn)單、容易。
缺點(diǎn)是缺乏靈活性,相應(yīng)的軟件包執(zhí)行在對(duì)應(yīng)平臺(tái)下安裝,離開(kāi)這個(gè)環(huán)境軟件就無(wú)法運(yùn)行。
安裝就是解壓。
-
Linux
+關(guān)注
關(guān)注
88文章
11581瀏覽量
217175 -
源碼
+關(guān)注
關(guān)注
8文章
678瀏覽量
30914 -
RPM
+關(guān)注
關(guān)注
0文章
45瀏覽量
18068
發(fā)布評(píng)論請(qǐng)先 登錄
Linux環(huán)境下如何管理Python包管理工具

LINUX下軟件安裝與管理的方法
評(píng)論