我调查的一个Rails应用程序 - 督促服务器安装了两个版本,一个特定的宝石,我怎么能告诉督促程序是使用哪个版本?
Answer 1:
在Rails 3和导轨4,使用bundle show
在Rails 2, rake gems
会打印出所安装的宝石,相关性和版本,冷冻等。
Answer 2:
如果使用捆绑,那么你就可以从版本
bundle show [gemname]
Answer 3:
我花了比预期更长找到并通过这个信息进行排序,所以我想在这里发布在一个地方供他人浏览。 我也想澄清一下有点Rails的3:
脚本/约已被替换
rake about
的细节在这里 。 如果你有兴趣的为Rails 3可以找到他们所有的命令行更改列表在这里 。rake gems
不会对Rails 3下工作。相反,你应该使用bundle show
举个例子,您可以将宝石的所有版本保存到一个文件用于查看:
gem list > all_gems.txt
你可以看到你的Rails应用程序与使用何种版本:
bundle show > project_gems.txt
使用Vim的一样的编辑器,你可以很容易地用Vimdiff看到的变化
Answer 4:
有可能是一个更直接的方式发现了这一点,但如果你加载了一个控制台,需要一个特定的版本,像这样:
gem 'RedCloth', '3.0.4'
它会告诉你什么版本已经被激活:
=> Gem::LoadError: can't activate RedCloth (= 3.0.4, runtime) for [], already activated RedCloth-4.2.2
Answer 5:
还有在列表中Gemfile.lock
,它位于应用程序的根目录。
出于这个原因,我离开Gemfile.lock
我不懂.gitignore
。 这救了我不止一次的时候我忘了指定的宝石版本GemFile
和宝石得到了与重大更改更新。
Answer 6:
在终端
bundle show [gem-name]
bundle show | grep [gem-name]
要么
gem list | grep [gem-name]
[宝石名称]应更换为宝石名称你要去找。
Answer 7:
尝试使用script/about
。 你config/environment.rb
也有关于它的信息。
在你config/environment.rb
,你可以指定一个特定的哪一个版本gem
应用程序应该使用。 但是,如果你有多个版本的gem
安装在你的机器上,你不指定版本,创业板的最新版本将被应用程序使用。
Answer 8:
gem list <gemname>
它会显示例如,所有匹配的宝石,如果有一个人做
gem list rack
然后个输出将是如下
*** LOCAL GEMS ***
rack (1.6.4)
rack-mount (0.6.14)
rack-test (0.6.3, 0.6.2, 0.5.7)
Answer 9:
script/about
将告诉你,你用的是什么,Rails核心和机架宝石的版本,而不是别的。 理想的情况是,如果你在寻找config/environment.rb
,应该有看起来像这样的一段:
# Specify gems that this application depends on and have them installed with rake gems:install
# config.gem "bj"
# config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net"
# config.gem "sqlite3-ruby", :lib => "sqlite3"
# config.gem "aws-s3", :lib => "aws/s3"
运气好的话,应用程序的作者将有包括任何所需的宝石和版本出现。 然而,版本可选在这个文件中,最终没有什么可以阻止从刚掴一名没有经验的开发人员require 'rubygems'; require 'some_random_thing'
require 'rubygems'; require 'some_random_thing'
在任何给定文件的顶部。
如果你看到正在需要的宝石,但没有指定版本,您可以键入gem list
来查看系统上所有的宝石的所有版本。 默认情况下,它会使用最新的一个可用。
Answer 10:
bundle exec gem which gem_name
可能是你可以用什么:
$› bundle exec gem which rails
/Users/xxxx/.rvm/gems/ruby-2.1.2@gemset/gems/railties-4.1.7/lib/rails.rb
Answer 11:
试试这个地方的宝石:
gem list gemname | grep -P '(^|\s)\Kgemname(?=\s|$)'
如果您使用的包:
bundle exec gem list gemname | grep -P '(^|\s)\Kgemname(?=\s|$)'
Answer 12:
捆绑秀gemname即,对于色器件,你必须编写像
bundle show devise
它会打印出当前宝石版本。
Answer 13:
在Gemfile中,应该有答案了:
gem 'rails', '4.0.0.rc1'