N1 docker ubuntu 容器解决 Some index files failed to download. They have been ignored, or old ones used instead 问题
n1 的 docker,一个 ubuntu 容器在 root 用户下执行 apt-get update
总是遇到 Some index files failed to download. They have been ignored, or old ones used instead 问题,换了好几个国内源都没有解决。
比如下面这篇提到的多个源
但这是为 x86 架构的机器准备的源地址。后来意识到 n1 使用了 arm
架构,docker 容器需要引用 ubuntu-ports
库,网上搜罗了很多,终于发现一篇能用的。
验证架构
首先使用 docker exec -it leanote /bin/bash
进入 leanote 容器,使用的镜像是 lstcml/n1_leanote:latest
执行 arch
终端输出 aarch64
,也就是 arm 架构,往具体了说是 armv8
执行 cat /etc/lsb-release
,得到如下输出
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.3 LTS"
可以看出这个容器的确是基于 arm 的 Ubuntu 18.04
备份 sources.list
cp /etc/apt/sources.list /etc/apt/sources.list.bak
修改 sources.list
使用 vim 的话,在命令模式下按两下 g
回到行首,然后输入 :.,$d
删除所有行,然后输入 :set paste
,然后按下 i
键进入 vim 的 insert 模式,然后执行粘贴动作(mac 是 command+v),按下 esc
,输入 :x
保存并退出。
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main restricted
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security multiverse
更新软件包索引
再次执行 apt-get update
没有报错了。