我有一个现有的 ruby 2.5.1 安装,它是通过从源代码编译创建的。
安装在 afs 中,可通过多种操作系统访问(x86 上的 linux-RH6 和 Power 上的 aix)。创建安装时,我执行了以下操作:
在 Linux 系统上我运行
./configure --enable-shared --enable-load-relative --disable-install-doc --prefix=/afs/foo/ruby/2.5.1 --exec-prefix=/afs/foo/2.5.1/linux
make
make install
在 AIX 系统上我运行了类似的命令:
./configure --enable-shared --enable-load-relative --disable-install-doc --prefix=/afs/foo/ruby/2.5.1 --exec-prefix=/afs/foo/2.5.1/aix
make
make install
笔记:每个配置都指定不同的--exec 前缀这样 arch 相关文件就位于不同的子目录中。afs 支持使用符号链接,以允许每个操作系统指向“相同”的 bin 目录,但选择正确的 arch 相关 bin。
因此,我最终将所有不依赖架构的代码共享,并将依赖架构的代码放在单独的子目录中。从那时起,我安装了许多 gem。
现在我想添加对其他操作系统的支持,例如 x86 上的 linux (RH7) 和 Power 上的 linux (RH7)。
我仍然有用于安装现有安装的现有 tar 文件,所以我的想法是,我应该能够通过在新操作系统上运行类似的命令但对每个操作系统使用唯一的 --exe-prefix 来重复此过程。
我担心的是,自从最初安装以来,我已经添加了 gem,这会破坏任何东西吗?我猜如果 gem 坏了,我可以简单地重新安装它吗?如果可能的话,我真的只想安装 arch 相关文件。
例如,是否有某种方法可以告诉 configure 或 make 仅安装 arch 相关文件而不覆盖非 arch 相关文件?