1、先要有一台能够联网的服务器,这里我们使用CentOS-7.x系统
2、配置yum文件,设置install安装时自动将rpm包保存到本地
vi /etc/yum.conf
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=1(0:不下载 ,1:下载至本地 ),需要改成1
:wq! #保存退出
3、设置好之后,我们执行软件包安装
#比如我们需要安装编译nginx的依赖包
yum install make gcc gcc-c++ perl zlib-devel
4、安装完成后,我们去这个路径下,就可以看到该install安装的rpm包都被保存到该目录下。
注意:有3个目录下面的rpm包都需要拷贝
cd /var/cache/yum/x86_64/7/base/packages
cd /var/cache/yum/x86_64/7/extras/packages
cd /var/cache/yum/x86_64/7/updates/packages
5、拷贝rpm包
#创建本地rpm包存放目录
mkdir -p /data/yum/x86_64/7/base/packages
mkdir -p /data/yum/x86_64/7/extras/packages
mkdir -p /data/yum/x86_64/7/updates/packages
mv /var/cache/yum/x86_64/7/base/packages/* /data/yum/x86_64/7/base/packages
mv /var/cache/yum/x86_64/7/extras/packages/* /data/yum/x86_64/7/extras/packages
mv /var/cache/yum/x86_64/7/updates/packages/* /data/yum/x86_64/7/updates/packages
6、制作离线源
#安装createrepo
yum install createrepo
#rpm安装
rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh libxml2-2.9.1-6.el7_9.6.x86_64.rpm --nodeps
rpm -ivh libxml2-python-2.9.1-6.el7_9.6.x86_64.rpm --nodeps
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm --nodeps
#生成repodata文件
createrepo /data/yum/x86_64/7/base/packages
createrepo /data/yum/x86_64/7/extras/packages
createrepo /data/yum/x86_64/7/updates/packages
#有新添加的rpm包,需要运行
createrepo --update /data/yum/x86_64/7/base/packages
createrepo --update /data/yum/x86_64/7/extras/packages
createrepo --update /data/yum/x86_64/7/updates/packages
#压缩
cd /data
tar -zcvf yum.tar.gz yum
#下载离线包yum.tar.gz上传到需要安装的服务器上
7、使用离线源
#在一台不能联网的服务器上操作
#上传制作好的yum.tar.gz文件并解压到/data目录
mkdir -p /data
tar zxvf yum.tar.gz -C /data
#备份
mv /etc/yum.repos.d /etc/yum.repos.d.bak
mkdir -p /etc/yum.repos.d
cd /etc/yum.repos.d
vi /etc/yum.repos.d/localhost-yum.repo
[localhost-base]
name=localhost-base
baseurl=file:///data/yum/x86_64/7/base/packages
gpgcheck=0
enabled=1
proxy=_none_
[localhost-extras]
name=localhost-extras
baseurl=file:///data/yum/x86_64/7/extras/packages
gpgcheck=0
enabled=1
proxy=_none_
[localhost-updates]
name=localhost-updates
baseurl=file:///data/yum/x86_64/7/updates/packages
gpgcheck=0
enabled=1
proxy=_none_
:wq! #保存退出
#离线安装
yum clean all
yum repolist
yum install make gcc gcc-c++ perl zlib-devel
#扩展阅读1
替换centos7.x的yum源
1、备份默认yum源
mv /etc/yum.repos.d /etc/yum.repos.d.bak
mkdir -p /etc/yum.repos.d
#新增CentOS 7.9的软件源repo文件,如下:
vi /etc/yum.repos.d/centos7.9.repo
[base]
name=CentOS - Base
baseurl=http://192.168.21.79/centos/7/os/$basearch/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[updates]
name=CentOS - Updates
baseurl=http://192.168.21.79/centos/7/updates/$basearch/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[extras]
name=CentOS - extras
baseurl=http://192.168.21.79/centos/7/extras/$basearch/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
[epel]
name=CentOS - epel
baseurl=http://192.168.21.79/centos/7/epel/$basearch/
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1
:wq! #保存退出
#更新yum源仓库
yum clean all
yum makecache
#测试
yum install wget
yum install telnet
#centos 7.x中yum源默认使用的是python2.7
[root@localhost ~]# cat /usr/bin/yum
#!/usr/bin/python
#扩展阅读2
使用yum源缓存安装依赖包
1、开启yum缓存
vi /etc/yum.conf
添加修改 keepcache=1
:wq! #保存退出
2、开启缓存后,用yum install安装的软件包会在/var/cache/yum或者/var/cache/dnf中保存
3、将/var/cache/yum或者/var/cache/dnf中的文件打包,恢复到要用的离线系统中相同位置
4、yum -C install 软件包名
5、rpm -Uvh --force --nodeps *rpm #安装所有rpm软件包
至此,CentOS下使用createrepo制作离线yum源安装完成。