2011-05-17 59 views

回答

1

您可以使用gem-man寶石來安裝寶石的聯機幫助頁。

它們還提供了「作弊開關」用全球的人:alias man="gem man -s"

+2

考慮到'gem-man'的自述文件,它不會爲Gems _install_手冊頁,它只是_displays_它們。如何在GemSpec中指定手冊頁尚未得到解答。 – awendt 2011-05-17 06:54:37

+1

您不能在gemspec中指定手冊頁。但是,使用寶石寶石,您可以輕鬆查看創建者在寶石文件夾中放置的手冊頁 – 2011-05-17 07:28:06

3

RubyGems的目前不支持安裝寶石手冊頁。

A patch剛剛提交給Rubygems以添加對manpage的支持,但它被拒絕了。

0

我想我已經找到了解決辦法:

首先,你得原生擴展添加到寶石:

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 
+0

或者,您可以使用'require'mkmf''和'create_makefile'''。 然後你可以通過'system('sudo cp ...')來建立和複製這些文件' – Alu 2016-08-12 08:27:12

相關問題