zoukankan      html  css  js  c++  java
  • 搭建本地YUM仓库

    YUM介绍

      yum(yellow dog updater modified)为多个Linux发行版的软件包管理工具,Redhat RHEL CentOS Fedora YUM主要用于自动安装,升级rpm软件包,它能够自动查找解决rpm包之间的依赖关系。
    YUM自动下载rpm包并安装,类某软件的一键安装。


    YUM源是什么?
      要成功的使用YUM工具安装更新软件或系统,就需要有给一个包含各种rpm软件包的repository(软件仓库)这个软件仓库我们习惯成为yum源。网络上有大量的yum源,但是由于受到网络环境的限制,导致软件安装耗时过长甚至失败。特别是当有大量服务器大量软件包需要更新安装时,因此优化系统时候我们都更换国内的源。相比较而言,本地yum源服务器最大的优点是局域网的快速网络连接和稳定性。有了局域网中的YUM源服务器,即便在internet中断的情况下,也不会影响其他YUM客户端的软件安装和升级。

    YUM源工作原理

    1.yum -y install httpd
    2.查找yum配置文件CentOS-Base.repo这个里面有下载地址
    3.CentOS系统默认到国外的软件仓库下载rpm软件包
    4.但国外的源比较慢因此系统优化时换成阿里云的源
    5.但是还是觉得阿里云的源不快,因此搭建内网的yum源,公网的和自己做的rpm都可以放进去

    说明:更换yum源实质就是更换下载地址

    配置本地YUM仓库

    安装createrepo软件
    yum -y install createrepo
    echo '192.168.1.100 mirrors.liuliya.com' >>/etc/host #提前验证内网YUM源
    创建yum仓库的目录

    mkdir -p /application/yum/centos6/x86_64/
    cd /application/yum/centos6/x86_64/

    rz #上传包到此目录,此目录下还可以包括文件夹
    获取rpm软件包的方法

    1.自己制作的rpm包
    2. yumdownloader pcre-devel openssl-devel  #只下载不安装
    3.平时yum安装软件时不删除安装包

    #cat /etc/yum.conf
    keepalived=1

    #安装包存储目录
    cachedir=/var/cache/yum/$basearch/$releasever
    #/var/cache/yum/x86_64/base/packages

    初始化repodata索引文件
    #初始化
    createrepo -pdo /application/yum/centos6/x86_64/ /application/yum/centos6/x86_64/
    #每加入一个rpm包就要更新一下
    createrepo --update /application/yum/centos6/x86_64/
    提供yum服务
    #可以用apache或者nginx提供web服务,但用Python的http模块更简单,适用于内网环境
    注意:先把Nginx关闭防止80端口冲突

    cd /application/yum/centos6/x86_64/
    python -m SimpleHTTPServer 80 &>/dev/null &

    可以通过游览器输入本机IP查看
    客户端的配置

    cd /etc/yum.repos.d
    mkdir yum_bak && mv *repo yum_bak
    vim liuliya.repo
    [liuliya]
    name=server
    baseurl=http://192.168.1.100
    enable=1
    gpgcheck=0
    

    yum clean all #清空本机已有yum缓存
    yum list   #列表显示yum仓库
    小技巧:
    上面展示的需要新建一个文件,也许工作中有更多的配置,如果手动配置比较麻烦,因此有一种更简单的方法,将这些操作做成rpm包
    fpm -s dir -t rpm -n liuliya_repo -v 1.0 --post-install /server/scripts/liuliya_rpm.sh -f /etc/yum.repos.d/liuliya.repo
    liuliya_rpm.sh脚本主要是刚才我们的一些操作。

    yum 本地安装nginx

    接前面文章定制的nginx rpm包
    yum install nginx
    安装完成后我们来验证下:
    cd /application/
    ll -h

    显示
    nign -> /application/nginx-1.6.3/
    nginx-1.6.3

    #查看下id nginx
    id nginx
    uid=500(nginx) gid=500(nginx) group=500(nginx)

    说明本地yum安装nginx成功
    #卸载软件使用rpm -e 软件名
    yum配置文件简介说明及命令介绍
    cat /etc/yum.conf

    [main]
    cachedir=/var/cache/yum/$basearch/$releasever   #yum缓存的目录,存储下载的rpm包和数据库
    keepcache=0  #安装完成后是否保留软件包,0为不保留(默认为0)1为 保留
    debuglevel=2  #Debug信息输出等级,范围为0-10缺省为2
    logfile=/var/log/yum.log  #日志文件位置
    exactarch=1  #有1和0两个选项,设置为1则yum只会安装和系统架构匹配的软件包
    obsoletes=1  #update的参数相当于upgrade允许更新陈旧的RPM包;有2个选项1和0分别表示首是否进行gpg校验以确定每个rpm的来源是有效和安全的。这个选项如果设置在[main]部分则对每个repository都有效,默认为0
    gpgcheck=1
    plugins=1  #是否启动插件,默认1为允许,0表示不允许
    installonly_limit=5
    bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum
    distroverpkg=centos-release  #指定一个软件包,yum会根据这个包判断发行版本
    

    yum命令用法
    #安装软件包
    yum install httpd
    yum -y install httpd

    #列出软件包,使用list函数,可以搜索带名称的指定软件包
    yun list httpd
    #搜索软件包
    yum search http
    #查找某个特定文件属于哪个软件包
    yum provides /etc/my.cnf
    #列出所有可用的群组
    yum grouplist
    #安装群组软件包
    yum groupinstall 'MySQL Database'
    #列出启动的软件库
    yum repolist
    #安装来自特定软件的软件包
    yum --enablerepo=local --disablerepo=base,extras,updates install LNMP
    #清理yum缓存内容
    yum clean all
    #查看yum历史记录
    yum history
    镜像同步公网yum源
    上游yum源必须要支持rsync协议,否则不能使用rsync进行同步
    http://mirrors.ustc.edu.cn/status/
    #CentOS官方标准源:
    rsync://mirrors.ustc.edu.cn/centos/
    #epel源
    rsync://mirrors.ustc.edu.cn/epel/
    #使用rsync同步yum源,为了节省带宽,磁盘和下载时间,这里列举仅同步CentOS6的rpm包,这样所有的rpm包,只占用了21G,全部同步需要300G左右
    #同步base源,小技巧我们安装系统的关盘含有部分rpm包,大概3G,这些不用重新下载

    /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x_86_64/
    /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extra/x86_64/ /data/yum_data/centos/6/extra/x_86_64/
    /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/update/x86_64/ /data/yum_data/centos/6/update/x_86_64/
    

    #epel源
    /usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/centos/epel/6/x_86_64/
    下载命令
    有些镜像源不支持Rsync协议,比如阿里云、Zabbix官方源
    解决办法:
    wget -r -p -np -k http://repo.zabbix.com/non-supported/rhel/6/x86_64/

  • 相关阅读:
    Deployment.yaml文件
    Python 闭包
    github使用方法(一)
    7.Python 正则表达式学习笔记
    kindle网络爬虫续集
    windows下如何快速搭建web.py开发框架
    Python强大的自省简析
    11--Python 备份文件程序
    10- python 网络爬虫分析
    Python基础学习7---异常处理
  • 原文地址:https://www.cnblogs.com/flytor/p/11415049.html
Copyright © 2011-2022 走看看