如何在gem安装时执行脚本?

时间:2013-01-18 09:35:36

标签: ruby rubygems

我正在编写一个gem,安装gem时我还想要一个驻留在gem中的脚本。

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

RubyGems本身不会让你这样做,可能是出于安全原因。 The most you can do is print a message to the user

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

  specification.post_install_message = 'Thanks for installing!'
end

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