3

Ubuntu 12.04 64 ビットにバンドル インストールを使用して factory girl をインストールしていますが、エラーが発生します。

Installing factory_girl (3.3.0) /usr/lib/ruby/vendor_ruby/1.8/rubygems/installer.rb:388:in `ensure_required_ruby_version_met': factory_girl requires Ruby version >= 1.9.2. (Gem::InstallError)
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/installer.rb:156:in `install'
from /usr/lib/ruby/vendor_ruby/bundler/source.rb:101:in `install'
from /usr/lib/ruby/vendor_ruby/bundler/rubygems_integration.rb:78:in `preserve_paths'
from /usr/lib/ruby/vendor_ruby/bundler/source.rb:91:in `install'
from /usr/lib/ruby/vendor_ruby/bundler/installer.rb:58:in `run'
from /usr/lib/ruby/vendor_ruby/bundler/rubygems_integration.rb:93:in `with_build_args'
from /usr/lib/ruby/vendor_ruby/bundler/installer.rb:57:in `run'
from /usr/lib/ruby/vendor_ruby/bundler/spec_set.rb:12:in `each'
from /usr/lib/ruby/vendor_ruby/bundler/spec_set.rb:12:in `each'
from /usr/lib/ruby/vendor_ruby/bundler/installer.rb:49:in `run'
from /usr/lib/ruby/vendor_ruby/bundler/installer.rb:8:in `install'
from /usr/lib/ruby/vendor_ruby/bundler/cli.rb:222:in `install'
from /usr/lib/ruby/vendor_ruby/bundler/vendor/thor/task.rb:22:in `send'
from /usr/lib/ruby/vendor_ruby/bundler/vendor/thor/task.rb:22:in `run'
from /usr/lib/ruby/vendor_ruby/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
from /usr/lib/ruby/vendor_ruby/bundler/vendor/thor.rb:246:in `dispatch'
from /usr/lib/ruby/vendor_ruby/bundler/vendor/thor/base.rb:389:in `start'
from /usr/bin/bundle:13

これが私のRubyです-v

ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]

私は RBenv を使用しています。コマンドの結果は次のとおりです: rbenv バージョン

1.9.3-p194 (set by /home/user/.rbenv/version)

コマンドの結果は次のとおりです: rbenv バージョン

1.9.2-p290
* 1.9.3-p194 (set by /home/user/.rbenv/version)

これが私のgemfileのfactory_girl_railsです

group :test do
 gem 'factory_girl_rails', '~> 3.3.0'
end

他にファイルが必要な場合はお知らせください。喜んで投稿します。誰もが理由を知っています

4

1 に答える 1

3

問題は、それが機能しrbenvていない、または何かと競合しているということではなく、単にそれを正しく使用するように実際に設定されていないということです。

私が最初に気付いたのは、gemインストール場所が次の場所にあることです。

/usr/lib/ruby/vendor_ruby

次のgem実行可能ファイルを使用:

/usr/bin

これは、次の場合にインストールされる、Ubuntu 12.04 rubyパッケージによって提供される「システムルビー」のように見えます。

sudo apt-get install ruby

そのため、インストールしたとしてもrbenv、実際には使用しておらず、gemをインストールしようとしても失敗します。具体的には、実際に実行しているルビーは、次の1.8.7行で証明されているように、Ubuntuシステムのルビーバージョンです。

/usr/lib/ruby/vendor_ruby/1.8/rubygems/installer.rb:388:in `ensure_required_ruby_version_met': factory_girl requires Ruby version >= 1.9.2. (Gem::InstallError)

要するに、エラーは問題が何であるかを正確に示しています-ruby以上factory_girlが必要であり、十分に新しいバージョンを実行していません。1.9.2

したがって、問題を修正するには、インストール手順に従って~/.bash_profile「ドットファイル」( 、~/.bashrcなど)を構成する必要があります。これにより、または、またはrubygemsの実行可能コマンドのいずれかを入力したときに、または実際にデフォルトのシステム提供のRubyではなく、管理対象のRubyを実行します。これは、最終的には、パスに「shims」ディレクトリ()を通常のディレクトリの前に置くことによって(そして、新しいrubyバージョンまたは新しいgemをインストールした後に実行することを忘れないことによって)達成されます。rbenv rubygemrakebundlerbenvrbenv~/.rbenv/shims$PATHrbenv rehash

次に、rbenv正しく構成する.rbenv-versionと、コマンドで作成されたディレクトリ内のファイルを利用できますrbenv local

于 2012-05-29T20:04:13.047 に答える