這是一個數據庫管理工具,能夠經過讀取數據庫,判斷軟件是否已經安裝,若是已經安裝能夠讀取出來全部文件的所在位置等,並能夠實現刪除這些文件。web
rpm:RPM is Redhat Package Manager(遞歸縮寫)數據庫
rpm能夠完成的操做apache
安裝軟件vim
卸載軟件centos
查詢軟件信息瀏覽器
升級、降級緩存
檢驗服務器
打包程序網絡
rpm僅僅能管理符合rpm格式的程序包,不能管理源碼格式的程序工具
程序的格式
1)源碼格式的程序:都是以壓縮方式呈現的(後綴都是.tar.gz|bz2)
2)rpm格式的程序:這都是編譯之後的程序 (後綴都是.rpm)
安裝軟件方式有以下幾種
方式1:編譯安裝
將源碼程序按照需求進行先編譯,後安裝
缺點:
安裝過程複雜,並且很慢
優勢:
安裝過程可控,真正的按需求進行安裝(安裝位置、安裝的模塊均可以選擇)
方式2:rpm安裝(用rpm來安裝rpm後綴的安裝包)
優勢:
安裝和卸載過程很是方便
缺點:
安裝過程不可控(安裝位置,安裝那些功能模塊)
rpm包的依賴關係很是複雜
方式3:yum安裝
yum安裝,其實就是自動分析rpm包的依賴關係,而後按照須要的順序依次安裝
方式4:綠色安裝
格式:rpm -ivh 軟件包名
選項
-i:安裝軟件
-v:顯示安裝過程
-h:用#表示安裝進度(# 2%)
-vv:顯示更詳細的安裝過程信息
-vvv:顯示更更詳細的安裝過程信息
格式:rpm -e 軟件名
選項:
-e:卸載軟件
例子:卸載軟件包ken
# rpm -e ken
格式:rpm -q 軟件名
選項:
-q:查看一個已經安裝的軟件
-a:查看全部已經安裝的軟件all
-l:顯示軟件安裝完成之後生成文件列表(全部文件)list
-i:查看軟件包的相關信息 info
-d:顯示該軟件所生成的說明性質的文檔列表docfiles
-c:查看軟件所生成的配置文件列表configfiles
--scripts:查看軟件相關的腳本
補充:
安裝前腳本(preinstall)
安裝後腳本(postinstall)
卸載前腳本(preuninstall)
卸載後腳本(postuninstall)
例子:查看ken是否安裝
# rpm -q ken
例子:查看當前系統全部已經安裝的軟件
# rpm -qa
例子:統計當前系統一共安裝了多少個軟件
rpm -qf /path/to/file
選項
-U:升級或安裝軟件
-F:僅僅是升級操做
使用格式;
rpm -Fvh 軟件包名
rpm -Uvh 軟件包名
也是一個rpm包的管理工具,能夠實現自動解決rpm包的依賴關係(自動安裝依賴順序進行rpm包的安裝)
爲什麼rpm包會有依賴關係?
製做rpm的人,在製做rpm包的時候,就將這個rpm的所依賴的軟件的信息保存在這個rpm包的內部
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
本地:將本地的一個目錄作成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)會將要安裝的軟件及其依賴的軟件一併緩存到配置文件指定的目錄中
[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倉庫的時候,其實不是指向rpm包的目錄,而是執行repodata所在目錄
本地yum倉庫
file://
例子:好比個人yum倉庫 /myrpm,此時yum倉庫的表示方式就是file:///myrpm
網絡yum倉庫
http://
使用光盤中的rpm包做爲yum倉庫
第一步:掛載光盤
# mount /dev/cdrom /media
第二步:備份yum自帶的配置文件
# cd /etc/yum.repos.d
# mkdir bak
# mv *.repo bak
第三步:建立yum的配置文件,使用光盤做爲yum倉庫
# vim 1.repo
[myrepo]
name=my repo
enabled=1
gpgcheck=0
baseurl=file:///media
第四步:執行yum命令檢測結果
# yum clean all <<< 清空yum緩存的所有數據
# yum repolist <<< 檢查yum倉庫中有多少個可用的rpm包
1. 安裝軟件
yum -y install 軟件1 軟件2 軟件3 ....
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 能夠列出全部的軟件包
6. yum list available:僅僅顯示能夠安裝可是還沒有安裝的rpm包
7. yum list installed:僅僅顯示已經安裝rpm包
@:表示已經安裝rpm
8. 查看yum倉庫的信息
yum repolist
國內主流的網絡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
思路:在網絡上準備一個主機,在其中安裝一個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