运行bundle exec rake
时,我偶尔会收到“文件太短”的消息:
rake aborted!
/var/lib/jenkins/.rvm/gems/ruby-1.9.3-p327/bundler/gems/amatch-0f95f4ce269f/lib/amatch_ext.so: file too short - /var/lib/jenkins/.rvm/gems/ruby-1.9.3-p327/bundler/gems/amatch-0f95f4ce269f/lib/amatch_ext.so
答案 0 :(得分:1)
如果您在多个流程中使用它,请使用bundle --standalone
- 假设每个流程都是从不同的路径运行 - 如果它们都使用相同的路径,那么您可以尝试bundle --path /path/for/gems$$/
$$
将被进程pid替换 - 但是--path
是记录选项,这没有帮助,因为只有最后一次运行才会在此目录中可见。
最好是限制同时执行的运行量。
其他选项是在运行时修改GEM_HOME
,但这可能会因jenkins而变得复杂,所以很可能这不会起作用:
OLD_GEM_HOME=$GEM_HOME
GEM_HOME=$( mktemp -d )
cp -r $OLD_GEM_HOME/ $GEM_HOME/
bundle install
# other commands
rm -rf $GEM_HOME/
GEM_HOME=$OLD_GEM_HOME