Centos7只下载不安装rpm(制作本地离线包)
#### 背景描述
有时候需要在未联网的机器上安装rpm,那么本地离线包就是个很好的解决方案。
本文测试在能联网的机器上使用yum下载rpm包而不安装(制作本地离线包)的方法 。欢迎围观~
1. 创建本地下载目录
mkdir -p /yum/repo
cd /yum/repo

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

3. 清理一下本地缓存
yum clean all
yum makecache fast

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


##移动RPM
mkdir -p /yum/repo/docker/
mv *.rpm /yum/repo/docker/

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


移动RPM
mkdir -p /yum/repo/k8s/
mv *.rpm /yum/repo/k8s/

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

[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

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

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/

至此, 本地离线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

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

11. 本地安装 docker/kubernetes
yum -y install docker-ce
yum install -y kubelet-1.26.0 kubeadm-1.26.0 kubectl-1.26.0



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 解决依赖关系并下载所
写在最后
道阻且长,行则将至,与君共勉!
浙公网安备 33010602011771号