zoukankan      html  css  js  c++  java
  • Linux系统之YUM

    02 YUM工具管理RPM包

    1.YUM软件仓库管理

    yum是基于RPM包管理,yum最大的优势在于联网下载所需要的rpm包,也能够从指定的服务器下载RPM包安装,同时能够自动处理依赖性关系,并且一次安装所有依赖的软件包,无需繁琐地一次次下载、安装。
    yum提供了查询、安装、删除某一个、一组甚至全部软件包的命令,而且命令简介又好记忆。yum安装才是真正的生产最佳实践

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

    1.1YUM全局配置

    #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
    distroverpkg=centos-release
    

    1.2本地光驱YUM源配置

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

    1.挂载镜像

    mount /dev/cdrom  /mnt/
    

    2.备份原有的仓库

    cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
    

    3.删除仓库内所有源

    rm -rf /etc/yum.repos.d/*
    

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

    # vim /etc/yum.repos.d/cdrom.repo
    [repo_dev]
    name=Local_centos
    baseurl=file:#/mnt
    enabled=1
    gpgcheck=0
    
    []          #仓库名称 
    name        #仓库描述信息
    baseurl     #YUM源url地址 ,可以是file:# ftp:# http:# 
    enabled     #是否激活该YUM源(0代表禁⽤,1代表激活,默认为激活) 
    gpgcheck    #安装软件时是否检查签名(0代表禁⽤,1代表激活)
    

    5.刷新repos⽣成缓存

    yum makecache
    

    1.3网络YUM源配置

    官⽅⽹络YUM源配置
    阿里镜像站,传送门

    基本源:Base
    扩展源:epel
    官方源:nginx、zabbix ...

    Base基本源

    // Base/Extras/Updates: 系统默认国外官⽅源 
    [root@xmh ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo 
    xmhhttp:#mirrors.aliyun.com/repo/Centos-7.repo
    

    EPEL扩展源

    //国外epel源 
    [root@xmh ~]# yum -y install epel-release
    
    //阿⾥云epel源 
    [root@xmh ~]# wget -O /etc/yum.repos.d/epel.repo  
    http:#mirrors.aliyun.com/repo/epel-7.repo
    

    官方源
    1.编辑repo文件添加Nginxrepo源

    //所有源的查找⽅式基本⼀致,zabbix,mysql,saltstack,openstack
    [root@xmh ~]# vim /etc/yum.repos.d/nginx.repo 
    [nginx] 
    name=nginx repo 
    baseurl=http:#nginx.org/packages/centos/7/$basearch/ 
    gpgcheck=0 
    enabled=1
    

    2.使用rpm方式安装Zabbix的repo源

    https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
    
    //使用rpm安装会自动将安装包中的已打包好的zabbix的repo文件进行安装
    

    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-161.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-50.el7.noarch.rpm
    wget https:#mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-updateonboot-1.1.31-50.el7.noarch.rpm
    wget https:#mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-50.el7.noarch.rpm
    
    #如果没有wget命令则使⽤curl命令
    curl -o yum-3.4.3-161.el7.centos.noarch.rpm https:#mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-3.4.3-161.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-50.el7.noarch.rpm https:#mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm
    curl -o yum-updateonboot-1.1.31-50.el7.noarch.rpm https:#mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-updateonboot-1.1.31-50.el7.noarch.rpm
    curl -o yum-utils-1.1.31-50.el7.noarch.rpm https:#mirrors.aliyun.com/centos/7/os/x86_64/Packages/yum-utils-1.1.31-50.el7.noarch.rpm
    
    3.安装所有相关组件
    [root@xmh ~]# rpm -ivh *.rpm
    
    4.下载base和epel仓库 
    //base源,来自阿里云
    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
    
    //epel源,来自阿里云
    wget -O /etc/yum.repos.d/epel.repo http:#mirrors.aliyun.com/repo/epel-7.repo
    
    5.刷新repos⽣成缓存
    yum makecache
    

    2.YUM软件命令管理

    2.1搜索软件包指令

    //列出软件仓库中可⽤的软件 
    [root@xmh ~]# yum list
    
    //进⾏模糊查找 
    [root@xmh ~]# yum list|grep ftp
    
    //列出软件包详情 
    [root@xmh ~]# yum info ftp 
    

    2.2安装软件包指令

    //安装软件只需要给出软件名称 
    [root@xmh ~]# yum install traceroute
    
    //安装过程中分析依赖关系后,直接安装,⽆需交互 
    [root@xmh ~]# yum install php -y
    
    //安装本地的rpm包, 如果有依赖关系, 会⾃动从软件仓库中下载所需依赖(⾮来⾃.repo定义的软件仓库) 
    [root@xmh ~]# yum localinstall /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
    
    //安装⽹络上rpm包 
    [root@xmh ~]# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
    

    2.3重装软件包指令

    //检查软件是否存在 
    [root@xmh ~]# rpm -q vsftpd 
    vsftpd-2.2.2-24.el6.x86_64
    
    //检查vsftpd软件配置⽂件 
    [root@xmh ~]# rpm -qc vsftpd 
    /etc/logrotate.d/vsftpd 
    /etc/pam.d/vsftpd 
    /etc/vsftpd/ftpusers 
    /etc/vsftpd/user_list 
    /etc/vsftpd/vsftpd.conf
    
    //不⼩⼼删除vsftpd配置⽂件 
    [root@xmh ~]# rm -f /etc/vsftpd/vsftpd.conf
    
    //重新安装软件 
    [root@xmh ~]# yum reinstall vsftpd
    
    //再次检查 
    [root@xmh ~]# rpm -qc vsftpd 
    /etc/logrotate.d/vsftpd 
    /etc/pam.d/vsftpd 
    /etc/vsftpd/ftpusers 
    /etc/vsftpd/user_list 
    /etc/vsftpd/vsftpd.conf
    

    2.4更新软件包指令

    //对⽐Linux已安装的软件和yum仓库中的软件, 有哪些需要升级 
    [root@xmh ~]# yum check-update
    
    //更新软件(不建议) 
    [root@xmh ~]#yum update acl -y
    

    2.5删除软件包指令

    //先安装⼀个samba软件 
    [root@xmh ~]# yum install samba -y
    
    //删除该软件包, 不会删除依赖, 但是我们尽可能不要使⽤删除软件操作 
    [root@xmh ~]# yum erase samba -y 
    [root@xmh ~]# yum remove samba -y
    

    2.6仓库相关指令

    //列出yum源可⽤的软件仓库 
    [root@xmh ~]# yum repolist
    
    //列出全部yum源可⽤和禁⽤的仓库 
    [root@xmh ~]# yum repolist all
    
    //查看这个⽂件或命令属于哪个包 yum provides
    /etc/my.cnf yum provides cd
    

    2.7缓存相关指令

    //缓存yum源软件仓库, xml元数据⽂件 
    [root@xmh ~]# yum makecache
    
    //缓存软件包, 修改yum全局配置⽂件 
    [root@xmh ~]# vim /etc/yum.conf 
    [main] 
    cachedir=/var/cache/yum/$basearch/$releasever 
    keepcache=1 #启动缓存 
    
    //查看缓存的xml⽂件 
    [root@xmh ~]# ls /var/cache/yum/x86_64/7/base/ 
    
    //查看缓存软件包路径 
    [root@xmh ~]# /var/cache/yum/x86_64/7/
    
    //另⼀种缓存rpm包⽅式 
    
    //1.安装插件⽀持只下载软件包不安装 
    [root@xmh ~]# yum install -y yum-plugin-downloadonly 
    
    //2.将软件下载⾄指定⽬录 (系统已安装的包则无法下载)
    [root@xmh ~]# yum install httpd -y --downloadonly --downloaddir=/tmp
    
    //清除所有yum缓存 
    [root@xmh ~]# yum clean all 
    
    //只清除缓存的软件包 
    [root@xmh ~]# yum clean packages
    

    2.8包组相关指令

    //列出已经安装和所有可使⽤的软件组 
    [root@xmh ~]# yum groups list
    
    //安装⼀整个组的软件 
    [root@xmh ~]# yum groups install Development tools  
    Compatibility libraries  
    Base Debugging Tools
    
    //yum删除包组
    [root@xmh ~]# yum groups remove-y Base
    

    2.9历史记录指令

    //查看历史执⾏yum命令 
    [root@xmh ~]# yum history
    
    //查询历史执⾏yum命令ID详细信息 
    [root@xmh ~]# yum history info N
    
    //撤销历史执⾏过的yum命令 
    [root@xmh ~]# yum history undo N
    

    3.构建yum仓库

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

    环境准备

    系统 IP 角色 主机名
    centos7.4 10.0.0.171 yum仓库服务端 yum_server_171
    centos7.4 10.0.0.172 yum仓库服务端 yum_client_172

    服务端配置
    1.基础环境准备

    //关闭防⽕墙
    [root@yum_server_171 ~]# systemctl stop firewalld
    
    //临时关闭selinux
    [root@yum_server_171 ~]# setenforce 0
    
    //安装ftp服务,启动并加⼊开机启动
    [root@yum_server_171 ~]# yum  install vsftpd -y
    [root@yum_server_171 ~]# systemctl start vsftpd
    [root@yum_server_171 ~]# systemctl enable vsftpd
    
    //开启yum缓存功能
    [root@yum_server_171 ~]# vim /etc/yum.conf
    [main]
    cachedir=/var/cache/yum/$basearch/$releasever
    keepcache=1
    debuglevel=2
    
    [root@yum_server_171 ~]# yum clean all
    

    2.提供基础base

    //创建一个用于存放基础base的rpm包目录
    [root@yum_server_171 ~]# mkdir /var/ftp/{centos69,centos74} -p
    
    //挂载IOS镜像并拷贝该镜像中的rpm包至存放目录
    [root@yum_server_171 ~]# mount /dev/cdrom /mnt 
    [root@yum_server_171 ~]# cp -rp /mnt/Packages/*.rpm /var/ftp/centos74/
    

    3.提供第三⽅源

    //创建一个用于存放第三放源的rom包目录
    [root@yum_server_171 ~]# mkdir /var/ftp/ops 
    
    //下载第三方rpm包
    [root@yum_server_171 ~]# yum -y install nginx docker zabbix-agent  zabbix-server-mysql salt-mastet salt-minion 
    
    //复制已缓存的 Nginx docker 及依赖包等,到⾃定义 YUM 仓库⽬录中 
    [root@yum_server_171 ~]# find /var/cache/yum/x86_64/7/ -iname "*.rpm" -exec cp -rf {} /var/ftp/ops/ ;
    

    4.安装createrepo并创建repo仓库

    //安装createrepo 
    [root@yum_server_171 ~]# yum -y install createrepo 
    
    //⽣成仓库信息 
    [root@yum_server_171 ~]# createrepo /var/ftp/ops
    [root@yum_server_171 ~]# createrepo /var/ftp/centos74
    
    注意: 如果此仓库每次新增软件包则需要重新⽣成⼀次
    

    5.在浏览器输入ftp://10.0.0.171/,可访问到ftp的内容(根据实际地址为准)

    客户端使⽤yum源
    1.备份原有仓库

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

    2.配置并使⽤base基础源

    [root@yum_client_172 ~]# vim /etc/yum.repos.d/centos7.repo
    [centos74] 
    name=centos74_base 
    baseurl=ftp://10.0.0.171/centos74 
    gpgcheck=0
    

    3.客户端指向本地ops

    [root@yum_client_172 ~]# vim /etc/yum.repos.d/ops.repo
    [ops]
    name=ops_repo
    baseurl=ftp://10.0.0.171/ops
    gpgcheck=0
    

    4.客户端yum安装

    [root@yum_client_172 ~]# yum install salt-minion -y
    
  • 相关阅读:
    windows phone 网络开发三部曲(一)各种包的各种抓法
    Windows phone UI虚拟化和数据虚拟化(二)
    Windows phone UI虚拟化和数据虚拟化(一)
    LongListSelector 控件 在 wp7 和wp8中的不同之处
    wp8 longlistselector 动态加载datatemplate
    解读Python发送邮件
    浅谈Python时间模块
    中文分词技术一:概念
    MySQL常用命令
    初步认识Hive
  • 原文地址:https://www.cnblogs.com/jasonminghao/p/12310392.html
Copyright © 2011-2022 走看看