rpm和yum软件管理
Posted ajunyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rpm和yum软件管理相关的知识,希望对你有一定的参考价值。
1. rpm
Redhat Package Manager,是一个数据库管理工具,可以通过读取数据库,判断软件是否已经安装,如果已经安装可以读取出来所有文件的所在位置等,并可以实现删除这些文件
1.1 rpm可以完成的操作
安装软件
卸载软件
查询软件信息
升级、降级
检验
打包程序
注意:rpm仅仅能管理符合rpm格式的程序包,不能管理源码格式的程序。
1.2 程序的格式
1)源码格式的程序:都是以压缩方式呈现的(后缀都是.tar.gz|bz2)
2)rpm格式的程序:这都是编译以后的程序 (后缀都是.rpm)
2. 安装方式
安装方式 |
优点 |
缺点 |
编译安装 |
安装过程可控,真正的按需求进行安装(安装位置、安装的模块都可以选择) |
安装过程复杂,而且很慢 |
rpm安装(用rpm来安装rpm后缀的安装包) |
安装和卸载过程非常方便 |
安装过程不可控(安装位置,安装那些功能模块) rpm包的依赖关系非常复杂 |
yum安装 |
yum安装,其实就是自动分析rpm包的依赖关系,然后按照需要的顺序依次安装 |
|
绿色安装 |
|
|
3.rpm操作
3.1 安装rpm包
格式:rpm -ivh 软件包名
选项
-i:安装软件
-v:显示安装过程
-h:用#表示安装进度(# 2%)
-vv:显示更详细的安装过程信息
-vvv:显示更更详细的安装过程信息
3.2 卸载rpm包
格式:rpm -e 软件名
3.3 查询已安装的rpm包
格式: rpm -q 软件名
选项
-q:查看一个已经安装的软件
-a:查看所有已经安装的软件all
-l:显示软件安装完成以后生成文件列表(所有文件)list
-i:查看软件包的相关信息 info
-d:显示该软件所生成的说明性质的文档列表docfiles
-c:查看软件所生成的配置文件列表configfiles
-scripts:查看软件相关的脚本
3.4 查看文件是哪个软件生成的
rpm -qf /path/to/file (绝对路径)
3.5 升级选项
-U:升级或安装软件
-F:仅仅是升级操作
使用格式;
rpm -Fvh 软件包名
rpm -Uvh 软件包名
4. yum
4.1 yum工作原理
1)创建一个yum仓库(rpm包仓库、软件仓库)
仓库其实就是一个目录;
仓库中存放的是rpm包;
仓库中还保存了一个文件,文件中记录了该仓库中所有rpm包的元数据信息;
元数据信息包括:
软件名
软件版本
软件是否已经安装
软件的依赖关系
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。
4.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)会将要安装的软件及其依赖的软件一并缓存到配置文件指定的目录中
4.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
cost=1 :优先级,数字越小优先级越高
4.4 yum仓库的url的表示方式
注意:在指定yum仓库的时候,其实不是指向rpm包的目录,而是执行repodata所在目录。
本地yum仓库: file:// ,比如我的yum仓库 /myrpm,此时yum仓库的表示方式就是file:///myrpm
网络yum仓库: http://
4.5 使用光盘中的rpm包作为yum仓库
1)挂载光盘
# mount /dev/cdrom /media
2)备份yum自带的配置文件
# cd /etc/yum.repos.d
# mkdir bak
# mv *.repo bak mv C* ken
3)创建yum的配置文件,使用光盘作为yum仓库
# vim 1.repo #名字无所谓,必须以 .repo 结尾
[myrepo]
name=my repo
enabled=1
gpgcheck=0
baseurl=file:///media
4)执行yum命令检测结果
# yum clean all <<< 清空yum缓存的全部数据
# yum repolist <<< 检查yum仓库中有多少个可用的rpm包
[[email protected] ~]# mount /dev/cdrom /mnt #挂载,挂载前应将虚拟机的CD勾选连接 mount: /dev/sr0 is write-protected, mounting read-only [[email protected] ~]# cd /etc/yum.repos.d/ #切换目录 [[email protected] yum.repos.d]# vim test.repo #新建文件必须以,repo结尾 [test] #yum仓库的id name=test #yum仓库的名称 enable=1 #使用该yum仓库 gpgcheck=1 #验证完整性 gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7 #公钥文件 baseurl=file:///mnt #yum仓库的url,url必须在repodata所对应的目录下 cost=1 #优先使用本地源,cost越大,优先级越低 :wq [[email protected] ~]# ls /mnt CentOS_BuildTag GPl liveOS RPM-GPG-KEY-CentOS-7 EFi images Packages RPM-GPG-KEY-CentOS-Testing-7 EUla isolinux repodata TRaNS.TBl [[email protected] yum.repos.d]# yum clean all #清空yum缓存 loaded plugins: fastestmirror Cleaning repos: base extras test updates Cleaning up everything Cleaning up list of fastest mirrors [[email protected] yum.repos.d]# yum repolist #查看仓库 repo id repo name status base/7/x86_64 CentOS-7 - Base 10,019 extras/7/x86_64 CentOS-7 - Extras 85 test test 3,831 updates/7/x86_64 CentOS-7 - Updates 1,511 repolist: 15,746
4.6 yum 的使用
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
4.7 网络yum源的使用方式
1)国内主流的网络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
[[email protected] yum.repos.d]# vim bendi.repo [test] name=test enable=1 gpgcheck=1 geokey=file:///mnt/RPM-GPG-KEY-CentOS-7 baseurl=file:///mnt cost=1 [net] name=net enable=1 gpgcheck=0 baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/ #阿里云提供的网络云仓库, url必须在repodata所对应的目录下 :wq [[email protected] yum.repos.d]# yum repolist [[email protected] yum.repos.d]# yum clean all repo id repo name status test test 3,831 base/7/x86_64 CentOS-7 - Base 10,019 extras/7/x86_64 CentOS-7 - Extras 385 net net 13,051 updates/7/x86_64 CentOS-7 - Updates 1,511 repolist: 28,797
以上是关于rpm和yum软件管理的主要内容,如果未能解决你的问题,请参考以下文章