yum工具管理RPM包
一、yum 软件仓库有哪些
1.1本地仓库
挂载镜像
root@localhost ~]# mount /dev/cdrom /mnt/
备份原有仓库
[root@localhost ~]# gzip /etc/yum.repos.d/*
创建新仓库文件
方式一
[root@localhost ~]# yum-config-manager --add-repo="file:///mnt"
yum-config-manager --add-repo="file:///mnt"
已加载插件:fastestmirror
adding repo from: file:///mnt
[mnt]
name=added from: file:///mnt
baseurl=file:///mnt
enabled=1
方式二
手动添加repo配置文件
[root@localhost ~]# vim /etc/yum.repos.d/cdrom.repo
[mnt]
name=added from: file:///mnt
baseurl=file:///mnt
enabled=1
gpgcheck=0
1.2网络仓库
备份配置文件:
cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
配置下列方案:
下载新的CentOS-Base.repo文件到/etc/yum.repos.d/目录下,选择CentOS版本:CentOS 7
执行如下命令:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
或
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
执行yum clean all清除原有yum缓存。
执行yum makecache(刷新缓存)或者yum repolist all(查看所有配置可以使用的文件,会自动刷新缓存)
备注:如果报错执行
sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/CentOS-Base.repo
查看是否升级成功
cat /etc/yum.repos.d/CentOS-Base.repo
epel扩展yuan
国外:
[root@localhost ~]# yum -y install epel-release
阿里:
[root@localhost ~]# wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
1.3官方库
1.3.1 nginx官方:
cat >nginx.repo<<EOF
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
yum install nginx -y
1.3.2 mysql官方
yum -y install https://repo.mysql.com//mysql80-community-release-el7-7.noarch.rpm
1.3.3 zabbix官方
rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/7/x86_64/zabbix-release-6.2-3.el7.noarch.rpm
二、yum软件命令管理
2.1搜索软件包
yum list rpm -q 列出每个安装包
yum repolist 列出所有仓库
yum info rpm -qi 查看软件信息
yum install rpm -ivh 安装
yum reinstall rpm -ivh --force 重新安装
yum remove rpm -e
2.2安装软件包
安需要交互
yum install telnet
安装无需交互
yum install -y telnet
安装本地rpm包,自动从本地软件仓库下载所需依赖
[root@localhost ~]# yum localinstall /mnt/Packages/bind-9.11.4-26.P2.el7.x86_64.rpm
安装网络上的rpm包
yum install https://repo.zabbix.com/zabbix/6.2/rhel/7/x86_64/zabbix-release-6.2-3.el7.noarch.rpm
2.3重装软件包
yum reinstall rpm -ivh --force 重新安装
2.4更新软件包
yum check-update 检查更新
yum update -y 更新
2.5删除软件包
yum erase -y
yum remove -y 一般使用此条
2.6仓库有关指令
yum provides 查询指定的 更加精准 配合绝对路径或文件名
yum search 查询功能 包含字符
2.7缓存有关指令
yum clean packages 清除缓存目录下的软件包
yum clean headers 清除缓存目录下的 headers
yum clean oldheaders 清除缓存目录下旧的 headers
yum makecache 创建缓存
yum list 也有创建功效
yum clean all 清除缓存目录下的所有软件包
vim /etc/yum.conf 配置文件
2.8包组有关指令
[root@localhost ~]# yum groups list
[root@localhost ~]# yum groups install 安装一个完整的组件
2.9删除组包
[root@localhost ~]# yum groups remove -y Base
2.10 历史记录
所有操作
yum history
查看具体操作(numaber表示第几次操作)
yum history info number
撤销操作
yum history undo 9 (表示具体第几步)
全局配置文件
vim /etc/yum.conf
[main]
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=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
三、 构建局域网yum在线更新
3.1服务端
3.1.1 服务端自己构建库
阿里云网络yum库
base库
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
epel库
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
nginx库
cat >/etc/yum.repos.d/nginx.repo<<EOF
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
3.1.2搭建ftp
3.1.2.1 安装vsftpd
yum -y install vsftpd
3.1.2.2 关闭selinux
//临时关闭
setenforce 0
//永久关闭
sed -i 's#SELINUX=enable#SELINUX=disable#g' /etc/selinux/config
3.1.2.3关闭防火墙
//临时关闭
systemctl stop firewalld
//永久关闭
systemctl disable firewalld
3.1.2.4启动服务
systemctl start vsftpd
systemctl enable vsftpd
3.1.2.5 创建yum对应的目录
mkdir /var/ftp/{base,update,nginx}
3.3.1分别构建base,update,nginx库资源
3.3.1.1 base库
rpm包来源与光盘
mount /dev/cdrom /mnt
cp -rf /mnt/* /var/ftp/base/
3.3.1.2 update
rpm包来源阿里云
yum update -y --downloadonly
find /var/cache/yum/x86_64/7 -iname "*.rpm" -exec cp {} /var/ftp/update \;
3.3.1.3 创建repofile
安装createrepo并创建reopdata仓库
[root@yum update]# yum -y install createrepo
生成仓库信息
[root@yum update]# createrepo /var/ftp/update/
备注:仓库每次新增软件都需要重新生成
3.2 客户端
3.2.1关闭selinux和防火墙
3.2.2 安装ftp
yum -y install vsftpd
3.2.3配置yum库文件
base库
cat > /etc/yum.repos.d/base.repo<<EOF
[base]
name= base repo
baseurl=ftp://172.16.10.71/base
gpgcheck=0
enabled=1
EOF
update库
cat > /etc/yum.repos.d/update.repo<<EOF
[update]
name= update repo
baseurl=ftp://172.16.10.71/update
gpgcheck=0
enabled=1
EOF
nginx库
cat > /etc/yum.repos.d/nginx.repo<<EOF
[nginx]
name= nginx repo
baseurl=ftp://172.16.10.71/nginx
gpgcheck=0
enabled=1
EOF