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)題。可以同時(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)下安裝,離開這個(gè)環(huán)境軟件就無(wú)法運(yùn)行。
安裝就是解壓。
-
Linux
+關(guān)注
關(guān)注
87文章
11339瀏覽量
210120 -
源碼
+關(guān)注
關(guān)注
8文章
652瀏覽量
29358 -
RPM
+關(guān)注
關(guān)注
0文章
45瀏覽量
17727
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論