Ubuntu下离线安装软件
一.实验环境
操作系统: ubuntu16 arm
server1: 172.16.0.15 能联网
server2: 172.16.0.19 不能联网
二.在server1上打包docker-ce的依赖软件包
1.添加阿里云源
添加docker-ce源
cat > /etc/apt/sources.list.d/docker.list <<EOF
deb [arch=arm64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial stable
EOF
添加系统源
cat > /etc/apt/sources.list <<EOF
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main restricted universe multiverse
EOF
添加完毕后及时更新源
apt update
2.选择需要安装的版本
有两种方式可以查看指定软件的版本
# 第一种可以看到已安装的版本以及推荐默认版本
apt-cache policy docker-ce
# 第一种更直观显示所有版本
apt-cache madison docker-ce
这里选择默认最新版本: docker-ce=5:19.03.43-0ubuntu-xenial
3.下载docker-ce包与依赖包
确认依赖包名以及版本号
apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances docker-ce=5:19.03.4~3-0~ubuntu-xenial
apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances docker-ce=5:19.03.4~3-0~ubuntu-xenial | grep "^\w" | sort -u
确认无误,正式开始创建文件夹装备下载
mkdir -p /var/docker-ce
cd /var/docker-ce
apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances docker-ce=5:19.03.4~3-0~ubuntu-xenial | grep "^\w" | sort -u)
# 在麒麟系统上部分依赖包名有冲突,并且已经安装,不需要再下载,因此要排除
# apt-get download $(apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances docker-ce | grep "^\w" | sort -u | grep -v libattr1| grep -v libgcrypt20 | grep -v gcc-6-base | grep -v libpcre3 | grep -v libsecurity1 | grep -v libselinux1 | grep -v libnfnetlink0 | grep -v libacl1| grep -v libgcc1)
4.创建依赖索引
此步骤需要dpkg-dev包下的dpkg-scanpackages
命令
apt install -y dpkg-dev
dpkg-scanpackages . | gzip -9c > Packages.gz
5.打包当前目录
cd /var
tar -zcf /var/docker-ce-kylin2000+.tar.gz /var/docker-ce
三、在server2上使用打包的文件安装源
1.通过scp,U盘等方式拷贝到server2上
tar -zxf docker-ce-kylin2000+.tar.gz -C /tmp
这里的/tmp可以跟换成其他地址,尽量放在所有用户能访问的地方
2.解压搭建完本地源,修改配置文件指向该地址
# 备份当前源配置
cp /etc/apt/sources.list /etc/apt/sources.list.bak
cat> /etc/apt/sources.list<<EOF
deb [trusted=yes] file:///tmp/docker-ce/ ./
EOF
3.修改完毕后,只要再更新源,即可安装指定的docker-ce
apt clean
apt update
apt install -y docker-ce
4.安装完成后即可还原最初的镜像仓库
cp /etc/apt/sources.list.bak /etc/apt/sources.list
rm -rf /tmp/docker-ce