一、rpm 簡介 這是一個資料庫管理工具,可以通過讀取資料庫,判斷軟體是否已經安裝,如果已經安裝可以讀取出來所有文件的所在位置等,並可以實現刪除這些文件。 rpm:RPM is Redhat Package Manager(遞歸縮寫) rpm可以完成的操作 安裝軟體 卸載軟體 查詢軟體信息 升級、降 ...
一、rpm
簡介
這是一個資料庫管理工具,可以通過讀取資料庫,判斷軟體是否已經安裝,如果已經安裝可以讀取出來所有文件的所在位置等,並可以實現刪除這些文件。
rpm:RPM is Redhat Package Manager(遞歸縮寫)
rpm可以完成的操作
安裝軟體
卸載軟體
查詢軟體信息
升級、降級
檢驗
打包程式
rpm僅僅能管理符合rpm格式的程式包,不能管理源碼格式的程式
一、安裝rpm包
格式:rpm -ivh 軟體包名
選項
-i:安裝軟體
-v:顯示安裝過程
-h:用#表示安裝進度(# 2%)
-vv:顯示更詳細的安裝過程信息
-vvv:顯示更更詳細的安裝過程信息
二、卸載rpm包
格式:rpm -e 軟體名
選項:
-e:卸載軟體
例子:卸載軟體包ken
# rpm -e ken
三、查詢rpm包
格式:rpm -q 軟體名
選項:
-q:查看一個已經安裝的軟體
-a:查看所有已經安裝的軟體all
-l:顯示軟體安裝完成以後生成文件列表(所有文件)list
-i:查看軟體包的相關信息 info
-d:顯示該軟體所生成的說明性質的文檔列表docfiles
-c:查看軟體所生成的配置文件列表configfiles
--scripts:查看軟體相關的腳本
四、查詢文件是由哪個軟體生成的
-f:以/bin/ls文件為例
[root@localhost ~]# rpm -qf /bin/ls coreutils-8.22-18.el7.x86_64
五、升級軟體
選項
-U:升級或安裝軟體
-F:僅僅是升級操作
使用格式;
rpm -Fvh 軟體包名
rpm -Uvh 軟體包名
二、yum
簡介
yum是一個rpm包的管理工具,可以實現自動解決rpm包的依賴關係(自動安裝依賴順序進行rpm包的安裝)
為何rpm包會有依賴關係?
製作rpm的人,在製作rpm包的時候,就將這個rpm的所依賴的軟體的信息保存在這個rpm包的內部
yum的工作原理
通過yum源(本地或者網路源)來解決rpm包的依賴問題。其實yum源本質上就是rpm包的集合
是如何來解決依賴關係的呢
用 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的配置文件
主配置文件:/etc/yum.conf
子配置文件:/etc/yum.repos.d/*.repo (意思是在yum.repos.d這個目錄下,只要一 .repo為結尾的文件都會被識別為配置文件)
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(1.本地yum源 file:// 例如 baseurl=file:///mnt
2.網路源 http:// 例如 baseurl=https://mirrors.aliyun.com/epel/7/x86_64/)
1.本地源的配置
使用光碟中的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包
2.網路源的配置
國內主流的網路yum倉庫地址
mirrors.aliyun.com
mirrors.163.com
mirrors.sohu.com
進入網址的子級頁面直到出現repodata的頁面,將這個頁面的網址複製放到baseurl後面
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=https://mirrors.aliyun.com/epel/7/x86_64/
[epel]
name=epel repo
enabled=1
enabled=1
baseurl=http://xxxx