Ruby gem在Mac OS Jenkins slave上消失了

时间:2015-01-05 12:12:42

标签: ruby macos osx-yosemite

我有一些Mac Minis和旧Mac Pro,我们用它们作为Jenkins奴隶进行自动化测试。

偶尔宝石会消失,我必须重新安装它们。这是使用Mac OS Yosemite内置的Ruby。 为什么会这样?

我在我的个人Macbook Pro上使用RVM,偶尔它会自动决定切换到一个新的Ruby版本,所以它不会拥有我的所有宝石是有意义的。当我换回时,宝石又消失了。

对于奴隶,他们没有安装RVM,结果是一样的。 这可能是由Mac OS更新造成的吗?

Gekins没有安装在Jenkins工作区中,我在安装Jenkins代理之前安装了它们。 Mac与测试自动化团队共享,他们也对它们进行ssh / sudo,但是在Ruby中没有做任何事情,因为他们的代码是Java。

1 个答案:

答案 0 :(得分:0)

  

这可能是由mac OS更新引起的吗?

这可能是由操作系统更新引起的,这是你使用系统Ruby进行开发的一个重要原因,除非你满足于让它简单易懂。正确地说,Apple认为Ruby是他们的,如果它适合他们的目的并且你升级操作系统,他们可以并且将会通过更新来踩它。

相反,至少要从源代码或通过Homebrew安装一个单独的Ruby并考虑你的。或者,调查在Jenkins盒子上使用rbenv或RVM来管理你的Rubies,这就是我们的工作。这允许构建使用不同的Rubies和/或宝石集,并允许您将Jenkins框上的Ruby环境微调到最终目标Ruby将会是什么。

您说您的个人RVM是否自行更改?呃呃,不能自己发生; SOMETHING 告诉它改变。不要将这些东西归咎于voodoo或juju,有些东西正在使这些事情发生,例如环境变量发生变化或.rvmrc文件被踩踏。如果您的RVM配置正确,它应该非常稳定;除非我搞砸了,否则我的rbenv和RVM设置一直非常稳固。

如果没有您gem envrvm info的转储,我们可以做很多事情来帮助您理顺它。一般来说,听起来你需要将Jenkins主机视为生产盒,将其更改为少,并将资产与供应商分开。