您是否曾遇到过这样的情况:您必须在一个非常老旧的计算机集群上工作,其中有大约十年的 emacs、十年的编译器,所有东西都是十年前的?当然,这是一个由许多人共享的重要集群,我们不能直接更新到较新版本的操作系统(顺便说一下,它是基于 Linux 的)。
在 emacs 和 gdb 等程序中遇到几个十年前的错误后,我尝试重新编译 gcc/gdb 和 emacs 的现代版本。不幸的是,这台计算机上的所有库都太旧了,新版本无法编译。我花了几个小时尝试将自定义库放入自定义包含目录中以使其正常工作,但没有成功,问题接二连三地出现。
有什么方法可以在这台机器上获得我心爱的 emacs/gdb 的新版本吗?比如一个完全静态的二进制文件,我可以把它复制到任何地方?但这可能行不通,因为底层内核调用可能已经从内核版本 2.6(集群正在运行)变为 3.11(我的桌面正在运行)了相当大的变化?您如何处理需要处理的旧系统?
答案1
给你两个建议。你可以尝试在最低有效位在您的 3.11 机器或现代 2.6 机器(例如 centos-6.5)上。但我怀疑您是否能够让最新的 gdb 完全运行。
如果这不起作用,您可以将旧系统通过 NFS 安装到新系统上,然后在那里使用 emacs/gdb。这与您所要求的正好相反,但至少您能够使用新 emacs 并在旧机器上编辑文件。您必须调整 LD_LIBRARY_PATH 等以加载正确的库。