从Ruby gem创建Debian包
我正在尝试为一个我用过的创建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
.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)