`

yum 本地仓库创建与发布脚本

阅读更多

为了在隔绝外网的环境下安装包,需要先用yum 先下载包,然后再创建出一个本地yum仓库,最后加到yum的配置中.

下载包

 yum install --downloadonly --downloaddir=path/of/local wget git 
#需要注意一点,如果包已经安装了,这步是下载不了的。

创建本地仓库

创建仓库,需要一个小工具:createrepo

rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
createrepo  /path/of/localrepo

发布仓库

发布仓库,就是加一个配置文件到 /etc/yum.repos.d/下,文件内容如下

 

#注意 gpgcheck 要为0
#enable 要为1
[my-media]
name=CentOS-$releasever - myrepo
baseurl=file:///path/of/localrepo
gpgcheck=0
enabled=1

同时,还要将 /etc/yum.repos.d/CentOS.repo , /etc/yum.repos.d/epel.repo 移除,否则可能安装时找不到本地包。 

做完以上步骤,就可以愉快的使用  yum install 了。 

 

完整工具脚本

为了方便使用,制作了以下脚本,使用时

    

#下载
bash mkrepo.sh download wget git nginx
#创建仓库
bash mkrepo.sh init
#发布仓库
#把上述目录 ,打包,复制到目标机器上,开始发布
bash mkrepo.sh publish
#清除仓库
bash mkrepo.sh unpublis

 

 

 

 mkrepo.sh脚本

#!/usr/bin/env bash
basedir=$(dirname $0)
cd ${basedir}
x=file://$(pwd)
DIR="${x//\//\/}"
case "$1" in
   "download" )
      str=""
      for ((i=2;i<=$#;i++))
      do
        echo ${!i}
        str="$str ${!i}"
      done
      if [ -z "$str" ]; then
         echo "no pakages specified";
         exit 1;
      fi
      yum install --downloadonly --downloaddir=$(pwd) $str
   ;;
   "init" )
      rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
      rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
      rpm -ivh libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
      rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
      createrepo  $(pwd)

      rpm -e createrepo-0.9.9-28.el7.noarch
      rpm -e libxml2-python-2.9.1-6.el7_2.3.x86_64
      rpm -e python-deltarpm-3.6-3.el7.x86_64
      rpm -e deltarpm-3.6-3.el7.x86_64
   ;;
   "publish" )
     sed -r "s/^baseurl.*$/baseurl=$DIR/" zc.repo > /etc/yum.repos.d/zc.repo
      mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
      mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.bak
    ;;
   "unpublish" )
      rm /etc/yum.repos.d/zc.repo
      mv /etc/yum.repos.d/CentOS-Base.repo.bak /etc/yum.repos.d/CentOS-Base.repo
      mv /etc/yum.repos.d/epel.repo.bak /etc/yum.repos.d/epel.repo
    ;;
    * )
      echo "Usage:"
      echo "  bash $basedir/$0 command <params>"
      echo "commands include: "
      echo "  download  pakagenames.  names seperated by blankspace"
      echo "  init , create a local rpm repo"
      echo "  publish, add this repo to rpm repos"
      echo "  unpublist, remove this repo from rpm repos"

    ;;
esac

 

 

分享到:
评论

相关推荐

    shell脚本:一键配置本地yum源仓库

    #描述:一键配置本地yum源仓库 echo [正在检测是否挂载磁盘----------] mount /dev/cdrom /mnt &&gt; /dev/null cd /mnt/Packages/ if [ $? -eq 0 ] then echo 已将系统安装光盘挂载至/mnt目录下 cp -rf /etc/yum....

    本地yum源快速生成脚本

    ### 本地YUM源快速生成脚本解析与应用 #### 背景介绍 在Linux环境中,YUM(Yellowdog Updater Modified)是一款强大的包管理工具,它通过配置的仓库来帮助用户安装、更新或卸载软件包。然而,在网络环境受限的情况...

    Centos7.4离线本地yum源自动化安装CDH5.13.0脚本

    - **配置YUM源**:设置本地YUM源,确保可以从本地仓库获取所需的软件包。 3. **安装过程**: - **下载安装包**:从CDH官方或其他可信源下载所需的安装包,并放置于本地YUM源目录下。 - **安装CDH组件**:使用...

    CentOS7.2部署本地Yum仓库

    这个过程包括清除Yum的缓存,并重新生成缓存以确保Yum能够识别并使用新创建的本地仓库。 为了确保本地Yum仓库的内容能够及时更新,我们需要建立一个定期同步的脚本。这个脚本可以设置为定时任务,例如每周六凌晨...

    yum 本地库离线安装

    总结一下,"yum 本地库离线安装"是Linux环境中解决网络限制的一种实用方法,涉及到的主要知识点包括Yum的工作原理、创建和配置本地仓库、使用Yum离线安装软件以及自动化安装工具如`expect`的使用。通过这些步骤,...

    linux通过挂载系统光盘搭建本地yum仓库的方法

    完成上述步骤后,我们可以使用yum命令来验证本地仓库是否已经设置成功。运行以下命令: ```bash [root@localhost /]# yum list ``` 如果一切正常,yum将会列出光盘中可用的软件包列表。由于光盘容量有限,...

    yum安装包文件

    链接中的教程文章《YUM安装与使用详解》(http://blog.csdn.net/qq_23994787/article/details/78611751)可能会更详细地介绍如何设置和使用YUM,包括如何配置本地或远程仓库,如何创建自定义的YUM仓库,以及如何处理...

    Yum Repo Sync-开源

    3. 本地仓库创建:首次运行Yum Repo Sync时,它会在本地创建一个结构与远程仓库相同的目录结构,随后将远程仓库的软件包和相关元数据复制过来,形成一个完整的本地YUM仓库。 二、使用Yum Repo Sync的优势 1. 提高...

    How To Set Up A Local Yum Repository On Fedora 8

    本教程将详细指导你创建一个针对Fedora 8的本地Yum镜像仓库。 1. 预备说明 教程中假设你的主机名为`server1.example.com`,IP地址为`192.168.0.100`,这可能与你的实际环境不同,所以在执行步骤时需要根据实际情况...

    Python脚本.docx

    `yum()`函数包含了创建本地YUM仓库的步骤,包括挂载光盘,清除已有repo文件,创建新的repo配置,并设置baseurl指向挂载的光盘路径。最后,`fab`命令被用来执行这个任务,这表明了`Fabric`的命令行接口。 其次,我们...

    Homebrew 国内安装脚本,快速部署 brew ,国内镜像

    1. **创建安装脚本**:首先,我们可以创建一个包含国内镜像源的安装脚本,例如 `install_homebrew.sh`。 2. **修改安装源**:在脚本中,我们需要替换默认的 Homebrew 安装源为国内镜像,如阿里云或清华大学的镜像源...

    在离线方式下利用YUM工具在IBM i上安装开源软件包.docx

    2. 在IBM i系统中执行以下命令以运行Bootstrap脚本,创建YUM环境,日志将记录在`/tmp/bootstrap.log`中。 一旦YUM环境准备就绪,创建伪本地repo资源镜像: 1. 下载`ibm.repo`文件并将其上传到`/QOpenSys/etc/yum/...

    shell脚本应用一扩展笔记

    此外,还将介绍如何快速构建本地YUM安装仓库以及如何备份MySQL数据库。 首先,让我们来看看Shell脚本中的数字运算: 1. `expr`命令:这是Linux下用于整数运算的命令,支持加法、减法、乘法和除法运算。例如: - ...

    yum install httpd

    4. **安装软件包**:下载完成后,YUM会安装这些包,通常包括复制文件到系统目录,创建启动脚本等。 5. **配置服务**:安装完成后,Apache HTTP Server通常会被配置为开机启动服务,可以通过`systemctl start httpd`...

    RHCE阶段笔记.pdf

    本笔记主要涵盖了RHCE认证考试的 Shell脚本编程章节,涵盖了Shell语言概述、Shell脚本组成、如何写好一个Shell脚本、编写第一个脚本、编写创建用户脚本、编写批量查看系统信息脚本、编写搭建本地软件仓库的脚本等...

    linux 安装svn并实现本地同步服务器

    本文将指导读者在 Linux 环境下安装 SVN(Subversion),并使用钩子脚本实现本地提交后自动同步代码文件到服务器的网站目录下。 安装 SVN 首先,使用 yum 命令安装 SVN: `yum install subversion` 安装完成后,...

    Centos 7环境开发者环境初始化脚本

    初始化脚本会安装Maven,并配置其全局设置,如本地仓库路径和全局属性。 3. **MySQL**:MySQL是一个流行的开源关系型数据库管理系统,适用于各种规模的应用。初始化脚本将安装MySQL服务器,配置必要的安全选项,...

    CentOS本地源和WebLogic安装配置.zip

    这可以是通过下载官方的ISO镜像文件,然后挂载为本地目录,或者创建一个本地的yum仓库。具体步骤包括: 1. 下载CentOS的ISO镜像,并使用`mount`命令将其挂载到一个目录。 2. 配置yum源的配置文件,例如在`/etc/yum....

    hdp-vagrant-local-repo:使用Vagrant的Hortonworks Data Platform(HDP)的本地YUM存储库

    3. **创建本地YUM仓库**:在虚拟机内部,你需要创建一个YUM仓库目录,将共享的HDP软件包复制进去。通常会使用`createrepo`命令来生成必要的元数据,使得YUM能正确识别这些软件包。 4. **配置YUM源**:更新虚拟机的...

Global site tag (gtag.js) - Google Analytics