Centos7只下载不安装rpm(制作本地离线包)

#### 背景描述

有时候需要在未联网的机器上安装rpm,那么本地离线包就是个很好的解决方案。

本文测试在能联网的机器上使用yum下载rpm包而不安装(制作本地离线包)的方法 。欢迎围观~

1. 创建本地下载目录

mkdir -p /yum/repo

cd /yum/repo

image-20230801094951242

2. 配置基础yum源信息

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

cat < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

image-20230801095120147

3. 清理一下本地缓存

yum clean all

 yum makecache fast

image-20230801095206259

4. 开始下载docker RPM到本地

yum install --downloadonly --downloaddir=/yum/repo docker-ce

yum install --downloadonly --downloaddir=/yum/repo docker-ce

[root@master1 repo]# du -sh *
34M   containerd.io-1.6.21-3.1.el7.x86_64.rpm
40K   container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
13M   docker-buildx-plugin-0.10.5-1.el7.x86_64.rpm
25M   docker-ce-24.0.2-1.el7.x86_64.rpm
14M   docker-ce-cli-24.0.2-1.el7.x86_64.rpm
9.1M  docker-ce-rootless-extras-24.0.2-1.el7.x86_64.rpm
12M   docker-compose-plugin-2.18.1-1.el7.x86_64.rpm
84K   fuse3-libs-3.6.1-4.el7.x86_64.rpm
56K   fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm
84K   slirp4netns-0.4.3-4.el7_8.x86_64.rpm

image-20230801095351718

image-20230801095409676

##移动RPM

mkdir -p /yum/repo/docker/
mv *.rpm /yum/repo/docker/

image-20230801095514823

5. 开始下载K8S RPM到本地

yum install --downloadonly --downloaddir=/yum/repo kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0

yum install --downloadonly --downloaddir=/yum/repo kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0

[root@master1 repo]# du -sh *

17M   0f2a2afd740d476ad77c508847bad1f559afc2425816c1f2ce4432a62dfe0b9d-kubernetes-cni-1.2.0-0.x86_64.rpm

11M   23e112935127da08ffd1c32c392cbf62346305ee97ba6c5d070cda422945e4ff-kubectl-1.26.0-0.x86_64.rpm

8.6M  3f5ba2b53701ac9102ea7c7ab2ca6616a8cd5966591a77577585fde1c434ef74-cri-tools-1.26.0-0.x86_64.rpm

22M   9be8590c2de60e249f40726e979a3a7a046320079bc41d330834de74f5399383-kubelet-1.26.0-0.x86_64.rpm

11M   da58cbf31a0337a968e5a06cfcc00eee420cc2df8930ea817ed2a4227bd81d48-kubeadm-1.26.0-0.x86_64.rpm

[root@master1 repo]# yum install -y kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0

image-20230801095852558

image-20230801095905509

移动RPM

mkdir -p /yum/repo/k8s/
mv *.rpm /yum/repo/k8s/

image-20230801095951845

6. 查看/yum/repo目录下的rpm包

[root@master1 repo]# du -sh /yum/repo/docker/*
34M   containerd.io-1.6.21-3.1.el7.x86_64.rpm
40K   container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm
13M   docker-buildx-plugin-0.10.5-1.el7.x86_64.rpm
25M   docker-ce-24.0.2-1.el7.x86_64.rpm
14M   docker-ce-cli-24.0.2-1.el7.x86_64.rpm
9.1M  docker-ce-rootless-extras-24.0.2-1.el7.x86_64.rpm
12M   docker-compose-plugin-2.18.1-1.el7.x86_64.rpm
84K   fuse3-libs-3.6.1-4.el7.x86_64.rpm
56K   fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm
84K   slirp4netns-0.4.3-4.el7_8.x86_64.rpm

image-20230801100108742

[root@master1 repo]#  du -sh /yum/repo/k8s/*

17M     0f2a2afd740d476ad77c508847bad1f559afc2425816c1f2ce4432a62dfe0b9d-kubernetes-cni-1.2.0-0.x86_64.rpm

11M     23e112935127da08ffd1c32c392cbf62346305ee97ba6c5d070cda422945e4ff-kubectl-1.26.0-0.x86_64.rpm

8.6M    3f5ba2b53701ac9102ea7c7ab2ca6616a8cd5966591a77577585fde1c434ef74-cri-tools-1.26.0-0.x86_64.rpm

22M     9be8590c2de60e249f40726e979a3a7a046320079bc41d330834de74f5399383-kubelet-1.26.0-0.x86_64.rpm

11M     da58cbf31a0337a968e5a06cfcc00eee420cc2df8930ea817ed2a4227bd8

image-20230801100148281

7. 打包离线rpm(方便在无法联网网的主机上使用)

tar -zcvf docker-ce-24.0.2.tar.gz /yum/repo/docker

tar -zcvf k8s-1.26.0.tar.gz /yum/repo/k8s

image-20230801100227206

8. 下载上传打包文件到无法联网的主机上

docker-ce-24.0.2.tar.gz

k8s-1.26.0.tar.gz

就是本次我们只下载rpm(制作本地离线包)的安装包哦~

@我更喜欢把所有的rpm全部打包在一起~

tar -zcvf docker+k8s-all-RPM.tar.gz /yum/repo/

image-20230801100315508

至此, 本地离线RPM包制作完成!!!

===========================================

以下操作模拟在无法联网的主机上进行rpm安装动作~

9. 删除yum源(无法联网安装rpm)

rm -f /etc/yum.repos.d/CentOS-Base.repo

rm -f /etc/yum.repos.d/kubernetes.repo

rm -f /etc/yum.repos.d/docker-ce.repo 

image-20230801100412924

10. 制作本地的yum源(启用本地rpm包)

cp /yum/repo/docker/*.rpm .
cp /yum/repo/k8s/*.rpm .
createrepo .

cat <<EOF > /etc/yum.repos.d/base.repo
[base]
name=base
baseurl=file:///yum/repo
gpgcheck=0
enabled=1
EOF

image-20230801100511093

11. 本地安装 docker/kubernetes

 yum -y install docker-ce
 yum install -y kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0

image-20230801100716911

image-20230801100733872

image-20230801100751693

PS: 方式二、9/10/11三步骤,也可以合并为一步。

#可以直接输入 yum install –y docker-ce-xxx.xxx.xx.rpm(每个具体的rpm包名字)进行安装。

cd /yum/repo



## install docker-ce

sudo yum localinstall -y docker-ce-24.0.2-1.el7.x86_64.rpm docker-ce-cli-24.0.2-1.el7.x86_64.rpm docker-ce-rootless-extras-24.0.2-1.el7.x86_64.rpm containerd.io-1.6.21-3.1.el7.x86_64.rpm docker-compose-plugin-2.18.1-1.el7.x86_64.rpm docker-buildx-plugin-0.10.5-1.el7.x86_64.rpm container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm slirp4netns-0.4.3-4.el7_8.x86_64.rpm fuse3-libs-3.6.1-4.el7.x86_64.rpm fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm



## install kubeadm/kubelet/kubectl

sudo yum localinstall -y 3f5ba2b53701ac9102ea7c7ab2ca6616a8cd5966591a77577585fde1c434ef74-cri-tools-1.26.0-0.x86_64.rpm da58cbf31a0337a968e5a06cfcc00eee420cc2df8930ea817ed2a4227bd81d48-kubeadm-1.26.0-0.x86_64.rpm 23e112935127da08ffd1c32c392cbf62346305ee97ba6c5d070cda422945e4ff-kubectl-1.26.0-0.x86_64.rpm socat-1.7.3.2-2.el7.x86_64.rpm 9be8590c2de60e249f40726e979a3a7a046320079bc41d330834de74f5399383-kubelet-1.26.0-0.x86_64.rpm 0f2a2afd740d476ad77c508847bad1f559afc2425816c1f2ce4432a62dfe0b9d-kubernetes-cni-1.2.0-0.x86_64.rpm

12. 另外一种下载rpm(制作本地离线包)方法.

使用 yumdownloader 命令。

前提条件:需要安装yum-utils

yum install -y yum-utils

操作步骤/命令如下;

mkdir -p /yum/repo

yumdownloader --destdir=/yum/repo --resolve docker-ce

yumdownloader --destdir=/yum/repo --resolve kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0

建议参数 --destdir 指定下载的软件包存放路径,参数 --resolve 解决依赖关系并下载所

写在最后

道阻且长,行则将至,与君共勉!

posted @ 2023-08-01 10:14  寻梦99  阅读(1466)  评论(0)    收藏  举报