目录
一、yum介绍
Yum(全称为 Yellow dog Updater, Modified),是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
常见的软件封包类型
封包类型 | 说明 |
---|---|
rpm软件包 | 扩展名以.rpm结尾,适用于redhat系列 |
deb软件包 | 扩展名以.deb结尾,适用于Debian系列 |
源代码软件包 | 以.tar.gz/.tar.bz2格式结尾的压缩包提供包含程序的原始代码文件 |
RPM的含义
1.RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用。
2.RPM里面都包含可执行的二进制程序,这个程序和Windows的软件包中的.exe文件类似是可执行的;RPM包中还包括程序运行时所需要的文件,这也和Windows的软件包类似,Windows的程序的运行,除了.exe文件以外,也有其它的文件。
3.一个RPM 包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系;依赖关系并不是Linux特有的,Windows操作系统中也是同样存在的;比如我们在Windows系统中运行3D游戏,在安装的时候,他可能会提示,要安装Direct 9 ;Linux和Windows原理是差不多的。 RPM包文件名特征-软件名-版本信息.操作系统.硬件架构.rpm
二、 yum命令格式
yum的命令形式一般是如下:
yum [-opt] command package
其中-opt选项是可选的,选项包括如下:
- -h(帮助),
- -y(当安装过程提示选择全部为"yes"),
- -q(不显示安装的过程)等.
command为所要进行的操作,package是操作的对象。
yum的一切信息都存储在一个叫yum.reops.d目录下的配置文件中,通常位于/etc/yum.reops.d目录下。
[root@localhost ~]# ll /etc/yum.repos.d/
总用量 36
-rw-r--r--. 1 root root 1664 11月 23 2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 11月 23 2018 CentOS-CR.repo
-rw-r--r--. 1 root root 649 11月 23 2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 11月 23 2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 11月 23 2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 11月 23 2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 11月 23 2018 CentOS-Vault.repo
-rw-r--r--. 1 root root 2081 12月 5 11:42 docker-ce.repo
这个目录下面有很多文件,都是.repo结尾的,repo文件是yum源(也就是软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!
打开CentOS-Base.repo:
- [xxx]:名称,yum的ID,必须唯一,本地有多个yum源的时候,这里必须是唯一的
- name:具体的yum源名字,其实相当于对它的描述描述信息
- baseurl:镜像服务器地址,只能写具体的确定地址。只能有一个baseurl,但里面可以包含多个url
- mirrorlist:镜像服务器的地址列表,里面有很多的服务器地址。变量arch,cpu体系,变量basearch,cpu的基本体系组。
- baseurl和mirrorlist都是指向yum源的地址,不同点是包含地址的多少。自己写的话,我们一般只写一个地址,直接用baseurl就行
- gpgcheck:0 取消验证。1 使用公钥检验rpm的正确性。
- gpgkey:gpgcheck若是1将对下载的rpm将进行gpg的校验,校验密钥就是gpgkey,一般自己的yum源是不需要检测的。gpgcheck=0时gpgkey就可以不填写。
在来看一下yum.conf文件(vim /etc/yum.conf)
- cachedir:yum下载的RPM包的缓存目录
- keepcache:缓存是否保存,1保存,0不保存。
- debuglevel:调试级别(0-10),默认为2
- logfile:yum的日志文件所在的位置
三、常用命令
3.1 yum清空缓存列表
- yum clean packages 清除缓存目录下的软件包,清空的是(/var/cache/yum)下的缓存
- yum clean headers 清除缓存目录下的 headers
- yum clean oldheaders 清除缓存目录下旧的 headers
- yum clean, yum clean all (= yum clean packages; yum clean oldheaders) 清除缓存目录下的软件包及旧的headers
3.2 yum显示信息
- yum list 显示所有已经安装和可以安装的程序包,这些列表里面的包的来源就是/etc/yum.repo.d
- yum list <package_name>显示指定程序包安装情况
- yum list <package_name>显示安装包信息rpm,显示installed ,这里是包名,版本和仓库名
- yum list <package_name> 这里是可获得包,说明还没有安装。
- yum info <package_name>显示安装包rpm的详细信息
- yum info <package_name>显示安装包信息
- yum groupinfo <package_name>显示程序组信息
- yum search <string> 根据关键字string查找安装包
3.2 yum安装
- yum -y install <package_name> 如果你不加-y他会问你要不要安装。如果你想自己来控制有些包是否安装,这里不要加-y,如果你想自动安装,不进行交互,这里加入-y。这个就是yum 的安装了,非常简单。安装完之后查询一下
- yum list <package_name> ,Installed 说明已经安装好了
- yum install 全部安装
- yum install <package> 安装指定的安装包package
- yum groupinsall <group> 安装程序组group
3.3 yum删除
- yum remove <package_name>删除程序包,也就是卸载。
- yum deplist <package_name> 查看程序rpm依赖情况
- yum groupremove <group> 删除程序组group
3.4 yum包的更新和升级
- yum check-update 检查可更新的程序
- yum update 全部更新,升级所有包,以及升级软件和系统内核,这就是一键升级。他可以更新CentOS的内核到最新版本。
- yum update <package> 更新指定程序包package
- yum upgrade <package> 升级指定程序包package
- yum groupupdate <group> 升级程序组group
有时候需要将高版本的依赖降级到低版本,降级命令如下
yum downgrade <package_name> 降级,对于有依赖的,yum不会自动降级,需要手动降级依赖项
四、常用的国内 yum 源
阿里云yum镜像仓库是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错。将系统的yum源设置为阿里云镜像仓库,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。
1、安装步骤
首先备份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、下载对应的repo文件
下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #下载阿里云的镜像并重命名
3、生成缓存
运行以下命令生成缓存
yum clean all
yum makecache
4、其他yum源
除了阿里云镜像之外,国内还有其他不错的 yum 源,比如网易、中科大和搜狐。
网易的yum源
CentOS5 :http://mirrors.163.com/.help/CentOS5-Base-163.repo
CentOS6 :http://mirrors.163.com/.help/CentOS6-Base-163.repo
CentOS7 :http://mirrors.163.com/.help/CentOS7-Base-163.repo
安装epel扩展源
以上我们安装的网络yum源基本都是基础的yum源,有些软件不一定能在其找得到,而epel源是一个扩展源,里面有很多软件,所以安装epel扩展源是一个很好的选择,安装如下:
yum install -y epel-release