我刚刚在 #multiarch 也描述了一下这个事情。目前看来各种应用(尤其是商业应用)如果不推出新世界的版本时,最好的方法只有在安装前,对旧世界的deb进行修改。将 loongarch64 修改为 loong64,并在 Depends 字段加入对 liblol 的依赖。(需注意 liblol 目前不在 debian 内)
On Tue, Apr 16, 2024, 11:50 xiao sheng wen(肖盛文) <atzli...@sina.com> wrote: > > > 在 2024/4/16 11:37, Han Gao 写道: > > dpkg --add-architecture loongarch64 > > 就这个 dpkg根本不知道你在描述什么 怎么才能说服添加到dpkg里 我认为这个是不可能也是没必要的工作 > > 这个命令,是由用户自己来操作,或者提供旧世界兼容的 deb 包在安装的时候操作。 > > dpkg 的 deb 软件包,功能很强大,可以使用 原包,转换包,空包,虚拟包,提供字段等多种方式解决软件包依赖性问题。 > > 功能再强也没有提供任何跨arch的方式实现提供异架构的方式 > > 我是指比如 amd64 对 i386 的支持, arm64 对 arm32 位支持。 > 至于你提到的由 liblol 来 Provides: libc6:loongarch64,这个也非常不可行。 一是因为依赖不只有 libc6,可能是仓库中绝大多数 libs,是一个不应穷举的列表。 二是不应由 liblol 来提供 Provides。仅由 liblol 来提供的话会实质破坏依赖关系。 > 而且整个upstream都不愿意为龙芯公司的old world/abi1.0买单 linux上游已经明确拒绝过相关的事宜 > 对整个开源社区old world/abi1.0就是虚空的东西 是不存在的 > > 至于软件适配新abi的 龙芯公司已经在推动相关工作 > > 这个事情,本来就应该是龙芯公司主导,开源社区配合来做比较好。 > 再说个题外话: > 开辟loongarch64的arch name会有很大的风险 > 这样换了名字之后可以避免真的uos/kylin/loongnix的deb包安装 直接破坏系统 > 比如头铁的人直接安装libffi7_3*_loongarch64.deb 直接就会覆盖系统文件 破坏系统 开了口子之后这种破坏只会越来越多 弊大于利 > > 这点确实。 > Debian 官方的 i386 软件包在 amd64 架构上安装,Debian 有规则避免破坏系统。 > 我感觉这个反而不需要关心,dpkg 在遇到文件冲突的时候会拒绝的。(当然,如果你直接 dpkg-deb -x 的话当我没说,详见 wiki.d.o/DontBreakDebian) > 但是我也很担心国内的非开源项目,商业公司,会顾及 Debian 的规则。 > > On Tue, Apr 16, 2024 at 11:09 AM xiao sheng wen(肖盛文) <atzli...@sina.com> > <atzli...@sina.com> wrote: > > 这个看是不是可以用一个 deb 包里面 Provides: 字段属性解决下? > > 比如说,在 liblol_*_loong64.deb 软件包里面,增加一个: > > Provides: libc6:loongarch64 > > dpkg 的 deb 软件包,功能很强大,可以使用 原包,转换包,空包,虚拟包,提供字段等多种方式解决软件包依赖性问题。 > > 同时 Debian 对多架构也支持得很好。 > 在 amd64 上运行 i386 程序,这种跨架构支持,也经常使用。 > > 在 Debian 新世界上,将老世界的 deb 软件包支持起来,在技术上应该有办法的。 > 大家可以多交流讨论下。 > > 在 2024/4/16 10:50, Tianyu Chen 写道: > > Hi 盛文, > > On Tue, Apr 16, 2024, 10:45 xiao sheng wen(肖盛文) <atzli...@sina.com> > <atzli...@sina.com> wrote: > > 如果有人能够把这两个软件包贡献到 Debian 里面,那对在 Debian 使用旧世界软件包,会有帮助。 > 在新世界 Debian 操作系统上,使用 dpkg --add-architecture loongarch64,就可以添加对 旧世界 deb > 包的安装支持。 这样,Debian 就没有修改架构名称的必要了。 > > 即使 dpkg --add-architecture 了,安装旧世界的 deb 包时依赖解析依然会有问题。旧世界的 deb 包依赖里面写的 libc6 是 > libc6:loongarch64,而非 loong64,这会导致 deb 无法安装。 > > Best regards, Tianyu Chen