02.YUM工具管理RPM包

本文介绍了如何使用YUM工具管理RPM包,包括联网和离线环境下创建本地YUM仓库,配置网络YUM源如阿里云镜像,以及YUM的常用命令如搜索、安装、更新和删除软件包。此外,还涉及YUM的缓存管理、签名检查机制以及企业级YUM仓库的构建。

yum是基于RPM包管理, 能够自动解决依赖关系, 极大的方便rpm包的安装升级

1.联网获取软件
2.基于RPM管理
3.自动解决依赖
4.命令简单好记
5.生产最佳实践

  1. 1.YUM软件仓库管理
  2. 1.1本地YUM仓库

    有时候你的linux系统不能联网,当然就不能很便捷的使用联网的yum源了,这时候就需要你自己会利用linux系统光盘制作一个yum源。具体步骤如下:

    1.挂载镜像

    [root@lxgyw ~]# mount /dev/cdrom /mnt

    2.备份原有仓库

    [root@lxgyw ~]# gzip /etc/yum.repos.d/*

    3.创建新仓库文件,并加入如下内容:

    //使用yum-config-manager命令添加本地仓库

    [root@lxgyw ~]# yum-config-manager --add-repo="file:///mnt"

    //手动添加repo配置文件(方式二)

    [root@lxgyw ~]# vim /etc/yum.repos.d/cdrom.repo

    [cdrom]

    name=This is local cdrom

    baseurl=file:///mnt

    enabled=1

    gpgcheck=0

    [] //仓库名称

    name //仓库描述信息

    baseurl //YUMurl地址 ,可以是file:// ftp:// http://

    enabled //是否激活该YUM源(0代表禁用,1代表激活,默认为激活)

    gpgcheck //安装软件时是否检查签名(0代表禁用,1代表激活)

    5.刷新repos生成缓存

    [root@lxgyw ~]# yum makecache

  3. 1.2网络YUM仓库

    官方网络YUM源配置

    阿里镜像站点, 传送门

    // Base/Extras/Updates: 默认国外官方源

    [root@lxgyw ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo \

    http://mirrors.aliyun.com/repo/Centos-7.repo

    EPEL扩展源

    //国外epel源

    [root@lxgyw ~]# yum -y install epel-release

    //阿里云epel源

    [root@lxgyw ~]# wget -O /etc/yum.repos.d/epel.repo \

    http://mirrors.aliyun.com/repo/epel-7.repo

  4. 1.3官方YUM仓库

    Nginx官方源

    //源超找方式基本一致,zabbix,mysql,saltstack,openstack

    [root@lxgyw ~]# vim /etc/yum.repos.d/nginx.repo

    [nginx]

    name=nginx repo

    baseurl=http://nginx.org/packages/centos/7/$basearch/

    gpgcheck=0

    enabled=1

  5. 1.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@lxgyw-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

  6. 2.YUM软件命令管理
  7. 2.1搜索软件包指令

    //列出软件仓库中可用的软件

    [root@lxgyw ~]# yum list

    //进行模糊查找

    [root@lxgyw ~]# yum list|grep ftp

    //列出软件包详情

    [root@lxgyw ~]# yum info ftp

  8. 2.2安装软件包指令

    //安装软件只需要给出软件名称

    [root@lxgyw ~]# yum install traceroute

    //安装过程中分析依赖关系后, 直接安装, 无需交互

    [root@lxgyw ~]# yum install php -y

    //安装本地的rpm包, 如果有依赖关系, 会自动从软件仓库中下载所需依赖(非来自.repo定义的软件仓库)

    [root@lxgyw ~]# yum localinstall /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm

    //安装网络上rpm包

    [root@lxgyw ~]# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

  9. 2.3重装软件包指令

    //检查软件是否存在

    [root@lxgyw ~]# rpm -q vsftpd

    vsftpd-2.2.2-24.el6.x86_64

    //检查vsftpd软件配置文件

    [root@lxgyw ~]# rpm -qc vsftpd

    /etc/logrotate.d/vsftpd

    /etc/pam.d/vsftpd

    /etc/vsftpd/ftpusers

    /etc/vsftpd/user_list

    /etc/vsftpd/vsftpd.conf

    //不小心删除vsftpd配置文件

    [root@lxgyw ~]# rm -f /etc/vsftpd/vsftpd.conf

    //重新安装软件

    [root@lxgyw ~]# yum reinstall vsftpd

    //再次检查

    [root@lxgyw ~]# rpm -qc vsftpd

    /etc/logrotate.d/vsftpd

    /etc/pam.d/vsftpd

    /etc/vsftpd/ftpusers

    /etc/vsftpd/user_list

    /etc/vsftpd/vsftpd.conf

  10. 2.4更新软件包指令

    //对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级

    [root@lxgyw ~]# yum check-update

    //更新软件

    [root@lxgyw ~]# yum update acl -y

  11. 2.5删除软件包指令

    //先安装一个samba软件

    [root@lxgyw ~]# yum install samba -y

    //删除该软件包,不会删除依赖, 但是我们尽可能不要使用删除软件操作

    [root@lxgyw ~]# yum erase samba -y

    [root@lxgyw ~]# yum remove samba -y

  12. 2.6仓库相关指令

    //列出yum源可用的软件仓库

    [root@lxgyw ~]# yum repolist

    //列出全部yum源可用和禁用的仓库

    [root@lxgyw ~]# yum repolist all

    //查看这个文件或命令属于哪个包

    yum provides /etc/my.cnf

    yum provides cd

  13. 2.7缓存相关指令

    //缓存yum源软件仓库, xml元数据文件

    [root@lxgyw ~]# yum makecache

    //缓存软件包, 修改yum全局配置文件

    [root@lxgyw ~]# vim /etc/yum.conf

    [main]

    cachedir=/var/cache/yum/$basearch/$releasever

    keepcache=1//启动缓存

    //查看缓存的xml文件

    [root@lxgyw ~]# ls /var/cache/yum/x86_64/7/base/

    //查看缓存软件包路径

    [root@lxgyw ~]# /var/cache/yum/x86_64/7/

    #另一种缓存rpm包方式

    //1.安装插件支持只下载软件包不安装

    [root@lxgyw ~]# yum install -y yum-plugin-downloadonly

    //2.将软件下载至指定目录

    [root@lxgyw ~]# yum install httpd -y --downloadonly --downloaddir=/tmp

    //清除所有yum缓存

    [root@lxgyw ~]# yum clean all

    //只清除缓存的软件包

    [root@lxgyw ~]# yum clean packages

  14. 2.8包组相关指令

    //列出已经安装和所有可使用的软件组

    [root@lxgyw ~]# yum groups list

    //安装一整个组的软件

    [root@lxgyw ~]# yum groups install Development tools \

    Compatibility libraries \

    Base Debugging Tools

    //yum删除包组

    [root@lxgyw ~]# yum groups remove -y Base

  15. 2.9历史记录指令

    //查看历史执行yum命令

    [root@lxgyw ~]# yum history

    //查询历史执行yum命令ID详细信息

    [root@lxgyw ~]# yum history info N

    //撤销历史执行过的yum命令

    [root@lxgyw ~]# yum history undo N

  16. 2.0全局配置文件

    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目录

  17. 3.YUM签名检查机制

    rpm软件提供组织redhat在构建rpm包时, 使用其私钥private key对 rpm进行签名客户端在使用rpm为了验证其合法性, 可以使用redhat提供的公钥public key进行签名检查

    方式1: 指定公钥的位置

    [root@lxgyw ~]# 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@lxgyw ~]# 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@lxgyw ~]# yum install httpd --nogpgcheck

  18. 4.构建企业YUM仓库

    %title插图%num

    本地光盘提供基础软件包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 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭亚望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值