标签: gemfile

如何在更新后保持Gemfile中的所有宝石兼容

我的问题已在这里提出,但我试图了解其背后的原因,而不是如何解决它.

我得到的错误是;

You have already activated rspec-core 2.7.1, but your Gemfile requires rspec-core 2.6.4. Using bundle exec may solve this. (Gem::LoadError)
Run Code Online (Sandbox Code Playgroud)

现在我已经获得了各种解决方案,比如使用"mpapis-bundler",或创建"捆绑exec"的简写,但我的印象是那是什么

$bundle install --binstubs
Run Code Online (Sandbox Code Playgroud)

是为了.

更具体地说,由于我的gemfile中没有为rspec-rails声明的版本号,为什么我有这种不兼容性?我尝试时也发生了错误

$rake db:migrate
Run Code Online (Sandbox Code Playgroud)

告诉我

You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.9.2. Consider using bundle exec.
Run Code Online (Sandbox Code Playgroud)

任何解释将不胜感激.

编辑:
我的应用程序的所有宝石都在宝石集中,我已经更新了我的宝石.更新是否应确保相关的宝石兼容?

rspec ruby-on-rails bundler ruby-on-rails-3.1 gemfile

15
推荐指数
1
解决办法
1万
查看次数

为什么我的环境要求我运行bundle exec?

每当我运行rake命令(即rake routes)时,我都会收到此错误:

You have already activated rake 0.9.2.2, but your Gemfile requires rake 0.9.2. Using bundle exec may solve this.
Run Code Online (Sandbox Code Playgroud)

如果我运行bundle exec rake routes它的工作原理.

我希望能够简单地rake routes无需跑步bundle exec rake routes.

我已经查看了其他类似错误的问题并尝试了各种解决方案(如运行bundle update)无济于事.

另外,在我gemfile指定的gem 'rake', '0.9.2'

有什么建议?

rake ruby-on-rails ruby-on-rails-3 gemfile

15
推荐指数
1
解决办法
7380
查看次数

如何在协作上下文中处理bundler更新(Gemfile.lock)?

我是一个特定项目的独立程序员,但现在有其他人加入了合作者.只有我在图片中,bundler更新是顺利的,我从来没有想过Gemfile.lock被Git跟踪.

新协作者bundle install在克隆回购后运行,并Gemfile.lock更新如下:

Gemfile.lock的

@@ -141,7 +141,7 @@ GEM
       rack-ssl (~> 1.3.2)
       rake (>= 0.8.7)
       rdoc (~> 3.4)
-      thor (< 2.0, >= 0.14.6)
+      thor (>= 0.14.6, < 2.0)
     raindrops (0.10.0)
     rake (0.9.2.2)
     rdoc (3.12)
@@ -164,7 +164,7 @@ GEM
     sprockets (2.1.3)
       hike (~> 1.2)
       rack (~> 1.0)
-      tilt (!= 1.3.0, ~> 1.1)
+      tilt (~> 1.1, != 1.3.0)
     thor (0.16.0)
     tilt (1.3.3)
     treetop (1.4.10)
@@ -175,7 +175,7 @@ GEM …
Run Code Online (Sandbox Code Playgroud)

collaboration version-control ruby-on-rails bundler gemfile

15
推荐指数
1
解决办法
2万
查看次数

Heroku构建在uglifier上失败

我的最小应用程序在本地运行,我没有捆绑错误.但是,当我推送到heroku时,构建在资产期间失败:预编译步骤:

...
Bundle completed (3.24s)
Cleaning up the bundler cache.
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompole
rake aborted!
LoadError: cannot load such file -- uglifier
(in /tmp/build_.../app/assets/javascripts/application.js)
Run Code Online (Sandbox Code Playgroud)

注意:
1.我没有在本地使用uglifier gem
2.我没有文件app/assets/javascripts/application.js

我尝试过这些Gemfile解决方案:
A)添加uglifier gem
B)将uglifier添加到资产组
C)从Gemfile中完全删除uglifier并rake卸载所有版本

下一步是什么?

ruby-on-rails heroku gemfile

15
推荐指数
3
解决办法
3720
查看次数

您已经激活了机架1.6.0,但您的Gemfile需要机架1.6.4

与机架1.3.2的问题类似.你已经激活了机架1.3.2,但你的Gemfile需要机架1.2.3 - 我You have already activated rack 1.6.0, but your Gemfile requires rack 1.6.4在尝试使用Puma和Nginx在生产中运行Rails(4.2)时遇到了问题.

bundle update rakerm Gemfile.lock && bundle install似乎没有帮助,到目前为止我唯一的解决方案是手动更改rack (1.6.4)rack (1.6.0)Gemfile.lock.

rack ruby-on-rails nginx gemfile

15
推荐指数
1
解决办法
8633
查看次数

如何在开发过程中将Bundler/Gemfile配置为使用不同的gem源?

我有一个Sinatra应用程序,需要我在本地开发的另一个gem.我在配置Bundler以在开发过程中使用我的本地gem代码时遇到了麻烦,但我在生产中使用了我的宝石代码.

理想情况下我可以这样做,但Bundler不允许你指定两次相同的gem:

# Doesn't work:
group :development do
  gem 'awesome', :path => "~/code/awesome"
end

group :production do
  gem 'awesome', :path => "vendor/gems/awesome-0.0.1"
end
Run Code Online (Sandbox Code Playgroud)

与此同时,我每次部署时都会手动出售gem并更新Gemfile中的gem源,这非常麻烦.我的工作流程如下:

  1. 在开发期间指向我的本地gem(gem 'awesome', :path => "~/code/awesome")
  2. 准备部署时,将gem解压缩 vendor/gems
  3. 更新Gemfile以指向vendored gem(gem 'awesome', :path => "vendor/gems/awesome-0.0.1")
  4. 运行bundle install(更新Gemfile.lock)
  5. 部署代码
  6. 返回第1步.

太麻烦了!我想做一些更简洁的事情,而不仅仅是编写Rake任务来自动化我当前的设置.

这种情况的最佳工作流程是什么?

ruby gem rubygems bundler gemfile

14
推荐指数
2
解决办法
6099
查看次数

我可以在gemfile中强制gem的依赖吗?

如果有两个宝石,AB.A1.0.0取决于B1.0.0.

在我的Gemfile中:

gem 'A', '~> 1.0.0'
Run Code Online (Sandbox Code Playgroud)

然后跑bundle.它将生成一个Gemfile.lock,如:

A (1.0.0)
  B (1.0.0)
Run Code Online (Sandbox Code Playgroud)

但如果我想强行A使用B1.0.1,最佳做法是什么?而且,如果B1.0.1不是发布而是github标签?

ruby github bundler gemfile

14
推荐指数
1
解决办法
4695
查看次数

为什么'jQuery-Rails'经常在资产组之外

为什么我经常gem 'jquery-rails:assets小组外面看到它?

group :assets do
  gem 'sass-rails', " ~> 3.1.0"
  gem 'coffee-rails', " ~> 3.1.0"
  gem 'uglifier'
end

gem 'jquery-rails'
Run Code Online (Sandbox Code Playgroud)

如果我把它放进去,会不会有错误行为?

谢谢!

jquery ruby-on-rails-3 gemfile

13
推荐指数
1
解决办法
989
查看次数

Bundler:总是在Gemfile中使用最新版本的git branch

我有一个带有私有git repo的Gemfile,格式如下:

gem 'magic_beans', :git => "git@git.example.com:magic_beans.git', :branch => 'super_beans'

当我bundle install,Gemfile.lock将其锁定到特定的SHA修订版.

我可以让bundler始终检查并使用最新的SHA提交和/或更新Gemfile.lock吗?请注意,当我将更新推送到super_beans分支时,我不会修改gem版本.

理想情况下,每次运行bundle它都会检查上游git repo以获得更新的分支SHA修订版.

ruby git bundler gemfile

12
推荐指数
1
解决办法
9874
查看次数

Ruby中的"Gemfile"在哪里?

我经常在互联网上的文档中看到"把它放在Gemfile中".我不知道这个"Gemfile"在哪里和什么.如果我安装了gem,那么我已经安装了它.谁需要比"Gemfile"?Gemfile的位置或内容,以及为什么使用它?

ruby install rubygems gemfile

12
推荐指数
2
解决办法
2万
查看次数