写在前面
在 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
如果一段时间不用后提示公钥失败例如
Warning: GPG error: https://mirrors.aliyun.com/kali kali-rolling InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY ED65462EC8D5E4C5
Error: The repository 'https://mirrors.aliyun.com/kali kali-rolling InRelease' is not signed.
可以用下面的命令拉取新的公钥
curl -fsSL https://archive.kali.org/archive-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/kali-archive-keyring.gpg
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