我正在寻找pipe理非发行版软件安装的方法,同时安装同一软件的多个版本。 例如,我们可以同时安装ProgramA 1.6和ProgramB 1.7,用户可以在它们之间切换。
一个常见的解决scheme似乎是我所知道的环境模块在很多学术站点都取得了成功。 用户然后可以运行module load ProgramA/1.6 ,然后运行ProgramA将得到他们正确的版本。 所以在概念上我可以维护一个用户将用来激活正确环境的所有模块文件的存储库。
我的问题主要在于创build实际构build模块使用的软件的可重复方法。 我需要一个可重复的方法来构build每个软件包。 什么将是一个很好的方法来做到这一点? 是否有可能在一个备用根位置和/或备用RPM数据库中使用RPM来实现? 是否有另一个工具可以用来pipe理软件构build? 我应该用shell脚本拼凑起来吗?
我们运行的平台是Scientific Linux 6,它基本上等同于Red Hat 6。
您可以设置您自己的存储库并为您的软件创buildRPM。
如果您在版本库中保留多个版本,则可以通过yum cli轻松安装所需的版本。
要设置您自己的存储库,请参阅此处: 单击
build议:
alternatives命令。 一个合理简单的方法是使用Stow将每个软件版本安装到自己的位置,然后允许用户使用Stow (例如,通过sudo )重新指定应用程序版本,或者使用shell函数重新设置PATH指向不同的软件版本。
对于在其上运行多个数据库版本的Sybase服务器,我做了一些类似的操作(没有存储)。 我有一个名为setenv.sh的脚本,如下所示:
#!/bin/sh case $1 in 12.5|125) echo "Setting environment for ASE 12.5" export SYBASE=$HOME/ase125 # ... some other stuff ;; 15.0|150) echo "Setting environment for ASE 15.0" export SYBASE=$HOME/ase150 # ... some other stuff ;; esac