从Ruby gem创建Debian包

从Ruby gem创建Debian包,ruby,gem,debian,deb,Ruby,Gem,Debian,Deb,我正在尝试为一个我用过的创建Debian包,但遇到了一些困难。下面是我如何生成我的.deb(我假设您已经签出了sns,并且在它的根目录中): 应该是这样的。不幸的是 $ cat /var/lib/gems/1.8/bin/sns_hosts #!/home/blt/.rbenv/versions/1.9.2-p290/bin/ruby # # This file was generated by RubyGems. # # The application 'sns' is installed

我正在尝试为一个我用过的创建Debian包,但遇到了一些困难。下面是我如何生成我的
.deb
(我假设您已经签出了
sns
,并且在它的根目录中):

应该是这样的。不幸的是

$ cat /var/lib/gems/1.8/bin/sns_hosts 
#!/home/blt/.rbenv/versions/1.9.2-p290/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'sns' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'

version = ">= 0"

if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
  version = $1
  ARGV.shift
end

gem 'sns', version
load Gem.bin_path('sns', 'sns_hosts', version)

gem创建了一个分流,错误地将ruby解释器设置为我的开发环境的解释器;当推到其他计算机时,这是一个问题。如何影响分流脚本中设置的解释器?

gem install使用-E参数将shebang行重写为使用/usr/bin/env。因此,在打包gem时,您需要编辑fpm来执行此操作/usr/lib/ruby/gems/1.8/gems/fpm-0.3.7/lib/fpm/source/gem.rb第120行有参数,您可以尝试将其添加到那里。

Tatu Lahtela成功:pull请求被合并到master中,因此参数应该在未来的版本中设置。真棒:堆栈溢出驱动的开发!
$ cat /var/lib/gems/1.8/bin/sns_hosts 
#!/home/blt/.rbenv/versions/1.9.2-p290/bin/ruby
#
# This file was generated by RubyGems.
#
# The application 'sns' is installed as part of a gem, and
# this file is here to facilitate running it.
#

require 'rubygems'

version = ">= 0"

if ARGV.first =~ /^_(.*)_$/ and Gem::Version.correct? $1 then
  version = $1
  ARGV.shift
end

gem 'sns', version
load Gem.bin_path('sns', 'sns_hosts', version)