3

gem listこのコマンドを powershell と cygwin で使用しましたが、どちらも異なる gem リストを示しています。Cygwin ショー

*** LOCAL GEMS ***

bundler (1.2.3)
json (1.7.5)
minitest (2.12.1)
rake (0.9.2.2)
rdoc (3.12)

powershellにいる間、次のように表示されます:

*** LOCAL GEMS ***

io-console (0.3)
json (1.5.4)
minitest (2.5.1)
rake (0.9.2.2)
rdoc (3.9.4)
sass (3.2.1)

そのため、同じ gem のバージョンも 2 つ異なります。

なぜそうなのですか?また、bundle installレールの使用中に問題が発生していました(CygwinとPowershellの両方で)。このせいでしょうか?

gem の一貫性を確保するにはどうすればよいですか? Powershell/cygwin 経由で gem をインストールしても、システム全体で利用できるようになりませんか?

そこで、Powershell と cygwin で一貫した gem と Rails の新しいコピーをインストールしたいと思います。それ、どうやったら出来るの?

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

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.23
  - RUBY VERSION: 1.9.3 (2012-11-10 patchlevel 327) [i386-cygwin]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: /usr/bin/ruby.exe
  - EXECUTABLE DIRECTORY: /usr/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-cygwin
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.9.1
     - /cygdrive/c/SPB_Data/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

Windows PowerShell では次のようになります。

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.23
  - RUBY VERSION: 1.9.3 (2012-04-20 patchlevel 194) [i386-mingw32]
  - INSTALLATION DIRECTORY: C:/Ruby193/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: C:/Ruby193/bin/ruby.exe
  - EXECUTABLE DIRECTORY: C:/Ruby193/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-mingw32
  - GEM PATHS:
     - C:/Ruby193/lib/ruby/gems/1.9.1
     - C:/SPB_Data/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/
4

1 に答える 1

2

あなたが提供した情報に基づいて推測することしかできませんが、cygwin と windows に別々のバージョンの ruby​​ がインストールされているようです。

何が起こっているかを知る簡単な方法の 1 つは、両方のシェルでruby -vandを実行gem environmentすることです。これにより、使用している Ruby のバージョン、Ruby が使用していると考えているバージョン、Rubygems が gem を探している場所がわかります。

Windows での gem の一貫性を確保するために、1 つの ruby​​ をインストールし、Bundler を使用して Gemfile を介して gem を維持することをお勧めします。cygwin でインストールした ruby​​ を削除し、使用する ruby​​ が両方の環境で同じであることを確認します (試してくださいruby -v) 。

ただし、提供された情報に基づいてバンドラー エラーが発生する理由がわかりません。

更新後に編集

つまり、2 つの異なるバージョンの ruby​​ がインストールされており、それぞれに固有の gem セットがあることになります。cygwin では Windows 版を使用できないので、cygwin 版をアンインストールします (これには cygwin setup.exe を使用します! 持っていない場合は、cygwin の Web サイトから再度ダウンロードしてください。追加するだけでなく削除するパッケージ)/cygdrive/c/ruby193/binが cygwin パスにあることを確認して、 がこのディレクトリwhich rubyを指すようにします。which gem

于 2012-12-28T14:45:02.763 に答える