2016-03-07 70 views
2

我想使用蝦寶石。我只是在ubuntu機器上試用基本的Hello World例子。Ubuntu的紅寶石位置

require 'prawn' 
Prawn::Document.generate("hello.pdf") do 
text "Hello World!" 
end 

首先的問題是,我使用紅寶石1.9.1,它產生的誤差,並表示需要紅寶石2.0,因此,使用RVM我更新爲2.2.1。但是每次我運行它,我得到這個錯誤

/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- prawn (LoadError) from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in需要 '從 prawnpdf.rb:1:''

現在我在Ubuntu和ruby上有一個新手,但我認爲問題在於它在錯誤的地方尋找我已經安裝的蝦寶石,即它正在尋找舊的版本的紅寶石。

當我運行$ ruby -v 我得到

ruby 2.2.1p85 (2015-02-26 revision 49769) [i686-linux] 

我究竟做錯了什麼?任何幫助將是最令人滿意的。

+0

你嘗試在新的Ruby中重新安裝蝦嗎? – shivam

+0

我嘗試過重新安裝蝦。這是我以前做過的gem安裝大蝦 成功安裝了大蝦-2.1.0 解析蝦-2.1的文檔。0 2秒後完成蝦的安裝文檔 1安裝了gem – D133p53

+0

也試過rvm全部做gem install大蝦 – D133p53

回答

0

按照給定的步驟。

1:rvm list

rvm rubies 

    ruby-2.0.0-p643 [ x86_64 ] 
    ruby-2.2.1 [ x86_64 ] 
=* ruby-2.2.4 [ x86_64 ] 

2:rvm use < ruby-version >#的情況下紅寶石1.9.3-P125

rvm use 2.2.1 

3:gem install prawn

會的工作! !

+0

我會認爲,這將有太多的工作$ RVM列表紅寶石 RVM紅寶石 紅寶石2.1.1 [i686的] = *紅寶石2.2.1 [i686的] # => - 當前 #= * - 當前&&默認 #* - 默認RVM使用2.2.1創業板安裝對蝦 成功安裝對蝦-2.1.0 解析文檔對蝦-2.1.0 完成後2對蝦安裝文件秒 1寶石安裝 但仍然同樣的錯誤謝謝你的想法,雖然 – D133p53

+0

@ D133p53:我認爲是的,但我的答案是否適合你? – VKatz

+0

@ D133p53L:一旦你安裝了'prawn gem'關閉'終端'並嘗試'新終端'。 – VKatz

0

每次您使用rvm切換ruby版本時,都會開始使用新的gemset。之前安裝prawn並不意味着它當前已安裝,並且錯誤消息表明它未安裝。所以:

rvm use 2.2.1 

然後

gem install prawn 

那麼你的代碼應該工作。

+0

'rvm use 2.2.1 --default'對於這個特殊情況更有意義。 – mudasobwa

+0

@StephenGrimes你是對的它看起來如果它沒有安裝,我以前使用過命令rvm use 2.2.1以及rvm use 2.2.'1 --default – D133p53

+0

如果您在gem install後更改目錄,請小心或rvm命令。這可能會影響Ruby版本。 –

0

我建議您爲您的項目創建一個Gemfile,以便維護依賴關係變得更加容易。 查看詳情:http://bundler.io/

然後cd到項目目錄和安裝包(一次或變更後)並運行Ruby腳本:

cd my_project 
bundle install 
ruby my_thing.rb 

如果你不能/不想使用打捆:你需要重新安裝每個紅寶石的Gem。

+0

我會考慮打捆感謝 – D133p53