2013-04-19 16 views
17

私はここでいくつかの問題があります。私はRails 2.3プロジェクト(sshを通してプロダクションサーバに取り組んでいます - 理由を聞かないでください)で作業しています。ここにはGemfileがあります。 delayed_jobsが開始しようとしているとき、出力は私がbundler gemをインストールする必要があると言います。問題は、gemdirが/var/lib/gems/1.8/であり、そのディレクトリに対する書き込み権限がないことです。しかし、〜/ projects/shared/gems/ruby​​/1.8/gemsの下に私が書くことができるディレクトリがあります。宝石のインストールディレクトリを指定してください

どのようにして宝石のインストールパスを定義できますか?

+0

私が質問を正しく理解していれば、バンドルをインストールできます。--path your_path_here –

+0

問題は、バンドル自体をインストールすることです。アプリが動作するために必要ですが、何とかインストールされていません。 – Almaron

+0

オハイオ州、私は何かを見つける場合、病気を知らせてください –

答えて

10

だろうset

set GEM_HOME=[path]/projects/shared/gems/ruby/1.8/gems 

です:

ENV['GEM_HOME']="#{ENV['HOME']}/projects/shared/gems/ruby/1.8/gems" 
ENV['GEM_PATH']="#{ENV['GEM_HOME']}:/var/lib/ruby/gems/1.8" 
require 'rubygems' 
Gem.clear_paths 

この意志あなたのラックアプリにどこに見えるか教えてくださいr宝石。あなたはまた、単にバンドルはバンドラー構成ファイルを使用してインストールパスを設定することができます

export GEM_HOME="$HOME/projects/shared/gems/ruby/1.8/gems" 
export GEM_PATH="$GEM_HOME:/var/lib/ruby/gems/1.8" 
+2

Wtfは** config.ru **ファイルですか?.. – ulidtko

+0

config.ruはあなたのアプリのラック構成ファイルです – dpaluy

+4

私は持っていません。私はアプリも持っていない。私はRubyに他人のツールをインストールしようとしていますが、それには特定の宝石が必要です。私は 'gem install'を' sudo'しなければならないということに不快なので、私はここで宝石のパスを微調整する方法を探しています。あなたの答えは、私が探しているものを私に与えるものではありません。 – ulidtko

12

環境変数GEM_HOMEは、宝石のインストール場所を定義します。必要な場所に設定する必要があります。コマンドはOS固有です。 Windowsので

それはLinuxがあなたのconfig.ruファイルに以下を追加することができますexport

export GEM_HOME=~/projects/shared/gems/ruby/1.8/gems 
+0

成功して宝石をインストールしましたか?しかし、gem listコマンドはまだインストールされていないことを示しています。バンドルコマンドを使用しようとすると、gemをインストールする必要があります。 rvm gempathの出力には、共有されたgemsパスが正しく表示されます。 – Almaron

+0

@Almaron 'gem install bundler'を実行して、その場所にbundler gemをインストールし、 'bundle'コマンドの使用を有効にしてください。 – IKA

+0

'gem install bundler'を実行しましたが、gemが正常にイントールされました。しかし、私が 'gem list'を実行しようとすると、gemがインストールされていると表示されません。また、bundleコマンドも機能しません。 – Almaron

1

また、サーバー .bashrcに設定します。私はpostと書いて、役に立つかどうか確認することができます。ただ--install-dirオプションを使用して、指定したフォルダにFOO宝石をインストールするには

13

、すなわち

$ gem install --install-dir /path/to/gems/folder foo 

ときに役立ちます:1はbundle installを使用することはできません

  • - 例えば1はバンドル宝石自体をインストールしたい、または
  • sudo gem installコマンドは、デフォルトのインストールパスに起因する書き込み権限がないために失敗したバンドルフォルダに(Gemfileにリストされていない)宝石をインストールしたい場合

希望に役立ちます。

関連する問題