Linux系統基礎(12)–軟體管理
一.Linux下的軟體安裝包類型
目前主流的for linux軟體安裝包,主要有兩種:二進制包以及源碼包(tar包)。
1.二進制包
二進制包,也就是源碼包經過成功編譯之後産生的包。由于二進制包在釋出之前就已經完成了編譯的工作,是以使用者安裝軟體的速度較快,且安裝過程報錯幾率大大減小。
二進制包是 Linux 下預設的軟體安裝包,目前主要有以下 2 大主流的二進制包管理系統:
- RPM 包管理系統:功能強大,安裝、更新、査詢和解除安裝非常簡單友善,是以很多 Linux 發行版都預設使用此機制作為軟體安裝的管理方式,例如 Fedora、CentOS、SuSE 等。
- DPKG 包管理系統:由 Debian Linux 所開發的包管理機制,通過 DPKG 包,Debian Linux 就可以進行軟體包管理,主要應用在 Debian 和 Ubuntu 中。
2.源碼包
源碼包就是一大堆源代碼程式,是由程式員按照特定的格式和文法編寫出來的。由于源碼包的安裝需要把源代碼編譯為二進制代碼,是以安裝時間較長。
源碼包在所有的Linux版本中都能使用,但安裝過程也最麻煩,需要先編譯後安裝,安裝好後有穩定,可定制性強等優點。字尾一般為 tar.bz2 tar.gz tar.xz
二.RPM包管理
注意:[軟體包全名]=絕對路徑+軟體全名
注意:[包名]就是短名稱,如:httpd firefox等
1.RPM包預設安裝路徑
安裝路徑 | 含 義 |
---|---|
/etc/ | 配置檔案安裝目錄 |
/usr/bin/ | 可執行的指令安裝目錄 |
/usr/lib/ | 程式所使用的函數庫儲存位置 |
/usr/share/doc/ | 基本的軟體使用手冊儲存位置 |
/usr/share/man/ | 幫助檔案儲存位置 |
2.rpm軟體包的擷取
第一種方式:直接去官網去下載下傳(http://rpm.pbone.net。
第二種方式:如果不介意老版本的話,可以從CD光牒(或者鏡像檔案)中讀取。切換到CD光牒的挂載目錄下,有一個package目錄,該目錄下有很多rpm軟體包。
3.rpm軟體包的安裝解除安裝更新
(1)安裝
rpm -ivh [軟體包全名]
#選項說明:
-i:install,安裝
-v:顯示進度條
-h:表示以"#"形式顯示進度條
(2)解除安裝
rpm -e [軟體包全名]
#選項說明:
--nodeps :強制解除安裝
(3)更新
rpm -Uvh [軟體包全名]
選項說明:
-U :Update,更新操作
4.rpm指令查詢軟體包
rpm -q [包名] #查詢軟體包是否安裝
#注意這裡使用的是軟體包名稱,而不是全名。
#因為已安裝的軟體包隻需給出包名,系統就能成功識别(使用全名反而無法識别)。
rpm -qa #查詢系統中所有安裝的軟體包(可搭配grep使用)
rpm -qi [包名] #查詢軟體包的詳細資訊
rpm -ql [包名] #查詢軟體包的檔案清單
rpm -qf [系統檔案名] #查詢系統檔案屬于哪個RPM包
rpm -qR [包名] #查詢軟體包的依賴關系
rpm -qc [包名] #查詢軟體包有哪些配置檔案
5.RPM包校驗
為了能夠及時發現檔案誤删、誤修改檔案資料、惡意篡改檔案内容等問題,Linux提供RPM包校驗。
rpm -V [已安裝的包名]
rpm -Kv [已安裝的包名] #檢測軟體md5校驗碼
三.yum(dnf)指令管理軟體
yum( Yellow dog Updater, Modified)是一個在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端軟體包管理器。
基于 RPM 包管理,能夠從指定的伺服器自動下載下傳 RPM 包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載下傳、安裝。
1.yum源優點
RPM安裝(下載下傳軟體、單獨安裝、需要解決依賴關系)
源碼安裝(下載下傳軟體的源碼包,解壓,進入目錄=>配置+編譯+安裝)
yum源:相當于rpm軟體包管理的更新,能夠解決軟體包之間的依賴關系,提高工作效率。
yum源底層還是基于RPM進行軟體安裝操作的,是以yum安裝軟體後,我們也可以通過rpm -qa |grep 軟體名稱
2.yum源分類
☆ 本地yum源
yum倉庫在本地(系統CD光牒/鏡像檔案) => 不需要網絡的支援
☆ 網絡yum源
yum倉庫不在本地,在遠端
-
國内較知名的網絡源(aliyun源,163源,sohu源,知名大學開源鏡像等)
阿裡源:https://opsx.alibaba.com/mirror
網易源:http://mirrors.163.com/
搜狐源:http://mirrors.sohu.com/
清華源:https://mirrors.tuna.tsinghua.edu.cn/
- 國外較知名的網絡源(centos源、redhat源、擴充[epel]源等)
- 特定軟體相關的網絡源(Nginx、MySQL、Zabbix等)
3.本地yum源配置
注意:操作前最好先備份一下原來的yum源
本地yum源,就是使用CD光牒鏡像作為YUM源倉庫
第一步:用VM的先連接配接好ISO影像檔案。
第二步:把CD光牒挂載到某個目錄下
rm -rf /mnt/*
mount -o ro /dev/sr0 /mnt
解除安裝或解挂可以使用umount /mnt
第三步:把CD光牒挂載添加到開機啟動檔案中
chmod +x /etc/rc.local
echo 'mount -o ro /dev/sr0 /mnt' >> /etc/rc.local
/etc/rc.local,屬于系統的開機啟動檔案。系統啟動後,會自動加載并執行此檔案
第四步:編寫本地YUM倉庫檔案
cd /etc/yum.repos.d/
#建立一個以*.repo結尾的檔案,名稱任意
vim local.repo
[local]
name=local yum
baseurl=file:///mnt
gpgcheck=0
enabled=1
yum clean all
yum makecache
yum repolist all
第五步:測試本地YUM倉庫是否可用
yum install httpd -y
4.網絡yum源配置
第一步:搜尋你想要的YUM源,進入官網,找到CentOS
第二步:根據官網提供的教程,配置阿裡雲的YUM源
5.EPEL源配置
EPEL是對官網源的一個擴充。
CentOS-Base.repo檔案 => 基礎源(官方在帶的YUM源)
epel.repo檔案 => 擴充源,是對官方YUM源的一個補充
yum install epel-release -y
6.特定軟體的源配置
拿nginx舉例,首先進入nginx的官網,一般官網都有yum配置檔案的内容
我們隻需要建立一個repo檔案,并把檔案内容從官網拷貝過來即可
http://nginx.org/en/linux_packages.html#RHEL-CentOS
cd /etc/yum.repos.d
vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
7.如何自己建立一個yum倉庫?
緩存安裝過的軟體包,或自己下載下傳好軟體安裝包
☆ 什麼時候需要緩存軟體?
- 下次還需要安裝相同版本的軟體包
- 由于網絡原因導緻網絡安裝非常慢,将軟體包緩存下來,配置本地倉庫
☆ 如何緩存軟體安裝包
vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever 定義軟體包的緩存路徑
keepcache=1 1開啟緩存;0關閉
debuglevel=2
logfile=/var/log/yum.log
☆ 把軟體及依賴軟體全部下載下傳到某個路徑
隻下載下傳不安裝軟體:
yum install --downloadonly --downloaddir=儲存路徑 軟體名稱
案例:下載下傳samba軟體及依賴軟體
mkdir /soft
yum install --downloadonly --downloaddir=/soft samba
☆ 自定義YUM倉庫
第一步:在系統中安裝createrepo制作倉庫的軟體
yum install createrepo -y
第二步:把/soft檔案夾做成一個本地的自建倉庫
createrepo /soft
第三步:在/etc/yum.repos.d目錄中建立一個soft.repo的倉庫
cd /etc/yum.repos.d/
vim soft.repo
[soft]
name=soft yum
baseurl=file:///soft
gpgcheck=0
enabled=1
第四步:清理緩存+重建緩存:
# yum clean all
# yum makecache
8.常用yum指令
在rhel8中yum是dnf的軟連接配接
指令 | 功能 |
---|---|
yum install | 安裝 |
yum remove | 解除安裝 |
yum reinstall | 重新安裝 |
yum list installed /available/all/軟體名稱 | 列出 |
yum update | 更新 |
yum repolist | 列出倉庫資訊 |
yum history | 檢視yum曆史 |
yum info | 檢視軟體包資訊 |
yum clean all | 清除yum緩存 |
yum search | 根據軟體資訊搜尋 |
yum whatprovides | 根據軟體包含檔案搜尋 |
yum groups install | 組安裝 |
yum groups remove | 組解除安裝 |
yum groups info | 組資訊 |
四.源碼安裝
在Linux系統中,源碼安裝一共分為三步:
第一步:配置過程(配置軟體的安裝路徑)
第二步:編譯過程(把軟體由源代碼編譯成可以安裝的程式)
第三步:安裝過程(把編譯後的程式進行安裝)
cd [軟體源碼包]
./configure && make && make install