rpm簡介
安裝一個工具lrzsz
wget下載
這是一個數據庫管理工具,可以通過讀取數據庫,判斷軟件是否已經安裝,如果已經安裝可以讀取出來所有文件的所在位置等,並可以實現刪除這些文件。
rpm:RPM is Redhat Package Manager(遞歸縮寫)
rpm可以完成的操作
安裝軟件
卸載軟件
查詢軟件信息
升級、降級
檢驗
打包程序
rpm僅僅能管理符合rpm格式的程序包,不能管理源碼格式的程序
程序的格式
1)源碼格式的程序:都是以壓縮方式呈現的(后綴都是.tar.gz|bz2)
2)rpm格式的程序:這都是編譯以后的程序 (后綴都是.rpm)
軟件安裝方式總結
安裝軟件方式有如下幾種
方式1:編譯安裝
將源碼程序按照需求進行先編譯,后安裝
缺點:
安裝過程復雜,而且很慢
優點:
安裝過程可控,真正的按需求進行安裝(安裝位置、安裝的模塊都可以選擇)
方式2:rpm安裝(用rpm來安裝rpm后綴的安裝包)
優點:
安裝和卸載過程非常方便
缺點:
安裝過程不可控(安裝位置,安裝那些功能模塊)
rpm包的依賴關系非常復雜
方式3:yum安裝
yum安裝,其實就是自動分析rpm包的依賴關系,然后按照需要的順序依次安裝
方式4:綠色安裝
rpm的操作
一、安裝rpm包
格式:rpm -ivh 軟件包名
選項
-i:安裝軟件
-v:顯示安裝過程
-h:用#表示安裝進度(# 2%)
-vv:顯示更詳細的安裝過程信息
-vvv:顯示更更詳細的安裝過程信息
二、卸載rpm包
格式:rpm -e 軟件名
選項:
-e:卸載軟件
例子:卸載軟件包ken
# rpm -e ken
三、查詢已經安裝的rpm包
格式:rpm -q 軟件名
選項:
-q:查看一個已經安裝的軟件(ql qa)
-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 軟件包名
軟件管理yum
也是一個rpm包的管理工具,可以實現自動解決rpm包的依賴關系(自動安裝依賴順序進行rpm包的安裝)
為何rpm包會有依賴關系?
制作rpm的人,在制作rpm包的時候,就將這個rpm的所依賴的軟件的信息保存在這個rpm包的內部
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
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)會將要安裝的軟件及其依賴的軟件一並緩存到配置文件指定的目錄中
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倉庫的url的表示方式
注意:在指定yum倉庫的時候,其實不是指向rpm包的目錄,而是執行repodata所在目錄
本地yum倉庫
file://
例子:比如我的yum倉庫 /myrpm,此時yum倉庫的表示方式就是file:///myrpm
網絡yum倉庫
http://
創建本地yum倉庫
使用光盤中的rpm包作為yum倉庫
第一步:掛載光盤
# mount /dev/cdrom /mnt
第二步:備份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包
yum使用
下載不安裝
yum install <軟件> --downloadonly --donwloaddir=<目錄>
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源的使用方式
國內主流的網絡yum倉庫地址
mirrors.aliyun.com
mirrors.163.com
mirrors.sohu.com
[epel1]
name = epel
enabled = 1
gpgcheck = 0
baseurl = https://mirrors.aliyun.com/epel/7/x86_64/
cost = 1
[centos]
name = centos base
enabled = 1
gpgcheck = 0
baseurl = http://mirrors.163.com/centos/7/os/x86_64/
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