我可以使用gem spec安装手册页吗?

时间:2011-05-17 06:02:31

标签: ruby

有没有办法使用gem规范安装手册页?

例如,gem install XXX-1.0.0.gem应该将手册页安装到系统中。

3 个答案:

答案 0 :(得分:3)

Rubygems目前不支持为宝石安装联机帮助页。

前一段时间已向Rubygems提交patch以添加对联机帮助页的支持,但它被拒绝了。

答案 1 :(得分:1)

您可以使用gem-man gem为宝石安装联机帮助页。

他们还提供了一个“作弊开关”来使用全球人:alias man="gem man -s"

答案 2 :(得分:0)

我想我找到了一个解决方案:

首先,您必须为gem添加原生扩展名:

my_gem.gemspec:

s.extensions << 'manpage/extconf.rb'
s.files << 'manpage/my_gem.1'

然后gem install将执行extconf.rb并想要调用Makefile。

make clean
make 
make install

因此extconf.rb可用于创建Makefile。 您还必须确保必须至少有一个虚拟Makefile,否则安装将失败。

makefile = "make:\n" \
           "\t%s\n" \
           "install:\n" \
           "\t%s\n" \
           "clean:\n" \
           "\t%s\n"

if RUBY_PLATFORM =~ /linux/

  clean = 'sudo rm -f /usr/local/share/man/man1/my_gem.1.gz'
  make = 'gzip my_gem.1'
  install = 'sudo cp -r my_gem.1.gz /usr/local/share/man/man1/'

  puts
  puts 'You need super user privileges to install the manpage for my_gem.'
  puts 'Do you want to proceed? (y/n)'
  puts 'The gem will be installed anyways.'
  input = STDIN.gets.chomp.strip.downcase

  if input == 'y' or input == 'yes'
    File.write('Makefile', makefile % [make, install, clean])
  else
    File.write('Makefile', makefile % [':', ':', ':']) # dummy makefile
  end

else
  File.write('Makefile', makefile % [':', ':', ':']) # dummy makefile
end