从 ruby 脚本安装 gem 并在之后使用它
Install gem from ruby script and use it afterwards
我有一个 Geminabox 的私人 gem 服务器 运行。要在那里发布任何 gem,有一个命令 gem inabox my-gem.gem -g $HOST
。
我正在编写用于自动发布新 gem 版本的脚本。
所以我有类似的东西:
`gem install geminabox --no-ri --no-rdoc`
`gem inabox my-super-gem.gem`
问题是 returns 以下内容:
Successfully installed reentrant_flock-0.1.0
Successfully installed multipart-post-2.0.0
Successfully installed faraday-0.13.1
Successfully installed nesty-1.0.2
Successfully installed httpclient-2.8.3
Successfully installed builder-3.2.3
Successfully installed mustermann-1.0.1
Successfully installed rack-2.0.3
Successfully installed rack-protection-2.0.0
Successfully installed tilt-2.0.8
Successfully installed sinatra-2.0.0
Successfully installed geminabox-0.13.9
12 gems installed
ERROR: While executing gem ... (Gem::CommandLineError)
Unknown command inabox
当我在控制台中手动执行相同操作时,一切正常。如果我将这些命令放入 .sh
脚本中也是一样的:
#!/bin/bash
set -e
gem install geminabox --no-ri --no-rdoc
gem inabox -g $RUBYGEMS_HOST my-awesome.gem
但是,再次强调,如果我从 ruby 调用此脚本,它不会出现相同的错误 (Unknown command inabox
):
system('script/upload_gem.sh')
我需要使用 Ruby 中的脚本。知道为什么它不起作用吗?
毕竟,我解决了深入研究 gemianbox
gem 的问题 - 它似乎通过一个简单的 POST 请求上传 gem,所以 gem inabox
根本不需要命令,上传可以通过简单的 CURL 命令实现:
curl -F 'file=@/some/file.gem' https://some.host/upload
我有一个 Geminabox 的私人 gem 服务器 运行。要在那里发布任何 gem,有一个命令 gem inabox my-gem.gem -g $HOST
。
我正在编写用于自动发布新 gem 版本的脚本。
所以我有类似的东西:
`gem install geminabox --no-ri --no-rdoc`
`gem inabox my-super-gem.gem`
问题是 returns 以下内容:
Successfully installed reentrant_flock-0.1.0
Successfully installed multipart-post-2.0.0
Successfully installed faraday-0.13.1
Successfully installed nesty-1.0.2
Successfully installed httpclient-2.8.3
Successfully installed builder-3.2.3
Successfully installed mustermann-1.0.1
Successfully installed rack-2.0.3
Successfully installed rack-protection-2.0.0
Successfully installed tilt-2.0.8
Successfully installed sinatra-2.0.0
Successfully installed geminabox-0.13.9
12 gems installed
ERROR: While executing gem ... (Gem::CommandLineError)
Unknown command inabox
当我在控制台中手动执行相同操作时,一切正常。如果我将这些命令放入 .sh
脚本中也是一样的:
#!/bin/bash
set -e
gem install geminabox --no-ri --no-rdoc
gem inabox -g $RUBYGEMS_HOST my-awesome.gem
但是,再次强调,如果我从 ruby 调用此脚本,它不会出现相同的错误 (Unknown command inabox
):
system('script/upload_gem.sh')
我需要使用 Ruby 中的脚本。知道为什么它不起作用吗?
毕竟,我解决了深入研究 gemianbox
gem 的问题 - 它似乎通过一个简单的 POST 请求上传 gem,所以 gem inabox
根本不需要命令,上传可以通过简单的 CURL 命令实现:
curl -F 'file=@/some/file.gem' https://some.host/upload