在过时的生产机器上安装最新软件的有效方法是什么?

Seb*_*ian 6 compiling upgrade not-root-user

我的公司使用一个过时的小型集群(CentOS 5.4)来进行数字运算(更具体地说是有限元计算)。他们使用的是商业软件包,对 Linux 一无所知。只要机器运行,他们就不想改变机器上的任何东西,我认为这是一个时间有效的策略。我没有管理权限。

我可以让他们安装较小的包,但不能将例如 python 版本从 2.4 更改为 2.6+,所以我决定编译当前版本 ( ./configure --prefix=/home/mysuser/root2) 并遇到了一些依赖项问题(例如 readline、zlib、curses 的错误版本, bz2 ... 或未找到软件包)。我还需要更新抱怨缺少GMP,MPFRMPC.

这样做的原因是我想编译其他测试软件来在这些机器上运行。我该怎么做才能有效地安装我需要的软件包以编译我需要使用的软件?我在其他地方使用archlinux并且会发现能够按照这些方式做一些事情非常方便

pacman --root /home/myuser/root2 -S <package>
Run Code Online (Sandbox Code Playgroud)

但我不知道这是否可能或聪明。

其他相关的 SE 问题:gentoo-prefixpkgsrc似乎并不那么容易(不过我可能错了)。

Eli*_*uft 3

您的管理层明智地不要尝试升级正在基于专有软件包执行重要功能的工作集群。

向后移植包既耗时又危险,也就是说,并不总是可行。如果您可以在原始 CentOS 5.4 存储库或某些 CentOS 5.4 向后移植存储库中找到要安装的软件包,则可以避免时间损失。虽然一台主机上可以同时拥有多个版本的 GCC(嵌入式系统/交叉编译人员一直在这样做),但在单个运行时环境中拥有多个 glibc 并不是一件小事。

因此,最好建议您在一个单独的、较新的环境中工作,其中包含您需要的包,并找到某种方法在新环境中测试旧环境的输出。无论如何,不​​要冒险破坏旧环境中的任何东西,否则您可能需要所有 stackexchange.com 声誉点来找到下一份工作;-)

  • 您可以将 rpm 包下载到您的个人目录,然后使用[这些说明](http://www.cyberciti.biz/tips/how-to-extract-an-rpm-package-without-installing-it.html)提取文件,包括任何可执行文件 (2认同)