2013-06-22 24 views
0

我已經設置了一個鉤作爲我的普通用戶的一個運行良好,使用​​該用戶下安裝所需的寶石。現在,我要運行的鉤爲不同的用戶,但是當我嘗試它,紅寶石找不到裝寶石:如何運行一個用戶安裝紅寶石寶石作爲不同的用戶?

$ /home/user/.gem/ruby/1.9.1/bin/jekyll 
/usr/lib/ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find jekyll (>= 0) amongst [rack-1.5.2, rack-protection-1.5.0, ruby-openid-2.1.8, sinatra-1.0, tilt-1.3.6] (Gem::LoadError) 
    from /usr/lib/ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec' 
    from /usr/lib/ruby/1.9.1/rubygems.rb:1210:in `gem' 
    from /home/user/.gem/ruby/1.9.1/bin/jekyll:18:in `<main>' 

回答

0

你需要讓紅寶石知道安裝的寶石在哪裏。環境GEM_HOME控制這一點,所以你可以做這樣的事情:

export GEM_HOME=/home/user/.gem/ruby/1.9.1 
$GEM_HOME/bin/jekyll help 
0

,而不是試圖安裝一個用戶和另一個下運行,爲所有用戶安裝。

在共享環境主機上,如果您具有「sudo」功能,或者系統管理員可以爲所有人全局安裝普通的sudo gem install ...

一般的Ruby安裝工程的方式。

通常,作爲開發者,我們希望在我們自己個人的沙箱中運行Ruby的,所以我們可以改變和安裝Ruby版本和加載不同版本的寶石沒有它包裝盒上的影響等。

一旦代碼準備測試和生產,我們希望它在一個共享的環境,所以我們只有一個Ruby安裝所有應用程序之間共享,這通常運行相同的用戶。即使這些應用以不同的用戶身份運行,他們仍然使用相同的Ruby。

他們通過默認環境和路徑做到這一點。如果這沒有意義,請與系統管理員聯繫。