Linux軟件包管理
軟件包是什么陵究?軟件包顧名思義就是將應(yīng)用程序、配置文件和數(shù)據(jù)打包的產(chǎn)物.
所有的linux發(fā)行版都采用了某種形式的軟件包系統(tǒng)摸航,這使得linux軟件管理和在windows下一樣方便制跟,suse、red hat酱虎、fedora等發(fā)行版都是用rpm
包雨膨,Debian和Ubuntu則使用.deb
格式的軟件包。
mysql-5-3-4.rpm
redis-3-4-3.rpm
nginx2-3-2.rpm
在早期系統(tǒng)運(yùn)維中读串,安裝軟件是一件非常費(fèi)事費(fèi)力的事情聊记。系統(tǒng)管理員不得不下載軟件源代碼編譯軟件,并且為了系統(tǒng)做各種調(diào)整恢暖。盡管源代碼編譯形式的軟件增強(qiáng)了用戶定制的自由度排监,但是在小軟件上耗費(fèi)精力是缺乏效率的,于是軟件包應(yīng)運(yùn)而生杰捂。
軟件包管理可以將管理員從無(wú)休止的兼容問(wèn)題中釋放舆床。yum
工具就可以自動(dòng)搜索依賴關(guān)系,并執(zhí)行安裝。
1.RPM軟件包管理器
軟件包管理器核心功能
- 制作軟件包 .rpm
- 安裝挨队、卸載谷暮、升級(jí)、查詢瞒瘸、校驗(yàn)
在 RPM(紅帽軟件包管理器)公布之前坷备,要想在 Linux 系統(tǒng)中安裝軟件只能采取源碼包 的方式安裝。
源碼包安裝缺點(diǎn):
- 步驟繁多情臭,耗時(shí)
- 自己解決依賴
- 對(duì)運(yùn)維知識(shí)要求高
- 管理維護(hù)難度大
RPM
機(jī)制則為解決這些問(wèn)題而設(shè)計(jì)的省撑。RPM
有點(diǎn)像Windows系統(tǒng)中的控制面板,會(huì)建立統(tǒng)一的數(shù)據(jù)庫(kù)文件俯在,詳細(xì)記錄軟件信息并能夠自動(dòng)分析依賴關(guān)系竟秫。
1.rpm安裝命令
-
安裝軟件的命令格式
rpm -ivh filename.rpm - i:表示安裝 - v:顯示詳細(xì)過(guò)程 - h:以進(jìn)度條顯示
-
升級(jí)軟件的命令格式
rpm -Uvh filename.rpm
-
卸載軟件的命令格式
rpm -e filename.rpm
-
查詢軟件描述信息
rpm -qpi filename.rpm
-
列出軟件文件信息
rpm -qpl filename.rpm
-
查詢文件屬于哪個(gè)RPM
rpm -qf filename
2.rpm查詢軟件
rpm -q lrzsz # 查詢lrzsz是否安裝
rpm -qi lrzsz # 查詢lrzsz包的說(shuō)明信息
rpm -ql lrzsz # 查詢lrzsz包生成的文件列表
rpm -qc nginx # 查詢nginx安裝生成后的配置文件路徑
rpm -qf /etc/nginx/fastcgi.conf # 查看這個(gè)文件由哪個(gè)rpm包安裝
3.rpm升級(jí)軟件
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果裝有老版本的,則升級(jí)跷乐;否則肥败,則安裝;
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果裝有老版本的愕提,則升級(jí)馒稍;否則,退出浅侨;
4.rpm卸載軟件
rpm -e PACKAGE_NAME
需要手動(dòng)解決依賴
不如 yum remove
5.rpm安裝軟件
#下載軟件包
wget https://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm
#安裝軟件包
[root@yugo /tmp 11:03:42]#rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:lrzsz-0.12.20-36.el7 ################################# [100%]
6.rpm問(wèn)題
rpm軟件包管理安裝軟件的時(shí)候纽谒,會(huì)產(chǎn)生一系列問(wèn)題,比如如输,你安裝一個(gè)軟件包鼓黔,而這個(gè)軟件包有依賴軟件,那么你需要先安裝依賴軟件不见;如果依賴的軟件還有依賴軟件澳化,你不得崩潰嗎?
2.軟件管理yum工具
1.yum軟件包管理器
Yum (Yellow dog Updater, Modified)
黃狗升級(jí)器是一個(gè)在 Fedora 中的字符前端軟件包管理器稳吮《泄龋基于 RPM
包管理(介紹見(jiàn)RPM包及其管理),能夠從指定的服務(wù)器自動(dòng)下載 RPM 包并且安裝灶似,可以處理依賴性關(guān)系慎陵,并且一次安裝所有依賴的軟件包,無(wú)須繁瑣地一次次下載喻奥、安裝。
2.軟件安裝的三種方式:
- 源代碼編譯安裝
- 獲取軟件源代碼
- 手動(dòng)編譯安裝
yum工具是紅帽子才有的軟件管理工具捏悬,例如suse和烏班圖等系統(tǒng)撞蚕,就沒(méi)有yum
yum提供了查找、安裝过牙、刪除某一個(gè)甥厦、一組甚至全部軟件包的命令纺铭,而且命令簡(jiǎn)潔而又好記。
yum(選項(xiàng))(參數(shù)):
-h:顯示幫助信息刀疙;
-y:對(duì)所有的提問(wèn)都回答“yes”舶赔;
-c:指定配置文件;
-q:安靜模式谦秧;
-v:詳細(xì)模式竟纳;
-d:設(shè)置調(diào)試等級(jí)(0-10);
-e:設(shè)置錯(cuò)誤等級(jí)(0-10)疚鲤;
-R:設(shè)置yum處理一個(gè)命令的最大等待時(shí)間锥累;
-C:完全從緩存中運(yùn)行,而不去下載或者更新任何頭文件集歇。
3.什么是yum
源桶略?
Yum
全稱為 Yellow dog Updater, Modified
,是一個(gè)在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器诲宇。
基于RPM包管理际歼,能夠從指定的服務(wù)器自動(dòng)下載RPM包并且安裝,可以自動(dòng)處理依賴性關(guān)系姑蓝,并且一次安裝所有依賴的軟件包鹅心,無(wú)須繁瑣地一次次下載、安裝它掂。
4.yum
的基本工作機(jī)制如下
服務(wù)器端:在服務(wù)器上面存放了所有的RPM軟件包巴帮,然后以相關(guān)的功能去分析每個(gè)RPM文件的依賴性關(guān)系,將這些數(shù)據(jù)記錄成文件存放在服務(wù)器的某特定目錄內(nèi)虐秋。
客戶端:如果需要安裝某個(gè)軟件時(shí)榕茧,先下載服務(wù)器上面記錄的依賴性關(guān)系文件(可通過(guò)WWW或FTP方式),通過(guò)對(duì)服務(wù)器端下載的紀(jì)錄數(shù)據(jù)進(jìn)行分析客给,然后取得所有相關(guān)的軟件用押,一次全部下載下來(lái)進(jìn)行安裝。
5.yum源的目錄
# 進(jìn)入yum源目錄
cd /etc/yum.repos.d/
# 查看yum源文件
ls -l
配置阿里云yum源
linux的yum倉(cāng)庫(kù)目錄是
cd /etc/yum.repos.d/
這個(gè)目錄下,第一層中,所有以.repo結(jié)尾的文件靶剑,都會(huì)識(shí)別為一個(gè)yum倉(cāng)庫(kù)蜻拨。(這個(gè)倉(cāng)庫(kù)就是一個(gè)url),url中提供了各種rpm包的下載桩引,yum工具回去查找缎讼。
阿里云yum源的下載地址:https://opsx.alibaba.com/mirror
1.備份原本的yum倉(cāng)庫(kù)文件
cd /etc/yum.repos.d
# 新建文件夾
mkdir allrepo
# 移動(dòng)所有的repo文件到這個(gè)目錄下,咱不用它了
mv * ./allrepo
2.下載新的阿里云的yum倉(cāng)庫(kù)文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# -O 代表把Centos-7.repo 下載到指定目錄,且改名
3.配置額外的第三方倉(cāng)庫(kù)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
4.測(cè)試yum工具,安裝一個(gè)nginx
yum install nginx -y
5.啟動(dòng)nginx測(cè)試訪問(wèn)
systemctl start nginx
7.可以通過(guò)修改nginx的index網(wǎng)頁(yè)坑匠,直接展示復(fù)制的頁(yè)面血崭。
find / -name nginx/html/index.html
把網(wǎng)頁(yè)源代碼放進(jìn)去就可以訪問(wèn)了。
8.yum工具的其他方法
- yum repolist all # 列出所有倉(cāng)庫(kù)
- yum list all # 列出倉(cāng)庫(kù)所有軟件包
- yum info # 軟件包名 查看軟件包信息
- yum install # 軟件包名 安裝軟件包
- yum reinstall # 軟件包名 重新安裝軟件包
- yum update # 軟件包名 升級(jí)軟件包
- yum remove # 軟件包名 移除軟件包
- yum clean all # 清楚所有倉(cāng)庫(kù)緩存
- yum check-update # 檢查可以更新的軟件包
- yum grouplist # 查看系統(tǒng)中已安裝的軟件包
- yum groupinstall # 軟件包組 安裝軟件包組