2023.6.5.YUM工具管理RPM包

发布时间 2023-06-06 01:39:31作者: 必兮相语--
1.YUM软件仓库管理
1.1本地YUM仓库
1.2⽹络YUM仓库
1.3官⽅YUM仓库
1.4红帽配置Centos仓库
2.YUM软件命令管理
2.1搜索软件包指令
2.2安装软件包指令
2.3重装软件包指令
2.4更新软件包指令
2.5删除软件包指令
2.6仓库相关指令
2.7缓存相关指令
2.8包组相关指令
2.9历史记录指令
2.0全局配置⽂件
3.YUM签名检查机制
4.构建企业YUM仓库
 
 
yum 是基于 RPM 包管理, 能够⾃动解决依赖关系, 极⼤的⽅便 rpm 包的安装升级
1.联⽹获取软件
2.基于RPM管理
3.⾃动解决依赖
4.命令简单好记
5.⽣产最佳实践
1.YUM软件仓库管理
1.1本地YUM仓库
有时候你的linux系统不能联⽹,当然就不能很便捷的使⽤联⽹的yum源了,这时候就需要你⾃⼰会利⽤linux系统
光盘制作⼀个yum源。具体步骤如下:
1.挂载镜像
2.备份原有仓库
[root@wing ~]# mount /dev/cdrom /mnt
[root@wing ~]# gzip /etc/yum.repos.d/*
 
3.创建新仓库⽂件,并加⼊如下内容:
5.刷新 repos ⽣成缓存
1.2⽹络YUM仓库
官⽅⽹络YUM源配置
阿⾥镜像站点, 传送⻔
EPEL 扩展源
//使⽤yum-config-manager命令添加本地仓库
[root@wing ~]# yum-config-manager --add-repo="file:///mnt"
//⼿动添加repo配置⽂件(⽅式⼆)
[root@wing ~]# vim /etc/yum.repos.d/cdrom.repo
[cdrom]
name=This is local cdrom
baseurl=file:///mnt
enabled=1
gpgcheck=0
[] //仓库名称
name //仓库描述信息
baseurl //YUM源url地址 ,可以是file:// ftp:// http://
enabled //是否激活该YUM源(0代表禁⽤,1代表激活,默认为激活)
gpgcheck //安装软件时是否检查签名(0代表禁⽤,1代表激活)
[root@wing ~]# yum makecache
// Base/Extras/Updates: 默认国外官⽅源
[root@wing ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo \
http://mirrors.aliyun.com/repo/Centos-7.repo
//国外epel源
[root@wing ~]# yum -y install epel-release
//阿⾥云epel源
[root@wing ~]# wget -O /etc/yum.repos.d/epel.repo \
http://mirrors.aliyun.com/repo/epel-7.repo
 
1.3官⽅YUM仓库
Nginx 官⽅源
cat > /etc/yum.repos.d/nginx.repo <<EOF
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
EOF
 
1.4红帽配置Centos仓库
红帽Redhat7替换Centos7⽹络源
//源超找⽅式基本⼀致,zabbix,mysql,saltstack,openstack
[root@wing ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
1.卸载红帽yum源
rpm -e $(rpm -qa|grep yum) --nodeps
2.删除所有repo相关⽂件
rm -rf /etc/yum.conf
rm -rf /etc/yum.repos.d/
rm -rf /var/cache/yum
3.下载centos相关yum组件
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-
154.el7.centos.noarch.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-
10.el7.x86_64.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-
1.1.31-42.el7.noarch.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-updateonboot-1.1.31-
42.el7.noarch.rpm
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-
42.el7.noarch.rpm
 
2.YUM软件命令管理
2.1搜索软件包指令
2.2安装软件包指令
//如果没有wget命令则使⽤curl命令
curl -o yum-utils-1.1.31-42.el7.noarch.rpm
https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-
42.el7.noarch.rpm
curl -o yum-3.4.3-154.el7.centos.noarch.rpm
https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-
154.el7.centos.noarch.rpm
curl -o yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-
10.el7.x86_64.rpm
curl -o yum-plugin-fastestmirror-1.1.31-42.el7.noarch.rpm
https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-
42.el7.noarch.rpm
curl -o yum-updateonboot-1.1.31-42.el7.noarch.rpm
https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-updateonboot-1.1.31-
42.el7.noarch.rpm
3.安装所有相关组件
[root@wing-node1 ~]# rpm -ivh yum-*
4.下载base和epel仓库
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sed -i 's#\$releasever#7#g' /etc/yum.repos.d/CentOS-Base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
//列出软件仓库中可⽤的软件
[root@wing ~]# yum list
//进⾏模糊查找
[root@wing ~]# yum list|grep ftp
//列出软件包详情
[root@wing ~]# yum info ftp
 
2.3重装软件包指令
//检查软件是否存在
[root@wing ~]# rpm -q vsftpd
vsftpd-2.2.2-24.el6.x86_64
//检查vsftpd软件配置⽂件
[root@wing ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
//不⼩⼼删除vsftpd配置⽂件
[root@wing ~]# rm -f /etc/vsftpd/vsftpd.conf
//重新安装软件
[root@wing ~]# yum reinstall vsftpd
//再次检查
[root@wing ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
 
2.4更新软件包指令
//安装软件只需要给出软件名称
[root@wing ~]# yum install traceroute
//安装过程中分析依赖关系后, 直接安装, ⽆需交互
[root@wing ~]# yum install php -y
//安装本地的rpm包, 如果有依赖关系, 会⾃动从软件仓库中下载所需依赖(⾮来⾃.repo定义的软件仓库)
[root@wing ~]# yum localinstall /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
//安装⽹络上rpm包
[root@wing ~]# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix
release-3.4-2.el7.noarch.rpm
//检查软件是否存在
[root@wing ~]# rpm -q vsftpd
vsftpd-2.2.2-24.el6.x86_64
//检查vsftpd软件配置⽂件
[root@wing ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
//不⼩⼼删除vsftpd配置⽂件
[root@wing ~]# rm -f /etc/vsftpd/vsftpd.conf
//重新安装软件
[root@wing ~]# yum reinstall vsftpd
//再次检查
[root@wing ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
 
2.5删除软件包指令
//先安装⼀个samba软件
[root@wing ~]# yum install samba -y
//删除该软件包,不会删除依赖, 但是我们尽可能不要使⽤删除软件操作
[root@wing ~]# yum erase samba -y
[root@wing ~]# yum remove samba -y
2.6仓库相关指令
//列出yum源可⽤的软件仓库
[root@wing ~]# yum repolist
//列出全部yum源可⽤和禁⽤的仓库
[root@wing ~]# yum repolist all
//查看这个⽂件或命令属于哪个包
yum provides /etc/my.cnf
yum provides cd
 
2.7缓存相关指令
//对⽐Linux已安装的软件和yum仓库中的软件, 有哪些需要升级
[root@wing ~]# yum check-update
//更新软件
[root@wing ~]# yum update acl -y
//先安装⼀个samba软件
[root@wing ~]# yum install samba -y
//删除该软件包,不会删除依赖, 但是我们尽可能不要使⽤删除软件操作
[root@wing ~]# yum erase samba -y
[root@wing ~]# yum remove samba -y
//列出yum源可⽤的软件仓库
[root@wing ~]# yum repolist
//列出全部yum源可⽤和禁⽤的仓库
[root@wing ~]# yum repolist all
//查看这个⽂件或命令属于哪个包
yum provides /etc/my.cnf
yum provides cd
//缓存yum源软件仓库, xml元数据⽂件
[root@wing ~]# yum makecache
//缓存软件包, 修改yum全局配置⽂件
[root@wing ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1 //启动缓存
//查看缓存的xml⽂件
[root@wing ~]# ls /var/cache/yum/x86_64/7/base/
//查看缓存软件包路径
[root@wing ~]# ls /var/cache/yum/x86_64/7/
 
2.8包组相关指令
//列出已经安装和所有可使⽤的软件组
[root@wing ~]# yum groups list
//安装⼀整个组的软件
[root@wing ~]# yum groups install Development tools \
Compatibility libraries \
Base Debugging Tools
//yum删除包组
[root@wing ~]# yum groups remove -y Base
2.9历史记录指令
//查看历史执⾏yum命令
[root@wing ~]# yum history
//查询历史执⾏yum命令ID详细信息
[root@wing ~]# yum history info N
//撤销历史执⾏过的yum命令
[root@wing ~]# yum history undo N
 
2.0全局配置⽂件
#另⼀种缓存rpm包⽅式
//1.安装插件⽀持只下载软件包不安装
[root@wing ~]# yum install -y yum-plugin-downloadonly
//2.将软件下载⾄指定⽬录
[root@wing ~]# yum install httpd -y --downloadonly --downloaddir=/tmp
//清除所有yum缓存
[root@wing ~]# yum clean all
//只清除缓存的软件包
[root@wing ~]# yum clean packages
//列出已经安装和所有可使⽤的软件组
[root@wing ~]# yum groups list
//安装⼀整个组的软件
[root@wing ~]# yum groups install Development tools \
Compatibility libraries \
Base Debugging Tools
//yum删除包组
[root@wing ~]# yum groups remove -y Base
//查看历史执⾏yum命令
[root@wing ~]# yum history
//查询历史执⾏yum命令ID详细信息
[root@wing ~]# yum history info N
//撤销历史执⾏过的yum命令
[root@wing ~]# yum history undo N
 
3.YUM签名检查机制
rpm 软件提供组织 redhat 在构建 rpm 包时, 使⽤其 私钥private key 对 rpm 进⾏签名
客户端在使⽤ rpm 为了验证其合法性, 可以使⽤ redhat 提供的 公钥public key 进⾏签名检查
⽅式1: 指定公钥的位置
⽅式2: 提前导⼊公钥
⽅式3: 不进⾏签名验证
4.构建企业YUM仓库
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⽬录
[root@wing ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?
release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@wing ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@tianyun ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?
release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
//不检查软件包的签名
[root@wing ~]# yum install httpd --nogpgcheck
4.构建企业YUM仓库

 

本地光盘提供基础软件包 Base
yum缓存提供 update 软件包
yum缓存提供常⽤软件包: nginx , zabbix , docker , saltstack
环境准备

 

服务端配置
1.基础环境准备
//关闭防⽕墙
[root@yum_server_69_112 ~]# systemctl stop firewalld
//临时关闭selinux
[root@yum_server_69_112 ~]# setenforce 0
//安装ftp服务,启动并加⼊开机启动
[root@yum_server_69_112 ~]# yum -y install vsftpd
[root@yum_server_69_112 ~]# systemctl start vsftpd
[root@yum_server_69_112 ~]# systemctl enable vsftpd
//开启yum缓存功能
[root@yum_server_69_112 ~]# vim /etc/yum.conf
[main] cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1
[root@yum_server_69_112 ~]# yum clean all
 
 
2.提供基础 base 源
[root@yum_server_69_112 ~]# mkdir /var/ftp/{centos69,centos74}
[root@yum_server_69_112 ~]# mount /dev/cdrom /mnt
[root@yum_server_69_112 ~]# cp -rp /mnt/Packages/*.rpm /var/ftp/centos74
 
3.提供第三⽅源
[root@yum_server_69_112 ~]# mkdir /var/ftp/ops
[root@yum_server_69_112 ~]# yum -y install nginx docker
//复制已缓存的 Nginx docker 及依赖包 到⾃定义 YUM 仓库⽬录中
[root@yum_server_69_112 ~]# find /var/cache/yum/x86_64/7/ \
-iname "*.rpm" -exec cp -rf {} /var/ftp/ops \;
 
4.安装 createrepo 并创建 reopdata 仓库
//安装createrepo
[root@yum_server_69_112 ~]# yum -y install createrepo
//⽣成仓库信息
[root@yum_server_69_112 ~]# createrepo /var/ftp/ops
//注意: 如果此仓库每次新增软件则需要重新⽣成⼀次
 
客户端使⽤yum源
 
1.配置并使⽤ base 基础源
[root@yum_client_69_113 ~]# gzip /etc/yum.repos.d/*
[root@yum_client_69_113 ~]# vim /etc/yum.repos.d/centos7.repo
[centos74]
name=centos74_base
baseurl=ftp://192.168.69.112/centos74
gpgcheck=0
 
2.客户端指向本地 ops 源
[root@yum_client_69_113 ~]# vim /etc/yum.repos.d/ops.repo
[ops]
name=local ftpserver
baseurl=ftp://192.168.69.112/ops
gpgcheck=0