YUM 软件包管理
概述
- 前端软件包管理器(Yellow Updater Modified,YUM)适用于Cent OS、Fedora、Red Hat及SUES中的Shell命令行
- 主要用于管理RPM包,于RPM工具使用范围类似,YUM工具能够从指定的服务器自动下载RPM包并且安装,还可以自动处理依赖性关系。
- 使用RPM工具管理和安装软件时,会发现rpm包有依赖,需要逐个手动下载安装
- YUM工具的最大便利就是可以自动安装所有依赖的软件包,从而提升效率,节省时间。
工作原理
- YUM正常运行,需要依赖两个部分,一是YUM源端,二是YUM客户端,也即用户使用端。
- YUM客户端安装的所有RPM包都是来自YUM服务端,YUM源端通过HTTP或者FTP服务器发布。
- 而YUM客户端能够从YUM源端下载依赖的RPM包是由于在YUM源端生成了RPM包的基准信息,包括RPM包版本号、配置文件、二进制信息、依赖关系等。
- YUM客户端需要安装软件或者搜索软件,会查找/etc/yum.repos.d下以.repo结尾文件, CentOS Linux默认的.repo文件名为CentOS-Base.repo,该文件中配置了YUM源端的镜像地址,所以每次安装、升级RPM包,YUM客户端均会查找.repo文件。
- YUM客户端如果配置了CentOS官方repo源,客户端操作系统必须能联外网,满足网络条件,才能下载软件并安装,如果没有网络,也可以构建光盘源或者内部YUM源。在只要YUM客户端时,YUM客户端安装软件,默认会把YUM源地址、Header信息、软件包、数据库信息、缓存文件存储在/var/cache/yum中,每次使用YUM工具,YUM优先通过Cache查找相关软件包,Cache中不存在,然后在访问外网YUM源。
企业案列演练
- 由于YUM工具的使用简便、快捷、高效,在企业中得到广泛的使用,得到众多IT运维、程序人员的青睐,要能熟练使用YUM工具,需要先掌握YUM命令行参数的使用
- YUM 常用命令参数:
[root@hbs ~]# yum makecache 缓存 [root@hbs ~]# yum -y install httpd 安装httpd软件包 [root@hbs ~]# yum search lrzsz YUM搜索lrzsz软件包 [root@hbs ~]# yum list httpd 显示指定程序包安装情况httpd [root@hbs ~]# yum list all 显示所有已安装及可安装的软件包 [root@hbs ~]# yum remove httpd 删除程序包httpd [root@hbs ~]# yum erase httpd 删除程序包httpd [root@hbs ~]# yum update httpd 升级httpd 服务 [root@hbs ~]# yum provides ifconfig 列出ifconfig命令是那个软件包提供的 [root@hbs ~]# yum grouplist 查询可以用安装的组 [root@hbs ~]# yum update 内核升级或者软件更新(慎用)
配置本地源
- 1、进入到/etc/yum.repos.d/目录中(因为该目录存放yum仓库的配置文件。)
- 2、 使用vim命令创建一个后缀名.repo的新配置文件逐行添加配置参数
[media] :Yum软件仓库唯一标识符,避免与其他仓库冲突。 name=localhost:Yum软件仓库的名称描述,易于识别仓库用处。 baseurl=file:///mnt/cdrom:提供的方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)。 enabled=1:设置此源是否可用;1为可用,0为禁用。 gpgcheck=0:设置此源是否校验文件;1为校验,0为不校验。 gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release:若上面参数开启校验,那么请指定公钥文件地址。(ll /mnt/RPM-GPG-KEY-CentOS-7) priority=1 priority 越小表示优先级越高
基于ISO 构建本地YUM 源
[root@hbs ~]# cat /etc/yum.repos.d/hbs.repo [xx] name=hbs baseurl=file:///mnt enabled=1 gpgcheck=0 gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7 指定载目录下的GPG-KEY文件验证。 [root@hbs ~]#
- 3、 挂载光盘步骤
[root@hbs ~]# mount /dev/cdrom /mnt/ 挂在光盘 mount: /dev/sr0 is write-protected, mounting read-only [root@hbs ~]# [root@hbs ~]# df -h 查看挂在情况 Filesystem Size Used Avail Use% Mounted on /dev/sda3 20G 1.6G 18G 8% / devtmpfs 901M 0 901M 0% /dev tmpfs 912M 0 912M 0% /dev/shm tmpfs 912M 9.0M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 197M 121M 77M 62% /boot tmpfs 183M 0 183M 0% /run/user/0 `/dev/sr0 4.3G 4.3G 0 100% /mnt` [root@hbs ~]#
- 4、开启开机自启动挂载
- 方式一:vim /etc/fstab
- 方式二:vim /etc/rc.local
[root@hbs ~]# cat /etc/fstab |grep iso9660 在/etc/fstab文件下面添加 /dev/cdrom /mnt iso9660 defaults 0 0 [root@hbs ~]# 添加:/dev/cdrom /mnt iso9660 defaults 0 0 [root@hbs ~]# cat /etc/rc.local |grep /mnt 在/etc/rc.local下面添加 /dev/cdrom /mnt [root@hbs ~]# 添加:/dev/cdrom /mnt
配置163的网络源
网络源地址
Centos7:http://mirrors.163.com/.help/CentOS7-Base-163.repo
Centos6:http://mirrors.163.com/.help/CentOS6-Base-163.repo
Centos7:http://mirrors.aliyun.com/repo/Centos-7.repo
Centos6: http://mirrors.aliyun.com/repo/Centos-6.repo
openstack: http://mirrors.aliyun.com/repo/Centos-openstack.repo
基于HTTP 构建局域 网络源
- YUM光盘源默认只能本机使用,局域网其他服务器无法使用YUM光盘源,如果想使用的话,需要在每台服务器上构建YUM本地源,该方案在企业中不可取,所以需要构建HTTP局域网YUM源解决,可以通过CreateRepo创建本地YUM源端,repo即为Repository。
- 构建HTTP局域网YUM源方法及步骤如下:
- 1、挂载光盘镜像文件至/mnt
[root@hbs ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 is write-protected, mounting read-only
- 2、 拷贝/mnt/Packages目录下所有软件包至/var/www/html/centos/
[root@hbs ~]# mkdir -p /var/www/html/centos/ [root@hbs ~]# cp -R /mnt/Packages/* /var/www/html/centos/
- 3、使用Createrepo创建本地源,执行如下命令会在Centos目录生成repodata目录
[root@hbs ~]# yum -y install createrepo* 先安装 createrepo 软件包 [root@hbs ~]# cd /var/www/html/ [root@hbs html]# ls centos [root@hbs html]# createrepo centos/ 生成网络源
- 4、利用HTTP发布YUM本地源
- 本地YUM源通过CreateRepo搭建完毕,需要借助HTTP WEB服务器发布/var/www/html/centos/中所有软件,YUM或者RPM安装HTTP WEB服务器,并启动httpd服务。
[root@hbs html]# yum -y install httpd-devel [root@hbs ~]# getenforce 关闭selinux,建议关闭后重启下 Disabled [root@hbs ~]# [root@hbs ~]# systemctl stop firewalld 关闭防火墙 [root@hbs ~]# systemctl stop httpd [root@hbs ~]# systemctl start httpd 重新启动httpd [root@hbs ~]# ps -e|grep httpd 查看HTTPD进程是否启动 17340 ? 00:00:00 httpd 17341 ? 00:00:00 httpd 17342 ? 00:00:00 httpd 17343 ? 00:00:00 httpd 17344 ? 00:00:00 httpd 17345 ? 00:00:00 httpd [root@hbs ~]#
- 5、在YUM客户端,创建/etc/yum.repos.d/http.repo文件,写入如下内容
[root@localhost yum.repos.d]# cat http.repo [http] name="CentOS7 HTTP YUM" baseurl=http://192.168.10.11/centos/ gpgcheck=0 enabled=1 [updates] name="CentOS7 HTTP YUM" baseurl=http://192.168.10.11/centos gpgcheck=0 enabled=1 [root@localhost yum.repos.d]# yum -y install vim Loaded plugins: fastestmirror http | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/2): http/primary_db | 3.0 MB 00:00:00 (2/2): updates/primary_db | 3.0 MB 00:00:00 Determining fastest mirrors