工作经常会遇到需要离线安装软件的情况,特此记录下来,避免每次都得去翻笔记。

一 构造运行环境

1 使用docker提供目标操作系统

在本地创建data目录并挂载到容器里,方便将生成的依赖取出。

  1. centos7
mkdir -p /home/lin/ubuntu22/data
docker rm -f ubuntu22
docker run -d  --name ubuntu22 -v /home/lin/ubuntu22/data:/data ubuntu:22.04 tail -f /dev/null
docker exec -it ubuntu22 /bin/bash

2 更新yum镜像仓库

参考阿里的开源镜像站:https://developer.aliyun.com/mirror/

cp -a /etc/apt/sources.list /etc/apt/sources.list.bak \
    && sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list \
    && sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list \
    && apt-get update

二 下载依赖包

以nfs-common为例

apt-get clean
mkdir /data/nfs
apt-get install --reinstall -d -y nfs-common
mv /var/cache/apt/archives/*.deb /data/nfs/

三 安装

将生成的文件夹拷贝到目标集群上

dpkg -i *.deb

Q.E.D.