LINUX
下軟件安裝方式主要有以下4種
:
- 源碼方式安裝Linux軟件
- RPM工具方式安裝軟件
- yum方式在線安裝軟件
- 二進制包安裝方式安裝軟件
下面將分別演示不同方式下軟件的安裝與管理。
1.源碼方式安裝Linux軟件
這種方式安裝安裝軟件的優點是:
1)只安裝需要的軟件,不用的不安裝。
2)安裝時可以通過參數指定路徑,不需要的時候,直接刪除目錄即完成卸載。
3)可以從官網獲得最新的源碼包,然后安裝最新版的軟件。
源碼方式安裝軟件地般 步驟 :
采用源碼方式安裝軟件,一般包括以下三步:
1)到官網下載軟件壓縮包,一般是tar.gz
或者是tar.bz2
格式,并解壓。
2)進入解壓目錄,執行./configure
,進行分析環境是否滿足。
3)執行make && make install
,進行編譯與安裝。
具體的安裝過程演示,本文不再描述。請關注本公眾號Python運維實踐
(haopython
),看2022年7月27日發布的 《CENTOS7.8下源碼方式安裝Apache2.4.54及排錯》 這篇文章。
注:此處插入公眾號和文章鏈接。
2.RPM工具方式安裝軟件
2.1RPM包管理工具介紹
RPM
是Red Hat Package Manager
的縮寫,即Redhat
軟件包管理。它是linux
平臺下通用的軟件包管理方式,例如Fedora
、Redhat
、suse
等主流linux
發行版本都默認采用了這種軟件包管理方式。這種方式管理軟件的安裝優缺點如下: 優點: 安裝簡單方便。 缺點: 對操作系統環境的依賴很大,它要求RPM
包的安裝環境必須與RPM
包封裝時的環境相一致或相當。同時需滿足安裝時與系統某些軟件包的依賴關系,例如需要安裝A軟件
,但是A軟件
需要系統有B和C軟件
的支持,那么就必須先安裝B和C軟件
,然后才能安裝A軟件
。
2.2RPM包命名及含義
對于RPM包命名格式,以下面這個文件為例進行解釋:
mysql-community-server-8.0.29-1.el7.x86_64.rpm
它主要由六部分組成,各部分如下:
mysql-community-server
:表示軟件的名稱
8.0.29
:表示軟件的版本號
1
:表示軟件更新發行的次數
el7
:表示適用的操作系統平臺
x86_64
:表示適合的硬件平臺
rpm
:是rpm軟件包的標識
2.3RPM工具使用命令
2.3.1安裝軟件包
命令格式:
rpm -i [輔助選項] file1.rpm file2.rpm…..fileN.rpm
主選項含義:
-i
:install
的意思,即安裝軟件。等同于--install
。
file1.rpm file2.rpm…..fileN.rpm
:表示多個軟件可以一起安裝,這種方式有助于解決多個依賴關系。
輔助選項
參數有多個,一般常用的有如下幾個,或它們的 組合 :
-a
,--all
:查詢/驗證所有軟件包。-v
:顯示附加信息。-h
:安裝時輸出標記“#”。--test
:只對安裝進行測試,并不實際安裝。--nodeps
:不檢查軟件之間的依賴關系。加入此選項可能會導致軟件不可用。--force
:忽略軟件包以及軟件沖突。-U, --upgrade=
:升級軟件包。+
組合用法:
一般情況下,安裝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
有時候,安裝的軟件的低版本已經存在,這時用rpm -Uvh
安裝可以解決軟件沖突的問題,推薦使用這種方式。
2.3.2查詢軟件包
命令格式:
rpm -q [輔助選項] package1……packageN
常用選項含義如下:
-q
:query
的意思,也可以使用--query
。輔助選項含義如下:-f
:查詢操作系統中某個文件屬于哪個對應的rpm
軟件包。-p
:查詢以.rpm
為后綴的軟件包安裝后對應的包名稱。-l
:顯示軟件包中的所有文件列表。此選項后面跟軟件包安裝后對應的包名,切記不是以.rpm
為后綴的rpm
包。-i
:顯示軟件包的概要信息,例如軟件名稱、版本、適應平臺、大小等等。此選項后面跟完整的包名,切忌不是以.rpm
為后綴的rpm
包。
一般常用組合使用如下:
1)qf
組合:
查詢某個文件屬于哪個對應的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 [輔助選項] file1.rpm……fileN.rpm
主選項含義如下:-U:upgrade
的意思,可以使用--upgrade
代替。
參數說明:
file1.rpm……fileN.rpm
表示需要升級的rpm
文件包。
2.3.4刪除軟件包
命令格式:
rpm -e [輔助選項] package1……packageN
主選項含義如下:-e:erase
的意思,也可以用--erase
代替。
參數說明:
package1……packageN
表示已經安裝的軟件包名稱。
輔助選項含義如下:
--test
:只執行刪除的測試。
--nodeps
:不檢查依賴性。
2.3.5驗證未安裝的軟件包文件
發行的RPM
格式的軟件包是否值得信任,是否損壞,我們可以通過RPM
提供的選項進行驗證。
RPM
軟件包一般使用 Gnu 隱私衛士
(或稱GPG
)來簽名,從而幫助使用者肯定下載軟件包的可信任性。
命令格式:
rpm -K file1.rpm……fileN.rpm
主選項含義如下:
-K:checksig
的意思,也可以用--checksig
代替。
這個選項用來檢查 RPM
軟件包文件的md5
校驗和GPG
簽名。
3.yum方式在線安裝軟件
yum
即`yellowdog updater modified。
yellow dog
(黃狗)也是一個Linux
的發行版本。
3.1yum
的安裝與配置
以Centos7.8
為例,檢查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 ~]#
表明yum
已經安裝。
如果沒有任何顯示,表示系統中還沒有安裝yum
工具。
yum
安裝包在Centos
系統光盤中可以找到,執行如下指令進行安裝:
[root@mysquid ~]# rpm -ivh yum-*.noarch.rpm
安裝yum
需要python-elementtree
、python-sqlite
、urlgrabber
、yumconf
等軟件包的支持。
3.2yum的配置
yum
工具安裝完畢,接下來的工作是進行yum
的配置,yum
的配置文件有主配置文件/etc/yum.conf
、資源庫配置目錄/etc/yum.repos.d
,yum
安裝后,默認的一些資源庫配置可能無法使用,可能需要修改。
3.3yum的特點
安裝方便,自動解決依賴性問題。可以同時配置多個資源庫(
Repository
) 配置文件簡單(/etc/yum.conf
、/etc/yum.repos.d/CentOS-Base.repo
) 保持與RPM
數據庫的一致性、安全性
注意:
yum
會自動下載所有所需的升級資源包并默認放置在:
/var/cache/yum
當第一次使用yum
或yum
資源庫更新時,軟件升級所需的時間可能較長。
3.4yum
的基本用法
3.4.1通過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列出資源庫中特定的可以安裝或更新以及已經安裝的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
架構 :x86_64
版本 :7.4p1
發布 :21.el7
大小 :1.9 M
源 :installed
來自源:anaconda
3.4.5列出資源庫中特定的可以安裝或更新以及已經安裝的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
包的詳細信息
[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
的一個插件:yum-downloadonly
可以用來只下載軟件,不安裝軟件。
yum -y install --downloadonly --downloaddir=/tmp httpd
--downloadonly 說明只下載
--downloaddir 指定安裝到哪個目錄下
3.6yum加速插件
yum-fastestmirror
插件可以自動選擇速度最快的mirror
。
它的配置文件在如下位置:
/etc/yum/pluginconf.d/fastestmirror.conf
其中,yum
鏡像的速度測試記錄文件是這個:
/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
正在解決依賴關系
……
3.7更換yum源
這里更換系統默認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
正在解析主機 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... 已連接。
已發出 HTTP 請求,正在等待回應... 200 OK
長度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”
100%[==================================================>] 2,523 --.-K/s 用時 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.二進制包安裝方式安裝軟件
二進制軟件包的優點是安裝簡單、容易。
缺點是缺乏靈活性,相應的軟件包執行在對應平臺下安裝,離開這個環境軟件就無法運行。
安裝就是解壓。
-
Linux
+關注
關注
87文章
11432瀏覽量
212460 -
源碼
+關注
關注
8文章
665瀏覽量
30083 -
RPM
+關注
關注
0文章
45瀏覽量
17871
發布評論請先 登錄
評論