我需要运行一个科学软件,但它需要较旧的库,我不想搞砸我当前的系统。我想过在虚拟机中使用旧的 ubuntu 版本。但我需要哪个?
该软件可以在这里获得
自述文件说:
Makefile 假定您使用的是 wxWindows 2.4.2,并且它安装在 /usr(/usr/lib/、/usr/include/wx 等)中。但是,它可能位于 /usr/local 中;在这种情况下,适当地修改 Makefile 的第 18 行。
此外,wxWindows 2.4.2 与最新版本的 GTK 有冲突,因此欢迎您使用最新版本的 wxWindows (2.6.0)。但是,这也需要更改 Makefile,即第 16-18 行。此外,这个新版本的 wxWindows 将库分成不同的部分;基础、核心和 gl。您需要链接到所有这些库。
如果你给我发电子邮件至 [email protected],我可以给你发送一个定制为 2.6 的 Makefile。
更新:我的代码不适用于 2.6。2.4.2 不能与较新版本的 g++ 一起编译。所以,这是一个我没有时间解决的问题。对不起。您唯一的希望是使用较旧的 g++。
我在您发布的说明中看到的真正问题是他们要求使用旧版本
g++
:安装不同的库版本相对简单,安装和运行不同的编译器并非易事。此外,说明并没有说明您应该使用哪个版本的 g++...如果我要这样做,我将按照以下方式进行:
正如在 Ubuntu 软件包存档中的搜索所显示的,没有一个 Ubuntu 版本具有 wxWindows 2.4.2;dapper有 2.4.4,hardy和jaunty有 2.4.5。这可能是一个兼容版本(补丁级别编号不会更改 API),但只有通过尝试才能知道......他们也应该有正确的 g++(因为它被用来编译 Ubuntu 包)。
安装deboostrap程序,并使用它在目录中安装旧版 Ubuntu 的副本
foo
:sudo deboostrap jaunty foo/
下载源代码并将它们放在某个目录下
foo/
使用chroot进入旧环境并编译:
请注意,在 chroot 中,您只能访问
foo/
-- 这已成为新的根目录下的文件(只需退出 shell 即可恢复正常)。您也可以使用虚拟机代替 chroot 环境(替换步骤 2.、4.);恕我直言,chroots 允许更无缝的使用,尽管设置起来可能有点棘手。