![按体系结构解决 Debian Pin 问题](https://linux22.com/image/60980/%E6%8C%89%E4%BD%93%E7%B3%BB%E7%BB%93%E6%9E%84%E8%A7%A3%E5%86%B3%20Debian%20Pin%20%E9%97%AE%E9%A2%98.png)
我们可以在 debian 系统上安装复数架构的软件包。
$ apt-config dump | grep Arch
APT::Architecture "mipsel";
APT::Architectures "";
APT::Architectures:: "mipsel";
APT::Architectures:: "amd64";
(在这种情况下,我的本机体系结构是mipsel,并且我还安装了amd64的软件包。我通过qemu binfmt_misc运行它们。)
今天,我想使 apt 依赖解析算法尽可能为本地架构拉取软件包,如果没有本地选择,则为外国。
apt 的“Pin”机制是显而易见的方法。但架构固定尚未实现。
所以我想要一个通过架构固定的解决方案。
即使我们有架构固定,我们仍然要注意不要用外国架构的包替换关键包,其中包括 init、shell 和 qemu。
答案1
我们可以针对不同的架构使用不同的镜子。
# /etc/apt/sources.list deb [ arch=mipsel ] http://1.mirror.debian.org stable main deb [ arch=amd64 ] http://2.mirror.debian.org stable main
然后通过 origin 配置固定。
# /etc/apt/preferences Package: * Pin: origin "2.mirror.debian.org" Pin-Priority: /* some small number */
我们可以设置另一个指向镜像的 DNS 记录。例如 amd64.mirror.my.own.domain cname 1.mirror.debian.org 。有时http服务器对主机头很敏感。但有可能服务器只检查请求域名的后缀,就好像abc是合法的主机名一样,我们可以尝试通过any.prefix.abc访问它。
我们可以为镜像设置反向代理。