情况:又是好久没有滚Arch,更新内容太多,滚挂如下图
解决:首先怀疑是清华源的问题,故改源
- 安装
1 | sudo pacman -S reflector |
- 使用
reflector
选择最快的镜像源并更新/etc/pacman.d/mirrorlist
文件:
1 |
|
这个命令会列出100个镜像源,使用 HTTPS 协议,根据下载速度排序,并将最快的镜像源保存到 mirrorlist 文件中。
-country
: 指定国家和区域-age
: 指定最后更新/同步时间,可以过滤掉某些已经停止维护的镜像地址, 单位: 小时-sort
: 指定排序方式, 可选{age,rate,country,score,delay}
, 分别为{最后更新, 下载速度, 镜像分数, 延迟}
-protocol
: 指定http或https协议-save
: 将结果覆写到文件, 一般都是/etc/pacman.d/mirrorlist
, 请提前备份旧的Mirrorlist-threads
: 指定多线程数量,不可大于cpu总线程数量-list-countries
: 列出国家代码和镜像数量
还有一些其他参数, 具体请使用 reflector --help
查看帮助
- 选择中国的镜像源:
1 | sudo reflector --verbose --country 'China' -l 100 -p https --sort rate --save /etc/pacman.d/mirrorlist |
- 手动指定某个特定的镜像源,直接编辑
/etc/pacman.d/mirrorlist
文件,将首选的镜像源地址放在文件的最顶端。使用清华大学开源软件镜像站:
1 | echo 'Server = [https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch](https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch)' > /etc/pacman.d/mirrorlist |
- 更新完镜像源后,运行以下命令来更新软件包数据库:
1 | sudo pacman -Syy |
注意,更换镜像源后,可能需要重新导入 GPG 密钥,如果在使用 pacman -Syu
时遇到了问题,可以尝试使用 pacman -Syyu
来强制更新数据库或者使用 pacman -Syyuu
来尝试降级部分软件包。
重启电脑安装依旧失败,怀疑是’rime-ice-git-r748.2a2bb24-1-any.pkg.tar.zst’等软件包的问题,尝试手动更新这些包,但是失败了
1 | ❯ sudo pacman -S rime-ice-git |
改用aur库安装也失败
1 | ❯ yay -S rime-ice-git |
强制安装同样失败
1 | ❯ sudo pacman -Syyu |
决定删除报错的软件包再整体更新
1 | sudo pacman -Rns …… |
删除后更新成功
重新检查,怀疑是在 pacman -Syu
更新时调用缓存,但是缓存已过期或者正在尝试安装版本已更新且本地缓存中存在旧链接的软件包,收到先前的错误
清个缓存
1 | ❯ sudo pacman -Sc |
但是单独安装这些包依旧失败,所以最后只是认为镜像源中没有这些软件包(镜像源问题
发现在 /etc/pacman.conf
里面有
1 | [archlinuxcn] |
是导致使用清华源下载的原因
改用中科大源
1 | Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch |
更新数据库
1 | sudo pacman -Syy |
下载先前未能下载的软件包……下载成功