
YUM工具多种使用
1.YUM软件仓库管理
1.1系统镜像制作一个yum源
有时候你的linux系统不能联网,当然就不能很便捷的使用联网的yum源了,这时候就需要你自己会利用linux系统光盘制作一个yum源。具体步骤如下:1.挂载镜像
[root@x86cloud ~]# mount /dev/cdrom /mnt2.备份原有仓库
[root@x86cloud ~]# gzip /etc/yum.repos.d/*3.创建新仓库文件,并加入如下内容:
//使用yum-config-manager命令添加本地仓库 [root@x86cloud ~]# yum-config-manager --add-repo="file:///mnt" //手动添加repo配置文件(方式二) [root@x86cloud ~]# 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代表激活)5.刷新repos生成缓存
[root@x86cloud ~]# yum makecache1.2网络YUM仓库
官方网络YUM源配置阿里镜像站点
// Base/Extras/Updates: 默认国外官方源 [root@x86cloud ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo \ http://mirrors.aliyun.com/repo/Centos-7.repoEPEL扩展源
//国外epel源 [root@x86cloud ~]# yum -y install epel-release //阿里云epel源 [root@x86cloud ~]# wget -O /etc/yum.repos.d/epel.repo \ http://mirrors.aliyun.com/repo/epel-7.repo1.3官方YUM仓库
Nginx官方源//方式基本一致,zabbix,mysql,saltstack,openstack [root@x86cloud ~]# vim /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=11.4红帽配置Centos仓库
红帽Redhat7替换Centos7网络源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 //如果没有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@x86cloud-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.repo1.5 修改REDHAT的YUM
1.删除redhat原有的yum源
[root@vsphere data]# rpm -aq | grep yum|xargs rpm -e –nodeps2.安装yum软件包
[root@vsphere data]# rpm -ivh python-iniparse-0.4-9.el7.noarch.rpm [root@vsphere data]# rpm -ivh yum-metadata-parser-1.1.4-10.el7.x86_64.rpm yum-3.4.3-118.el7.centos.noarch.rpm yum-plugin-fastestmirror-1.1.31-24.el7.noarch.rpm python-urlgrabber-3.10-8.el7.noarch.rpm --force --nodeps其中python也需要,安装会有依赖的问题,所以加上--force参数强制安装
2.YUM软件命令管理
2.1搜索软件包指令
//列出软件仓库中可用的软件 [root@x86cloud ~]# yum list //进行模糊查找 [root@x86cloud ~]# yum list|grep ftp //列出软件包详情 [root@x86cloud ~]# yum info ftp2.2安装软件包指令
//安装软件只需要给出软件名称 [root@x86cloud ~]# yum install traceroute //安装过程中分析依赖关系后, 直接安装, 无需交互 [root@x86cloud ~]# yum install php -y //安装本地的rpm包, 如果有依赖关系, 会自动从软件仓库中下载所需依赖(非来自.repo定义的软件仓库) [root@x86cloud ~]# yum localinstall /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm //安装网络上rpm包 [root@x86cloud ~]# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rp2.3重装软件包指令
//检查软件是否存在 [root@x86cloud ~]# rpm -q vsftpd vsftpd-2.2.2-24.el6.x86_64 //检查vsftpd软件配置文件 [root@x86cloud ~]# rpm -qc vsftpd /etc/logrotate.d/vsftpd /etc/pam.d/vsftpd /etc/vsftpd/ftpusers /etc/vsftpd/user_list /etc/vsftpd/vsftpd.conf //不小心删除vsftpd配置文件 [root@x86cloud ~]# rm -f /etc/vsftpd/vsftpd.conf //重新安装软件 [root@x86cloud ~]# yum reinstall vsftpd //再次检查 [root@x86cloud ~]# rpm -qc vsftpd /etc/logrotate.d/vsftpd /etc/pam.d/vsftpd /etc/vsftpd/ftpusers /etc/vsftpd/user_list /etc/vsftpd/vsftpd.conf2.4更新软件包指令
//对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级 [root@x86cloud ~]# yum check-update //更新软件 [root@x86cloud ~]# yum update acl -y2.5删除软件包指令
//先安装一个samba软件 [root@x86cloud ~]# yum install samba -y //删除该软件包,不会删除依赖, 但是我们尽可能不要使用删除软件操作 [root@x86cloud ~]# yum erase samba -y [root@x86cloud ~]# yum remove samba -y2.6仓库相关指令
//列出yum源可用的软件仓库 [root@x86cloud ~]# yum repolist //列出全部yum源可用和禁用的仓库 [root@x86cloud ~]# yum repolist all //查看这个文件或命令属于哪个包 yum provides /etc/my.cnf yum provides cd2.7包组相关指令
//列出已经安装和所有可使用的软件组 [root@x86cloud ~]# yum groups list //安装一整个组的软件 [root@x86cloud ~]# yum groups install Development tools \ Compatibility libraries \ Base Debugging Tools //yum删除包组 [root@x86cloud ~]# yum groups remove -y Base2.8历史记录指令
//查看历史执行yum命令 [root@x86cloud ~]# yum history //查询历史执行yum命令ID详细信息 [root@x86cloud ~]# yum history info N //撤销历史执行过的yum命令 [root@x86cloud ~]# yum history undo N2.9全局配置文件
vim /etc/yum.cnf 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目录
3.YUM缓存相关
//缓存yum源软件仓库, xml元数据文件 [root@x86cloud ~]# yum makecache //缓存软件包, 修改yum全局配置文件 [root@x86cloud ~]# vim /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=1 //启动缓存 //查看缓存的xml文件 [root@x86cloud ~]# ls /var/cache/yum/x86_64/7/base/ //查看缓存软件包路径 [root@x86cloud ~]# /var/cache/yum/x86_64/7/ #另一种缓存rpm包方式 //1.安装插件支持只下载软件包不安装 [root@x86cloud ~]# yum install -y yum-plugin-downloadonly //2.将软件下载至指定目录 [root@x86cloud ~]# yum install httpd -y --downloadonly --downloaddir=/tmp //清除所有yum缓存 [root@x86cloud ~]# yum clean all //只清除缓存的软件包 [root@x86cloud ~]# yum clean packages
4..YUM签名检查机制
rpm软件提供组织redhat在构建rpm包时, 使用其私钥private key对rpm进行签名
客户端在使用rpm为了验证其合法性, 可以使用redhat提供的公钥public key进行签名检查方式1: 指定公钥的位置
[root@x86cloud ~]# 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方式2: 提前导入公钥
[root@x86cloud ~]# 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方式3: 不进行签名验证
//不检查软件包的签名 [root@x86cloud ~]# yum install httpd --nogpgcheck
5.构建企业YUM仓库
本地光盘提供基础软件包Base
yum缓存提供update软件包
yum缓存提供常用软件包:nginx,zabbix,docker,saltstack环境准备
系统 IP 角色 主机名 centos7.4_x86_64 192.168.69.112 yum仓库服务端 yum_server_69_112 centos7.4_x86_64 192.168.69.113 yum仓库客户端 yum_client_69_113 服务端配置
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 all2.提供基础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/centos743.提供第三方源
[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=02.客户端指向本地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劫持使用本地源
echo '172.16.21.200 mirrors.aliyun.com' >>/etc/hosts curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo curl -o /etc/yum.repos.d/epel.repo http://192.168.20.200/repo/epel-7.repo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo cat /etc/yum.repos.d/CentOS-Base.repo yum install openssh-server -y