有没有办法使用gem规范安装手册页?
例如,gem install XXX-1.0.0.gem
应该将手册页安装到系统中。
答案 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