我目前正在使用 Ubuntu MATE 16.04.3 LTS。
我是一个坎巴拉太空计划玩家尝试使用一个名为原理更好地模拟多体和非均匀体轨道。当前版本的原理对于 KSP 版本 1.5、1.6 和 1.7,指定为 Fibonacci,需要 libc++ 和 libc++abi——我有版本 3.7.something,但这个游戏模块需要版本 6.0-2。
此版本在 Ubuntu 18.04.2 中可用;我可以通过设置正确的存储库并安装这些库及其依赖项来安装它。但是,没有什么是独立的(在 Linux 中,就像在生活中一样):如果几个 C++ 库大大超出了系统的预期,还有什么可能出现问题?
我不想升级我的 Ubuntu,因为第三方软件并没有真正可靠的升级途径;我最终不得不进行全新安装,然后重新安装第三方和非标准软件包
答案1
在其他几个地方询问并根据我在其中一个论坛(Kerbal 太空计划论坛,关于最初因附加组件而引发此问题的程序)得到的部分答案进行一些挖掘之后,我找到了一个解决方案。
虽然所需的版本在任何 Canonical 存储库中libc++
都无法libc++abi
以与 Xenial 兼容的形式获得,但我还是找到了一个帕帕llvm-toolchain-8
已移植到 Ubuntu 16.04。它并不完全支持,clang 8
因为为了兼容,必须禁用几个小项目,但它确实包括libc++-8-dev
和libc++abi-8-dev
,这是最新版本(今天发布)所需的库版本原理KSP 的附加组件。而且,由于这些库是在 Ubuntu 16.04 上构建的,因此它们与我已经拥有的安装兼容;我已经安装了它们,并验证了我的 Ubuntu 继续运行,并且原理适用于我的 KSP 游戏。
问题解决了,至少可以维持一年半。
2023 年,我不得不使用该llvm
软件包(现在位于 Ubuntu 存储库中)来支持 KSP 的较新版本中的相同模组,并且原理在 Kubuntu 20.04 上,仍然在 Kubuntu 22.04 上。显然,mod 开发人员/维护人员随时都在构建最新版本的 Ubuntu,并不关心用户是否必须每隔几个月升级一次操作系统。
我在使用其他软件时也遇到过这种情况,在我看来,这是一种不好的做法——软件应该在支持的操作系统的最旧版本上运行;唯一的例外是当基本功能依赖于旧操作系统版本中不存在的库时。