0

Ruby on Rails で PATH 変数の設定に問題があります。制約は次のとおりです。Ruby 1.8.7 と Rails 2.2.2 と Rubygems 1.3.5 を使用する必要があります。コマンドの出力は次のとおりです。

hemant@hemant-laptop:~$ which gem
/usr/bin/gem

hemant@hemant-laptop:~$ which ruby
/usr/local/bin/ruby

hemant@hemant-laptop:~$ which rails
/var/lib/gems/1.8/bin/rails

hemant@hemant-laptop:~$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.5
  - RUBY VERSION: 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]
  - INSTALLATION DIRECTORY: /var/lib/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - EXECUTABLE DIRECTORY: /var/lib/gems/1.8/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
    - /var/lib/gems/1.8
    - /home/hemant/.gem/ruby/1.8

.bashrc次の行をファイルに追加しました。

export PATH=$PATH:/var/lib/gems/1.8/bin
export PATH=$PATH:/usr/bin/gem

PATH変数をエコーすると:

hemant@hemant-laptop:~$ echo $PATH

usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:bin:/usr/games:/var/lib/gems/1.8/bin:/usr/bin/gem

実際の問題はscript/server、Rails アプリ ディレクトリで実行すると、次のエラーが発生することです。

./script/../config/../vendor/rails/railties/lib/rails/vendor_gem_source_index.rb:1:in 'require': no such file to load -- rubygems (LoadError)

ググってみると、変数の設定の不備によるものだとわかったのですがPATH、どのような値をつければいいのかわかりません。上記の 2 つのexportステートメントは、ヒットと試行にすぎませんが、問題は解決しませんでした。

どの値PATHを設定する必要があるか、およびさまざまなコマンドの出力から値を推測する方法を教えてください。

[編集]

実行すると、次のようになりgem listます。

actionmailer (2.2.2)
actionpack (2.2.2)
activerecord (2.2.2)
activeresource (2.2.2)
activesupport (2.2.2)
chronic (0.10.2)
diff-lcs (1.2.4)
image_science (1.2.1)
libv8 (3.16.14.3)
mysql (2.9.1)
rack (1.5.2)
rails (2.2.2)
rake (0.8.7)
ref (1.0.5)
rspec (1.2.9)
rspec-core (2.14.6)
rspec-expectations (2.14.0)
rspec-mocks (2.14.4)
rspec-rails (1.2.9)
rubygems-update (2.1.10)
therubyracer (0.12.0)
ZenTest (4.3.0)
4

1 に答える 1

0

実行可能ファイルを含む新しいパスでパスを拡張するには、ディレクトリを指定する必要があります。gem コマンドでは、実行可能ファイル自体を指しています。

これを試して:

export PATH=$PATH:/usr/bin:/usr/local/bin:/var/lib/gems/1.8/bin

これには、パス内のすべての実行可能ファイルが含まれている必要があります。再試行する前に、必ず .bashrc をリロードしてください。

source ~/.bashrc

問題を解決するもう 1 つの解決策は、古いものを保持できるほど古い仮想マシンを起動することです。おそらくubuntu 12.04は十分に古いです。

于 2013-10-26T12:50:46.253 に答える