安装作为Ruby gem实现的系统服务的方法

时间:2012-05-16 19:22:31

标签: ruby linux installer daemon rhel

经过多年离开Ruby之后,我又回到了全力以赴,刚刚切断了我的第一个宝石,其中包括一个可执行文件。一切都像魅力一样。

然而,我面临的问题是,我还有一个启动脚本(不是gem istelf的一部分)守护可执行文件。另外,我还希望启动脚本将可执行文件指向/ var /

这样的位置

据我所知,没有办法使用rubygems,gemspec等来指定在安装过程中被烧毁到系统其他部分的文件(例如,启动脚本到/etc/init.d,并配置为的/ var /)。如果你能做到这一点肯定没有意义。

所以...我的问题是......什么是自动安装这样的东西的正确程序。我正在使用RHEL,我想知道是否可能是时候让我的第一个RPM了。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

可以做到这一点。然而,它可能不是推荐的方法。但是,可以使用extensions选项在gem安装期间运行任意代码。

来自RubyGems Manual

Usage
  spec.extensions << 'ext/rmagic/extconf.rb'

Notes
These files will be run when the gem is installed, causing the 
C (or whatever) code to be compiled on the user’s machine.

只需将您需要的任何ruby代码放入extconf.rb(或等效的)文件中。

从RubyGems指南构建C扩展的示例:
http://guides.rubygems.org/c-extensions/