我正在编写一个gem,安装gem时我还想要一个驻留在gem中的脚本。
答案 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中包含一个安装脚本,并请求用户运行它。使用安装后消息让他知道他必须运行脚本。