1

我正在编写一个 gem,在安装 gem 的同时,我还希望执行一个驻留在 gem 中的脚本。

4

2 回答 2

4

安装 gem 后,您不应该能够运行任意脚本,但是您可以使用 hack 来解决此问题。RubyGems 允许您使用 extconf.rb 为您的 gem 构建扩展,并且您可以欺骗它以这种方式运行您的脚本。这里有一个指南:http: //blog.costan.us/2008/11/post-install-post-update-scripts-for.html

有关为什么运行脚本作为 gem 安装的一部分不包含在 RubyGems 中并且不鼓励的讨论,请遵循此处的拉取请求评论:https ://github.com/rubygems/rubygems/pull/213 。

于 2013-01-18T14:20:09.393 回答
2

RubyGems 本身不会让您这样做,可能是出于安全原因。您最多可以做的是向用户打印一条消息

Gem::Specification.new 'your_gem' do |specification|
  # ...

  specification.post_install_message = 'Thanks for installing!'
end

可以做的是在您的 gem 中包含一个设置脚本并请求用户运行它。使用安装后消息让他知道他必须运行脚本。

于 2013-01-18T12:13:29.790 回答