搭建离线yum源仓库

一、背景

项目安装部署过程中,有很多包需要在线下载,但又是网络是隔离的,无法连接外网。搭建一个本地yum源或者局域网yum源,用于离线安装。

二、下载rpm包

在一台可以联外网linux服务器上下载所需rpm包,生成仓库清单,并打包

cat download_rpm.sh


#!/bin/bash

yum -y install createrepo yum-utils

yum install --downloadonly unixODBC-devel --downloaddir=/root/yum/
yum install --downloadonly unixODBC --downloaddir=/root/yum/
yum install --downloadonly vim --downloaddir=/root/yum/
yum install --downloadonly epel-release --downloaddir=/root/yum/
yum install --downloadonly traceroute --downloaddir=/root/yum/
yum install --downloadonly tree --downloaddir=/root/yum/
yum install --downloadonly telnet* --downloaddir=/root/yum/
yum install --downloadonly unzip zip --downloaddir=/root/yum/
yum install --downloadonly pcre pcre-devel --downloaddir=/root/yum/
yum install --downloadonly bc blas --downloaddir=/root/yum/
yum install --downloadonly lrzsz --downloaddir=/root/yum/
yum install --downloadonly wireshark --downloaddir=/root/yum/
yum install --downloadonly openssl openssl-devel --downloaddir=/root/yum/
yum install --downloadonly ntpdate --downloaddir=/root/yum/
yum install --downloadonly ntp --downloaddir=/root/yum/
yum install --downloadonly lynx --downloaddir=/root/yum/
yum install --downloadonly lsof --downloaddir=/root/yum/
yum install --downloadonly bind-utils --downloaddir=/root/yum/
yum install --downloadonly perl gcc gcc-c++ make cmake kernel kernel-headers kernel-devel --downloaddir=/root/yum/
yum install --downloadonly flex bison ncurses libncurses-dev ncurses-devel libmicrohttpd --downloaddir=/root/yum/
yum install --downloadonly binutils* --downloaddir=/root/yum/
yum install --downloadonly compat-libcap1* --downloaddir=/root/yum/
yum install --downloadonly compat-libstdc++* --downloaddir=/root/yum/
yum install --downloadonly glibc* --downloaddir=/root/yum/
yum install --downloadonly glibc-devel* --downloaddir=/root/yum/
yum install --downloadonly ksh* libaio* --downloaddir=/root/yum/
yum install --downloadonly libaio-devel* --downloaddir=/root/yum/
yum install --downloadonly libgcc* --downloaddir=/root/yum/
yum install --downloadonly libstdc++* --downloaddir=/root/yum/
yum install --downloadonly libstdc++-devel* --downloaddir=/root/yum/
yum install --downloadonly libXi* --downloaddir=/root/yum/
yum install --downloadonly libXtst* --downloaddir=/root/yum/
yum install --downloadonly sysstat* --downloaddir=/root/yum/
yum install --downloadonly elfutils* --downloaddir=/root/yum/
yum install --downloadonly binutils --downloaddir=/root/yum/
yum install --downloadonly glibc*.i686 --downloaddir=/root/yum/
yum install --downloadonly glibc-devel --downloaddir=/root/yum/
yum install --downloadonly glibc-devel*.i686 --downloaddir=/root/yum/
yum install --downloadonly compat-libcap1 --downloaddir=/root/yum/
yum install --downloadonly compat-libstdc++-33 --downloaddir=/root/yum/
yum install --downloadonly compat-libstdc++-33*i686 --downloaddir=/root/yum/
yum install --downloadonly compat-libstdc++-33*.devel --downloaddir=/root/yum/
yum install --downloadonly compat-libstdc++-33 --downloaddir=/root/yum/
yum install --downloadonly compat-libstdc++-33*.devel --downloaddir=/root/yum/
yum install --downloadonly libaio*.i686 --downloaddir=/root/yum/
yum install --downloadonly libaio-devel --downloaddir=/root/yum/
yum install --downloadonly libaio-devel*.devel --downloaddir=/root/yum/
yum install --downloadonly libgcc --downloaddir=/root/yum/
yum install --downloadonly libgcc*.i686 --downloaddir=/root/yum/
yum install --downloadonly libstdc++ --downloaddir=/root/yum/
yum install --downloadonly libstdc++*.i686 --downloaddir=/root/yum/
yum install --downloadonly libstdc++-devel --downloaddir=/root/yum/
yum install --downloadonly libstdc++-devel*.devel --downloaddir=/root/yum/
yum install --downloadonly libXi --downloaddir=/root/yum/
yum install --downloadonly libXi*.i686 --downloaddir=/root/yum/
yum install --downloadonly libXtst --downloaddir=/root/yum/
yum install --downloadonly libXtst*.i686 --downloaddir=/root/yum/
yum install --downloadonly sysstat --downloaddir=/root/yum/
yum install --downloadonly libtool-ltdl --downloaddir=/root/yum/
yum install --downloadonly libtool-ltdl-devel gdb --downloaddir=/root/yum/
yum install --downloadonly libXp* --downloaddir=/root/yum/
yum install --downloadonly libgthost --downloaddir=/root/yum/
yum install --downloadonly psmisc --downloaddir=/root/yum/
yum install --downloadonly zlib zlib-devel --downloaddir=/root/yum/
yum install --downloadonly net-tools.x86_64 --downloaddir=/root/yum/
# 如果是系统已经安装过的包,则使用yumdownloader命令
# yumdownloader ftp --destdir=/root/yum/


#生成rpm仓库清单文件
cd ~
creatrepo  -v  yum  
tar -zcf  yum.tar.gz  yum  

三、搭建本地yum源

将离线rpm压缩包下载拷贝到离线环境,在rpm压缩包所在路径创建install_localrepo.sh

cat install_localrepo.sh


#!/bin/bash

parent_path="$( cd "$(dirname "$0")"; pwd -P )"

cd "$parent_path"
rm -rf /tmp/yum
tar -zxf yum.tar.gz -C /tmp
cd /etc/yum.repos.d/
mkdir /etc/yum.repos.d/bak
mv *.repo bak/

echo "
[YUM]
name=yum
baseurl=file:///tmp/yum
enable=1
gpgcheck=0 " > /etc/yum.repos.d/yum.repo

yum clean all
yum makecache

四、使用完毕后,如果不需要本地仓库

cd /etc/yum.repos.d/bak
mv *.repo ../
rm -rf  /etc/yum.repos.d/yum.repo
rm -rf  /tmp/yum

五、搭建局域网yum,供整个局域网离线机器使用

在局域网中找一台机器作为主机,将离线rpm压缩包下载拷贝到主机,在rpm压缩包所在路径创建intall_httprepo.sh

cat intall_httprepo.sh

#!/bin/bash

parent_path="$( cd "$(dirname "$0")"; pwd -P )"

cd "$parent_path"
rm -rf /tmp/yum
tar -zxf yum.tar.gz -C /tmp
cd /tmp/
nohup python -m SimpleHTTPServer 8000 > /tmp/SimpleHTTPServer.log 2>&1  &
cd /etc/yum.repos.d/
mkdir /etc/yum.repos.d/bak
mv *.repo bak/

echo "
[YUM]
name=yum
baseurl=http://10.0.43.17:8000/yum
enable=1
gpgcheck=0 " > /etc/yum.repos.d/yum.repo

yum clean all
yum makecache

在局域网其他机器创建intall_httprepo.sh

cat intall_otherrepo.sh

#!/bin/bash
cd /etc/yum.repos.d/
mkdir /etc/yum.repos.d/bak
mv *.repo bak/

echo "
[YUM]
name=yum
baseurl=http://10.0.43.17:8000/yum
enable=1
gpgcheck=0 " > /etc/yum.repos.d/yum.repo

yum clean all
yum makecache

注: 其他机器和搭建局域网yum源的机器8000端口要通

猜你喜欢

转载自blog.csdn.net/weixin_44021220/article/details/129584769