在cygwin和powershell中看到不同的gem列表

我在powershell和cygwin中使用了gem list命令,并且都显示了不同的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的版本也有两种不同。

为什么会这样? 此外,我在使用rails时遇到bundle install问题(在Cygwin和Powershell中都是int)。 可能是因为这个吗?

如何确保gem的一致性? 不通过Powershell / cygwin安装gem使其可用于整个系统?

因此,我想安装一个新的Gems和Rails副本,这些副本在Powershell和cygwin中是一致的。 我怎么做?

在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/ 

我只能根据你给出的信息来猜测,但听起来你在cygwin和windows中安装了一个单独版本的ruby。

告诉我们发生了什么的简单方法是在两个shell中执行ruby -vgem environment ,这将告诉您正在使用哪个ruby版本,以及ruby认为它正在使用的版本,以及Rubygems寻找gem的位置。

为了确保Windows上gem的一致性,我建议安装一个ruby并使用Bundler通过Gemfile维护你的gem。 删除你通过cygwin安装的ruby,并确保你使用的ruby在两个环境中是相同的(尝试ruby -v

但是,我不确定您为什么会根据您提供的信息收到捆绑包错误。

更新后编辑

所以你肯定安装了两个不同版本的ruby,每个版本都有自己独特的gem。 你不能在cygwin中使用windows版本,所以我要做的就是卸载cygwin版本(使用cygwin setup.exe来执行此操作!如果你没有它,请从cygwin网站再次下载。你可以指明要移除的软件包以及添加)并确保/cygdrive/c/ruby193/bin在您的cygwin路径中,以便which rubywhich gem指向此目录。