我发现了类似的问题这里,但答案对我来说并不完全清楚。
为什么安装 i386 版本的软件包会触发 x86_64 版本的删除(反之亦然)?我看到它们被放置在 /usr/lib/ 中的各自目录中。拱。
例如,我的系统上发生的情况如下:
sudo apt install libicu-dev:i386 -V
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
icu-doc:i386
The following packages will be REMOVED:
libicu-dev (57.1-5ubuntu0.1)
The following NEW packages will be installed:
libicu-dev:i386 (57.1-5ubuntu0.1)
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Need to get 15.6 MB of archives.
After this operation, 24.0 MB disk space will be freed.
Do you want to continue? [Y/n]
这是一个问题,因为 x86_64 架构的 icu 库已从系统中删除,但我仍然需要它们。
实际上,这个操作似乎并没有完全删除库,但它删除了 .so 文件,这会导致任何链接失败。要完成构建,我需要再次安装缺少的那个。
我发现头文件可能存在冲突,也许这就是原因?为什么不像库那样根据 arch 将它们放在单独的目录中?事实上,似乎不可能独立地为 i386 和 x86_64 构建,而不必每次都切换库,这非常不舒服。
有人可以解释一下这种情况吗?