Rubygems更新在奇怪的ruby版本上失败

我正在研究一个gem( atd ),我只是试图让gitlab CI运行我所有版本的ruby我的gem支持(2.2.2 – 2.4.0),包括bugfix版本的testing。 我有一个问题(GitLab CI的Pipline链接,看到版本> 2.3.0)与彩虹gem不工作的版本比2.6.9(目前rubygems版本是2.6.10)rubygems,所以在我的gitlab cibuild立(基本上docker集装箱)我试图运行bundle install之前的gem update --system ,并摆脱了彩虹错误,但我得到了以下错误时运行的gem update --system只在ruby版本2.2.4和2.3.0,这很奇怪,因为这两个版本之间有2个版本,2.2.5和2.2.6:

来源: 我的GitLab CIpipe道

 Running with gitlab-ci-multi-runner 1.10.4 (b32125f) Using Docker executor with image ruby:2.2.4 ... Pulling docker image ruby:2.2.4 ... Running on runner-fa6cab46-project-1684988-concurrent-0 via runner-fa6cab46-machine-1486422765-ae1c6a3c-gce... Cloning repository... Cloning into '/builds/izwick-schachter/atd'... Checking out ebe7405a as development... Skipping Git submodules setup $ ruby -v ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux] $ which ruby /usr/local/bin/ruby $ gem install rubygems-update Successfully installed rubygems-update-2.6.10 1 gem installed $ gem update --system ERROR: While executing gem ... (Errno::ENOENT) No such file or directory @ dir_chdir - /usr/local/bundle/gems/rubygems-update-2.6.3 Updating rubygems-update Successfully installed rubygems-update-2.6.10 ERROR: Build failed: exit code 1 

我认为这可能与升级之前的rubygems版本有关,但我不确定。 我知道它从rubygems 2.6.3失败到2.6.10的ruby2.2.4和2.3.0。

这是一个通行证和失败的表格:

 ruby -v | initial gem -v | ci pass/fail ======================================= 2.2.2 | 2.4.8 | pass 2.2.3 | 2.5.0 | pass 2.2.4 | 2.6.3 | fail 2.2.5 | 2.6.8 | pass 2.2.6 | 2.6.10 | pass 2.3.0 | 2.6.3 | fail 2.3.1 | 2.6.8 | pass 2.3.2 | 2.6.8 | pass 2.3.3 | 2.6.10 | pass 2.4.0 | 2.6.10 | pass 

为了满足gem update --system希望更新到2.6.3 ,你可以运行gem install rubygems-update --version 2.6.3 ,安装代码更新到2.6.3,然后你可以强制它更新到正确的版本告诉它gem update --system 2.6.10 (2.6.10是当前rubygems版本在写作时)。