写在前面
在 docker 使用 Linux 发行版, 想要安装包需要换国内镜像源, 而换源需要编辑镜像列表文件, 但是编辑的话需要vim或者 nano, 这俩编辑器又得换源之后才能安装…..
解决死锁的办法: 用 sed 啊!
下面的命令都运行在 sudo 权限下
archlinux
sed -i '1s/^/Server = https:\/\/mirrors.tuna.tsinghua.edu.cn\/archlinux\/$repo\/os\/$arch\n/' /etc/pacman.d/mirrorlist
ubuntu
对 Intel 架构
sed -i 's|http://archive.ubuntu.com/ubuntu|https://mirrors.tuna.tsinghua.edu.cn/ubuntu|' /etc/apt/sources.list
arm 架构
sed -i 's|http://ports.ubuntu.com/ubuntu-ports|https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports|' /etc/apt/sources.list
kali
sed -i "s@http://http.kali.org/kali@https://mirrors.tuna.tsinghua.edu.cn/kali@g" /etc/apt/sources.list
or the latest version:(2024.2)
sed -i "s@http://kali.download/kali@https://mirrors.tuna.tsinghua.edu.cn/kali@g" /etc/apt/sources.list
# default # Generated by distrobuilder deb http://kali.download/kali kali-rolling main contrib non-free non-free-firmware
centos
针对 Intel 架构
# 对于 CentOS 7
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
# 对于 CentOS 8
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
针对非 Intel 架构
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/altarch/|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-altarch/|g' \
-e 's|^#baseurl=http://mirror.centos.org/$contentdir/|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos-altarch/|g' \
-i.bak \
/etc/yum.repos.d/CentOS-*.repo
然后刷新
sudo yum makecache
alpine
轻量级Linux 发行版, 之前 colima 默认的 daemon 就是 alpine
sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories
使用 apk 命令作为包管理器
add和 del 代表 install 和 uninstall