Linux进阶之软件管理
本節內容
一、rpm:管理linux軟件程序的
?????? 特點:安裝方便
????????????? 不能解決依賴關系
?????? 1、安裝軟件:
????????????? -i:
????????????? -v:
????????????? -h:
????????????? rpm -ivh 包名
?????? 2、卸載軟件
????????????? -e: 清楚
????????????? rpm -e 程序名
?????? 3、查詢
????????????? -q: 查詢
????????????? -l: 查詢軟件生成的相關文件
????????????? -i: 軟件信息
????????????? -a: 查詢所有已經安裝的程序
????????????? -f: 查找文件所依賴的包
????????????? -c:
????????????? -d:
???????????????????? rpm -q 程序名 --》查詢該程序是否已經安裝
???????????????????? rpm -ql 程序名?--》查詢該程序生成的文件
???????????????????? rpm -qf `which command` -->查看文件所依賴的包
???????????????????? rpm -qa?-->查詢所有已經安裝和未安裝的包
?????? 4、升級
????????????? -U:安裝并升級
????????????? -F:只升級
二、yum
?????? 安裝方便,可以自動解決依賴關系。
?????? 1、yum工作原理
?????? 2、yum倉庫配置
?????? 3、yum配置文件
????????????? 主配置文件:/etc/yum.conf
????????????? 子配置文件:/etc/yum.repos.d/*.repo
?????? 4、yum倉庫配置
????????????? 本地yum倉庫:
????????????? cd /etc/yum.repos.d
????????????? mkdir ken
????????????? mv C* ken
????????????? touch local.repo
????????????? [repoid]
????????????? name=reponame
????????????? enabled=1
????????????? gpgcheck=0
????????????? baseurl=file:///mnt
????????????? 網絡倉庫
????????????? cd /etc/yum.repos.d
????????????? mkdir ken
????????????? mv C* ken
????????????? touch local.repo
????????????? [repoid]
????????????? name=reponame
????????????? enabled=1
????????????? gpgcheck=0
????????????? baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/
?????? 5、yum常用的用法
????????????? 安裝:
???????????????????? yum install 軟件名 . . . -y
????????????? 卸載:
???????????????????? yum remove 軟件名. . . -y
????????????? 查詢:
????????????? 查詢所有包:yum list / yum list all
????????????? 查詢已經安裝的: yum list installed
????????????? 查詢所有未安裝的: yum list available
????????????? 清空緩存: yum clean all
????????????? 查詢倉庫信息: yum repolist
一、 軟件包管理簡介
1、軟件包分類
(1)源碼包(腳本安裝包)
(2)二進制包(RPM包、系統默認包)
2、源碼包
源碼包的優點:
(1)開源,如果有足夠的能力,可以修改源代碼
(2)可以自由選擇所需的功能
(3)軟件是編譯安裝,所以更加適合自己的系統,更加穩定也效率更高
(4)卸載方便
源碼包的缺點:
(1)安裝過程步驟較多,尤其安裝較大的軟件集合時(如LAMP環境搭建),容易出現拼寫錯誤
(2)編譯過程時間較長,安裝比二進制安裝時間長
(3)因為是編譯安裝,安裝過程中一旦報錯新手很難解決
3、RPM包
二進制包的優點:
(1)包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載
(2)安裝速度比源碼包安裝快的多
二進制包缺點:
(1)經過編譯,不再可以看到源代碼
(2)功能選擇不如源碼包靈活
(3)依賴性非常復雜
4、軟件安裝方式總結
安裝軟件方式有如下幾種
方式1:編譯安裝
將源碼程序按照需求進行先編譯,后安裝
缺點:安裝過程復雜,而且很慢
優點:安裝過程可控,真正的按需求進行安裝(安裝位置、安裝的模塊都可以選擇)
?方式2:rpm安裝(用rpm來安裝rpm后綴的安裝包)
優點:安裝和卸載過程非常方便
缺點:安裝過程不可控(安裝位置,安裝那些功能模塊)rpm包的依賴關系非常復雜
?方式3:yum安裝
yum安裝,其實就是自動分析rpm包的依賴關系,然后按照需要的順序依次安裝
方式4:綠色安裝
二、 RPM
1、rpm簡介
這是一個數據庫管理工具,可以通過讀取數據庫,判斷軟件是否已經安裝,如果已經安裝可以讀取出來所有文件的所在位置等,并可以實現刪除這些文件。
rpm:RPM is Redhat Package Manager(遞歸縮寫)
rpm可以完成的操作
安裝軟件
卸載軟件
查詢軟件信息
升級、降級
檢驗
打包程序
rpm軟件包命名規則
rpm軟件包的文件格式:package-version-release.type.rpm
各字段的說明:
rpm僅僅能管理符合rpm格式的程序包,不能管理源碼格式的程序
?程序的格式:
(1)源碼格式的程序:都是以壓縮方式呈現的(后綴都是.tar.gz|bz2)
(2)rpm格式的程序:這都是編譯以后的程序?(后綴都是.rpm)
rpm依賴關系:
樹形依賴:a---b---c
環形依賴:a---b---c---a
模塊依賴:模塊依賴查詢網站(www.rpmfind.net)
2、安裝rpm包
格式:rpm -ivh ?軟件包名
選項
-i:(install)安裝軟件
-v:(verbose)顯示安裝詳細過程
-h:(hash散列)用#表示安裝進度(# 2%)
-vv:顯示更詳細的安裝過程信息
-vvv:顯示更更詳細的安裝過程信息
?--nodeps:不檢查依賴性(不建議使用)
3、卸載rpm包
格式:rpm -e?軟件名
選項:
-e:(erase擦去,刪除)卸載軟件
?--nodeps:不檢查依賴性
例子:卸載軟件包ren
# rpm -e ren
4、查詢已經安裝的rpm包
格式:rpm -q?軟件名
選項:
-q:(query查詢,詢問)查看一個已經安裝的軟件
-a:(all)查看所有已經安裝的軟件
-l:(list)顯示軟件安裝完成以后生成文件列表(所有文件)
-i:(infomation)查看軟件包的相關信息
-p:(package)查詢未安裝包信息
-d:(docfiles)顯示該軟件所生成的說明性質的文檔列表
-c:(configfiles)查看軟件所生成的配置文件列表
--scripts:查看軟件相關的腳本
補充:
安裝前腳本(preinstall)
安裝后腳本(postinstall)
卸載前腳本(preuninstall)
卸載后腳本(postuninstall)
例子:查看ren是否安裝
# rpm -q ren
例子:查看當前系統所有已經安裝的軟件
# rpm -qa
5、查看文件是哪個軟件(rpm包)生成的
rpm -qf /path/to/file? ??
?-f:(file)查詢系統文件屬于哪個軟件包
6、升級軟件
選項
-U:(upgrade)升級或安裝軟件
-F:(filename)僅僅是升級操作
使用格式;
rpm -Fvh?軟件包名
rpm -Uvh?軟件包名
7、查詢軟件包的依賴性
rpm -qR 軟件包名
選項:
-R:(requires)查詢軟件包的依賴性
8、rpm包校驗
rpm -V 已安裝的包名
選項:
-V:(verify核實,驗證)校驗指定RPM包中的文件
驗證內容中的8個信息的具體內容如下:
| S | 文件大小是否改變 |
| M | 文件的類型或文件的權限(rwx)是否被改變 |
| 5 | 文件MD5校驗和是否改變(可以看成文件內容是否改變) |
| D | 設備的主從代碼是否改變 |
| L | 文件路徑是否改變 |
| U | 文件的屬主(所有者)是否改變 |
| G | 文件的屬組是否改變 |
| T | 文件的修改時間是否改變 |
文件類型:
| c | 配置文件(config file) |
| d | 普通文件(documentation) |
| g | “鬼”文件(ghost file),很少見,就是該文件不應該被這個rpm包包含 |
| l | 授權文件(license file) |
| r | 描述文件(read me) |
三、yum?軟件管理
也是一個rpm包的管理工具,可以實現自動解決rpm包的依賴關系(自動安裝依賴順序進行rpm包的安裝)
為何rpm包會有依賴關系?
制作rpm的人,在制作rpm包的時候,就將這個rpm的所依賴的軟件的信息保存在這個rpm包的內部
1、yum的工作原理
(1)需要首先創建一個yum倉庫(rpm包倉庫、軟件倉庫)
1)倉庫其實就是一個目錄
2)倉庫中存放的是rpm包
3)倉庫中還保存了一個文件,文件中記錄了該倉庫中所有rpm包的元數據信息
4)元數據信息包括
軟件名
軟件版本
軟件是否已經安裝
軟件的依賴關系
(2)用?yum?來從倉庫中找軟件進行安裝的過程(比如要安裝軟件A,A依賴B?和C,B依賴C和D)
1)yum首先會掃描保存元數據信息的文件,檢查A是否已經安裝,如果已經安裝,那提示已經安裝
2)如果A尚未安裝,那么掃描A的依賴關系信息,會發現A?依賴B?和C
3)yum會再次掃描元數據文件,檢測B和C?是否安裝,如果都已經安裝,那么會開始開始安裝A
4)如果B和C尚未安裝,那么會檢測?B和C的依賴關系,會發現B依賴C和D
5)yum會再次掃描元數據文件,檢測C和D是否安裝,如果都已經安裝,那么會開始開始安裝B,然后安裝C,然后安裝A
2、yum倉庫
本地:將本地的一個目錄做成yum倉庫,只有當前系統可以
網絡:通過網絡將服務器上的一個目錄作為yum倉庫,網絡中的全部主機都可以用
使用yum倉庫的方式,就是修改yum的配置文件
yum的配置文件
主:/etc/yum.conf
子:/etc/yum.repos.d/*.repo
/etc/yum.conf文件:cachedir=/var/cache/yum/$basearch/$releasever
指定緩存文件的保存位置,默認:/var/cache/yum/x86_64/7/
keepcache=0:指定是否保留緩存文件
用yum安裝軟件過程中會從yum倉庫下載并緩存多個資源
1)會將yum倉庫的元數據文件緩存到配置文件所指定的路徑中
2)會將要安裝的軟件及其依賴的軟件一并緩存到配置文件指定的目錄中
3、yum配置文件的構成
[localRpm] ?<<<?指定yum倉庫的id,可以隨便寫,但是中間不能有空格
name=xxx ???<<<?指定yum倉庫的名稱,可以隨便寫
enabled=0|1 ??<<<?指定是否使用該yum倉庫,0表示不使用;1表示使用
gpgcheck=0|1 ??<<<?指定是否對rpm包做完整性和來源合法性驗證,0表示不做驗證;1表示必須做驗證
gpgkey= ??<<<?指定公鑰文件(如果gpgcheck=1,那么該項不能省略)
baseurl= ??<<<?指定yum倉庫的url(yum源服務器地址),可以改成其他的(比如:阿里、清華、華為開源鏡像站)
4、yum倉庫的url的表示方式
注意:
在指定yum倉庫的時候,其實不是指向rpm包的目錄,而是執行repodata所在目錄
本地yum倉庫
file://
例子:比如我的yum倉庫?/myrpm,此時yum倉庫的表示方式就是file:///myrpm
網絡yum倉庫
http://
5、創建本地yum倉庫
使用光盤中的rpm包作為yum倉庫
第一步:掛載光盤
# mount /dev/cdrom /media
第二步:備份yum自帶的配置文件
# cd /etc/yum.repos.d
# mkdir bak
# mv *.repo bak
或者
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
第三步:創建yum的配置文件,使用光盤作為yum倉庫
# vim 1.repo
[myrepo]
name=my repo
enabled=1?? #讓這個yum源配置文件生效
gpgcheck=0
baseurl=file:///media?#地址為自己光盤的掛載地址
第四步:執行yum命令檢測結果
# yum clean all ???<<<?清空yum緩存的全部數據
# yum repolist ????<<<?檢查yum倉庫中有多少個可用的rpm包
6、yum使用
(1)安裝軟件
yum -y install?軟件1?軟件2?軟件3 ....
yum -y localinstall 軟件包 ?#安裝本地安裝包
(2)卸載軟件
yum -y remove?軟件1?軟件2?軟件3 ....
(3)管理包組
????????grouplist:查看系統中的全部的包組
????????groupinfo?包組名:查看指定包組的信息(包組的作用、包含的軟件)
? ? ?groupinstall?包組名:安裝指定的包組
????????groupremove?包組名:卸載指定的包組
CentOS7:命令行界面升級為圖形化界面
yum groupinstall "X Window System"?-y
yum groupinstall "GNOME Desktop" "Graphical Administration Tools" -y
這時,我們可以通過命令 startx 進入圖形界面,第一次進入會比較慢,請耐心等待。(可能需要重啟,命令為reboot)
(4)管理yum的緩存數據
?????clean [ packages | metadata | all ]
??? ? all:清除所有數據
?? ?? packages:僅僅清除rpm包
????metadata:僅僅清理緩存元數據
(5)查看所有已經安裝和尚未安裝rpm包
? ?????yum list all?或者yum list?可以列出所有的軟件包?
yum search 關鍵字 ??#搜索服務器上所有和關鍵字相關的包
(6)yum?list?available:僅僅顯示可以安裝但是尚未安裝的rpm包
(7)yum?list??installed:僅僅顯示已經安裝rpm包
???? ?@:表示已經安裝rpm
(8)查看yum倉庫的信息
???? ??yum?repolist
7、網絡yum源的使用方式
國內主流的網絡yum倉庫地址
mirrors.aliyun.com
mirrors.163.com
mirrors.sohu.com
rpm的yum源
centos提供的
epel提供的:
例子:使用aliyun提供的epel?和centos的yum源
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak
vim new.repo
[centos]
name=centos repo
enabled=1
gpgcheck=0
baseurl=http://mirrors.163.com
[epel]
name=epel repo
enabled=1
enabled=1
baseurl=http://xxxx
8、制作一個網絡yum源
思路:在網絡上準備一個主機,在其中安裝一個web服務器軟件(比如apache),然后創建一個目錄,在這個目錄中準備上yum倉庫的全部資源,如果用戶可以通過網絡訪問到該主機的這個目錄,那么這個目錄就成為網絡yum倉庫
實現過程
第一步:配置yum源主機
1)安裝配置apache
略
2)配置yum倉庫相關資源
1.?創建一個目錄,作為存儲yum資源的目錄
# mkdir /usr/local/apache/htdocs/mysource
2.?掛載光盤
# mount /dev/cdrom /mnt
3.?將光盤中的資源復制到前面所創建的目錄下
# cp /mnt/* /usr/local/apache/htdocs/mysource -rvf
4.?用瀏覽器訪問一下yum倉庫,檢查是否可以看到相關文件
http://ip/mysource
第二步:配置客戶端主機
修改yum配置文件
1)備份原有的配置文件
# mkdir bak
# mv *.repo bak
# vim a.repo
[]
name
enabled=
gpgcheck=
baseurl=http://ip/mysource
2)測試一下
# yum repolist
轉載于:https://www.cnblogs.com/renyz/p/11215771.html
總結
以上是生活随笔為你收集整理的Linux进阶之软件管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx04---编译安装
- 下一篇: 在Linux下下载RPM包