我在 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)。难道是因为这个?
如何确保 gem 的一致性?通过 Powershell/cygwin 安装 gem 不会使其对整个系统可用吗?
所以,我想安装一个全新的 gems 和 Rails 副本,它在 Powershell 和 cygwin 中是一致的。我该怎么做?
在 cygwin 中运行 gem 环境
给出了这个:
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 -v
和 gem 环境
,这将告诉您正在使用哪个 ruby 版本,以及 ruby 认为它使用的是什么版本,以及 Rubygems 在哪里寻找 gems。
为了确保 gems 在 windows 上的一致性,我建议安装一个 ruby 并使用 Bundler 通过 Gemfile 维护您的 gems。删除您通过 cygwin 安装的 ruby,并确保您在两个环境中使用的 ruby 是相同的(尝试 ruby -v
)
但是,根据您提供的信息,我不确定为什么您会收到捆绑程序错误。
更新后编辑
所以您肯定安装了两个不同版本的 ruby,每个版本都有自己独特的 gem 集。你不能在cygwin中使用windows版本,所以我会做的是卸载cygwin版本(使用cygwin setup.exe来做到这一点!如果你没有它,从cygwin网站重新下载。你可以指出要删除和添加的包)并确保 /cygdrive/c/ruby193/bin
在您的 cygwin 路径中,以便 which ruby
和 which gem
指向这个目录。
关于ruby-on-rails - 在 cygwin 和 powershell 中查看不同的 gem 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14070627/