什么是yum
yum
是RedHat以及CentOS中的软件包管理器,能够通过互联网下载以rpm结尾的包,并且安装,并可以自动处理依赖性关系,无需繁琐的一次次下载安装。
1.联网获取软件
2.基于RPM管理
3.自动解决依赖
4.命令简单好记
5.生产最佳实践
什么是yum源
要成功的使用yum工具安装软件包,就需要有一个包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称之为yum源
或者yum 仓库
这个源可以是本地的也可以是网络的。
安装完系统后,必须要有的两个仓库:
基础仓库:base
扩展仓库:epel
仓库的配置文件
位置:/etc/yum.repos.d/
名字:全部都是以repo结尾的文件
配置:
## 阿里Base源配置的两种方法:
wget -O /etc/yum.repos.d/zls_base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/zls_base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
## 阿里epel源配置的两种方法:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
各大镜像源:
阿里云:https://opsx.alibaba.com/mirror
清华源:https://mirrors.tuna.tsinghua.edu.cn/
163源:http://mirrors.163.com/
华为源:https://mirrors.huaweicloud.com/
科大源:http://mirrors.ustc.edu.cn/
yum仓库内软件包的查询
## 查看当前系统所有可用仓库里面的安装包
yum list
## 查看仓库里指定包的详细信息(未安装的也可以查)
例如:yum info tree
## 查询ifconfig命令属于哪个包
yum provides */ifconfig
yum仓库查询
## 查看当前yum的可用仓库都有哪些
yum repolist
## 查看yum的所有仓库有哪些
yum repolist all
## 使用命令开启或者关闭仓库(yum install -y yum-utils)
yum-config-manager --disable base
yum-config-manager --enable base
yum安装软件包
## 安装
yum install -y 包名
## 本地安装,并且解决依赖关系(依赖的包必须在仓库里有)
yum localinstall
## 网络资源安装
yum install -y https://mirrors.ustc.edu.cn/centos/7.9.2009/os/x86_64/Packages/vsftpd- 3.0.2-28.el7.x86_64.rpm
yum重装软件
## 如果误删除软件的配置文件,或者相关目录,可以使用reinstall
yum reinstall nginx -y
yum更新软件
## 检查当前系统中的软件,与yum仓库中的软件对比,需要更新的软件
yum check-update
## 更新软件
yum update -y 包名
## 全部更新(非常危险)
yum update -y
yum删除软件包
## remove和erase都会删除相关的依赖
yum remove -y tree
yum erase -y tree
yum缓存相关命令
## 清除所有的缓存
yum clean all
## 加载缓存(把仓库中的所有软件包名加载到内存中)
yum makecache
yum包组相关命令
## 查看包组(列出已经安装和所有可使用的软件组)
yum groups list
## 安装包组(安装Development tools这个组的软件)
yum groups install Development tools
## 删除包组(删除Development tools这个包组)
yum groups remove -y Development tools
yum历史命令
## 查看历史执行的命令
yum history
## 查看指定的历史yum命令的详细信息 25:ID
yum history info 25
## 撤销历史命令
yum history undo 35
yum只下载不安装选项
yum install -y wget --downloadonly --downloaddir=/tmp
--downloadonly 只下载不安装
--downloaddir=/路径
yum的配置文件
yum的配置一般有两种方式:
1.全局配置文件/etc/yum.conf/
2.子配置文件/etc/yum.repos.d/目录下的所有.repo文件
vim /etc/yum.conf
cachedir=/var/cache/yum/$basearch/$releasever //缓存目录
keepcache=0 //缓存软件包, 1启动 0 关闭
debuglevel=2 //调试级别
logfile=/var/log/yum.log //日志记录位置
exactarch=1 //检查平台是否兼容
obsoletes=1 //检查包是否废弃
gpgcheck=1 //检查来源是否合法,需要有制作者的公钥信息
plugins=1 //是否启用查询
installonly_limit=5
bugtracker_url
# metadata_expire=90m //每小时手动检查元数据
# in /etc/yum.repos.d //包含repos.d目录
yum仓库的配置文件
## 仓库的名字
[base]
## 对仓库的描述信息,可以自定义
name=CentOS-$releasever - Base - mirrors.aliyun.com
## 仓库的地址
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
## 是否检查公钥私钥
gpgcheck=1
## 公钥的位置
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
## 开启yum仓库
enabled=1
http:// 超文本传输协议
https:// 超文本传输加密协议
ftp:// 文件传输协议
file:// 本地文件协议
制作仓库
# 1.压缩所有的yum仓库文件
[root@oldboy ~]# gzip -r /etc/yum.repos.d/
# 2.创建本地仓库目录
[root@oldboy ~]# mkdir /yum_cangku
# 3.镜像挂载在该目录下
[root@oldboy ~]# mount /dev/cdrom /yum_cangku/
# 4.手写仓库配置文件
[root@oldboy ~]# vim /etc/yum.repos.d/bendi.repo
[base]
name=This is local repository
baseurl=file:///yum_cangku/
gpgcheck=0
enable=1
# 5.加载缓存
yum makecache
本地光盘提供基础软件包Base
yum缓存提供update
软件包
yum缓存提供常用软件包: nginx
, zabbix
, docker
, saltstack
准备环境
IP | 角色 |
---|---|
10.0.0.10 | yum仓库server |
10.0.0.100 | 普通服务器client |
**目标:**任意一台虚拟机,修改yum源为10.0.0.10这台机器都可以使用yum安装
10.0.0.10制作成yum仓库
# 1.安装vsftpd服务,让该机器变成网络服务
[root@localhost ~]# yum install -y vsftpd
# 2.启动服务
[root@localhost ~]# systemctl start vsftpd
# 3.关闭selinux
## 查看selinux是否开启
[root@localhost ~]# getenforce
Enforcing
## 临时关闭(一旦重启就又会开启)
[root@localhost ~]# setenforce 0
## 永久关闭(重启之后才会生效)
[root@localhost ~]# vim /etc/sysconfig/selinux
SELINUX=disabled
# 4.关闭防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
# 5.在ftp的目录下创建好base目录
[root@localhost ftp]# mkdir /var/ftp/base
# 6.挂载光盘
[root@localhost ftp]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
# 7.拷贝所有的rpm包
[root@localhost ftp]# cp /mnt/Packages/* /var/ftp/base/
# 8.安装仓库制作命令,并创建repodata仓库(注意: 如果此仓库每次新增软件则需要重新生成一次)
[root@localhost base]# yum install -y createrepo
# 9.创建仓库
[root@localhost base]# createrepo /var/ftp/base
在10.0.0.100上更改yum源
[root@oldboy /etc/yum.repos.d]# vim /etc/yum.repos.d/ftp.repo
[ftp_base]
name=ld_base
baseurl=ftp://10.0.0.10/base
gpgcheck=0
enabled=1
## 同步别人的源
rsync rsync://mirrors.ustc.edu.cn/epel/7/x86_64/Packages/n/
https://mirrors.ustc.edu.cn/epel/7/x86_64/Packages/n/
10.0.0.10制作成yum仓库
# 1.下载Nginx
[root@oldboy ~]# yum install -y nginx
# 2.修改/etc/nginx/nginx.conf
server {
listen 80;
root /nginx_yum;
server_name localhost;
location / {
autoindex on;
}
}
# 3.关闭selinux
## 查看selinux是否开启
[root@oldboy ~]## getenforce
Enforcing
## 临时关闭(一旦重启就又会开启)
[root@oldboy ~]## setenforce 0
## 永久关闭(重启之后才会生效)
[root@oldboy ~]## vim /etc/sysconfig/selinux SELINUX=disabled
# 4.关闭防火墙
[root@oldboy ~]## systemctl stop firewalld
[root@oldboy ~]## systemctl disable firewalld
# 5.启动Nginx
[root@oldboy ~]## systemctl start nginx
# 6.创建/nginx_yum/base和/nginx_yum/zabbix这两个目录
[root@oldboy ~]# mkdir /nginx_yum/base
[root@oldboy ~]# mkdir /nginx_yum/zabbix
# 7.挂载光盘
[root@oldboy ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
# 8.拷贝所有的rpm包到/nginx_yum/base/下
[root@oldboy ~]# cp -rp /mnt/Packages/* /nginx_yum/base/
# 9.从网上下载所有的zabbix中的包到/nginx_yum/zabbix/下
[root@oldboy ~]# curl https://repo.huaweicloud.com/zabbix/zabbix/5.2/rhel/7/x86_64/|awk -F '"' '{print "wget -P /nginx_yum/zabbix/ https://repo.huaweicloud.com/zabbix/zabbix/5.2/rhel/7/x86_64/"$4}'|grep '.rpm$'|bash
# 10.创建仓库
[root@oldboy ~]# createrepo /nginx_yum/base/
[root@oldboy ~]# createrepo /nginx_yum/zabbix/
在10.0.0.100上更改yum源
[root@oldboy /etc/yum.repos.d]# vim nginx_base.repo
[root@oldboy /etc/yum.repos.d]# cat nginx_base.repo
[nginx_base]
name=This is a nginx repository
baseurl=http://10.0.0.13/base/
gpgcheck=0
enabled=1
[nginx_zabbix]
name=This is a nginx zabbix repository
baseurl=http://10.0.0.13/zabbix/
gpgcheck=0
enabled=1