一、yum是什么
yum是一个软件包管理器,是Linux环境安装软件包的一种方式,yum仓库用来存放所有的rpm包,yum软件仓库的作用是为了进一步简化RPM 管理软件的难度以及自动分析所需软件包及其依赖关系的技术。当使用yum安装一个rpm包时,yum会自动在仓库中查找依赖软件并安装。
yum可以方便地进行 RPM 包的安装、升级、査询和卸载,而且可以自动解决依赖性问题,非常方便和快捷。但是,一定要注意 yum 的卸载功能。yum 在卸载软件同时会卸载这个软件的依赖包,但是如果卸载的依赖包是系统的必备软件包,就可能导致系统崩溃。除非你确实知道 yum 在自动卸载时会卸载哪些软件包,否则最好不要执行 yum 卸载。
二、yum源配置(基于CentOS 7)
yum仓库可以是本地的,也可以是http、ftp、nfs形式的网络仓库 ,要使用网络 yum 源,你的主机必须是正常联网的。
当然,要使用 yum 进行 RPM 包安装,那么必须安装 yum 软件,查看命令是:rpm -qa | grep yum,如果没有安装,则需要手工使用 RPM 包方式安装。
在etc/yum.repos.d/目录中,存放着yum软件仓库的配置文件,文件的扩展名是.repo,目录中有几个系统自带的yum 源配置文件,默认情况下 CentOS-Base.repo 文件生效。
1.网络yum源配置
在主机网络正常的情况下,系统自带yum 源配置文件默认不需要进行任何修改就可以使用,如果要自己配置yum源,步骤如下。
1.1先备份原有的yum源
将原有配置文件修改后缀,如.repo.back,或者全部放到一个新建目录中,最好不要直接删除,万一以后要用。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back
1.2下载新的yum源(如阿里)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
1.3清除原有yum缓存
yum clean all
1.4生成新的缓存
yum makecache
2.本地yum源配置
如果 Linux 主机不能联网,yum 也可以使用,在 /etc/yum.repos.d/ 目录下有一个 CentOS-Media.repo 文件,这个文件就是以本地光盘作为 yum 源服务器的模板文件,只需要进行简单的修改即可。
2.1创建一个挂载目录
mkdir -p /media/cdrom
2.2将ISO镜像文件挂载到挂载目录
mount /dev/cdrom /media/cdrom
2.3将挂载信息写入到/etc/fstab文件中,开机自动挂载
vim /etc/fstab
/dev/cdrom /media/cdrom iso9660 defaults 0 0
2.4移除或备份原yum源Centos-Base.repo文件,最好是备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back
2.5配置Centos-Media.repo文件,参数如下
[rhel-media]
name=media-name
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
#gpgkey=
2.6清除原有yum缓存
yum clean all
2.7生成新的缓存
yum makecache
三、说明
1.yum源配置文件主要参数含义如下。
[base] #仓库唯一标识符,避免与其他仓库冲突,一定要放在[]中
name= #仓库名称描述,易于识别仓库用处
mirrorlist= #仓库镜像路径,可省略
baseurl= #仓库url路径,提供的方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)
enabled= #仓库是否启用,1表示启用,0表示关闭
gpgcheck=1 #密钥检测,1表示开启,0表示关闭
gpgkey= #检查key的地址,如果上面不检查,这个可以不写
2.yum常用命令
1.列出所有可更新的软件清单命令:yum check-update
2.更新所有软件命令:yum update
3.仅安装指定的软件命令:yum install <package_name>
4.仅更新指定的软件命令:yum update <package_name>
5.列出所有可安裝的软件清单命令:yum list
6.删除软件包命令:yum remove <package_name>
7.查找软件包 命令:yum search <keyword>
8.清除缓存命令:
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
3.国内yum源
阿里:http://mirrors.aliyun.com
网易:http://mirrors.163.com
中科大:http://mirrors.ustc.edu.cn/