标签: bundler

rails bundle仅安装生产

抱歉,如果这是一个RTFM类型的问题,但我仍然是rails/ruby​​/bundler的新手,我有点困惑.

在我们的config/application.rb文件中有这个捆绑器段:

if defined?(Bundler)         
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end
Run Code Online (Sandbox Code Playgroud)

在我们中Gemfile我们使用不同的群体,例如

group :development, :test do
  gem "rspec-rails", ">= 2.7.0", :group => [:development, :test]
  gem 'shoulda-matchers'
  gem 'watchr'
  gem 'spork', '~> 1.0rc'
  gem 'spectator'                          
  gem 'debugger'
  gem 'wirble'
end
Run Code Online (Sandbox Code Playgroud)

但是当我运行RAILS_ENV=production bundle install(或bundle install --deployment)时,它仍然会从开发/测试组中安装宝石......

为什么会发生这种情况或如何使其正常工作?

bundler ruby-on-rails-3

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

Bundler:您正在尝试在更改Gemfile后以部署模式安装

我对bundler和capistrano很新,我试图将它们一起使用.当我尝试部署时,我收到消息:

您正在尝试在更改Gemfile后以部署模式安装.在别处运行`bundle install'并将更新的Gemfile.lock添加到版本控制.

我不知道如何满足抱怨的系统,我不明白为什么抱怨会出现,因为我在文档中读到:

如果Gemfile.lock确实存在,并且您已更新Gemfile(5),则bundler将使用Gemfile.lock中的依赖项来处理您未更新的所有gem,但会重新解析您更新的gem的依赖项.您可以在CONSERVATIVE UPDATING下找到有关此更新过程的更多信息.

我认为这意味着Bundler可以处理我的Gemfile不是它预期的事实.有帮助吗?

规格:Ruby 1.9.3,Rails 3.2.3,Capistrano 2.12.0,Bundler 1.1.4,Windows 7,部署到Posix机器.

编辑:我的Gemfile包含如下逻辑块:

unless RbConfig::CONFIG['host_os'] === 'mingw32'
  # gem 'a' ...
end
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails bundler

82
推荐指数
7
解决办法
5万
查看次数

为什么捆绑器不会安装JSON gem?

尝试运行时出现以下错误cap production deploy.

DEBUG [dc362284]    Bundler::GemNotFound: Could not find json-1.8.1.gem for installation
DEBUG [dc362284]    An error occurred while installing json (1.8.1), and Bundler cannot continue.
DEBUG [dc362284]    Make sure that `gem install json -v '1.8.1'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)

值得注意的是,此部署正在运行,而不是我升级到Ruby 2.1.0以消除编码错误.我本地升级,工作正常.我跑rvm install 2.1.0,并rvm use 2.1.0随后改变了我的.ruby-version文件,以反映该红宝石升级.

bundle install命令在本地工作,但当我ssh到目标服务器并运行此命令时,会产生相同的上述错误.

如果我跑,gem list我可以在宝石列表中看到这一点.

...
jquery-rails (3.0.4)
json (1.8.1)
less (2.3.2)
...
Run Code Online (Sandbox Code Playgroud)

如果我在gem install json -v '1.8.1'本地服务器上尝试推荐的解决方案,并在目标服务器上获得以下输出:

Building native extensions.  This could …
Run Code Online (Sandbox Code Playgroud)

gem capistrano ruby-on-rails bundler

80
推荐指数
11
解决办法
11万
查看次数

Ruby Gemspec依赖:可能有git分支依赖吗?

可能有一个git分支依赖,在mygem.gemspec里面?

我在想类似以下内容:

gem.add_runtime_dependency 'oauth2', :git => 'git@github.com:lgs/oauth2.git'
Run Code Online (Sandbox Code Playgroud)

......但它不起作用.

ruby dependencies rubygems bundler gemspecs

77
推荐指数
3
解决办法
4万
查看次数

使用捆绑执行耙或只是耙?

我只使用rake命令学习了Rails rake db:migrate; 但是,我读到我应该使用bundle exec rake ...而不仅仅是普通的rake.现在我对使用哪个感到困惑.

我应该使用bundle exec rake而不仅仅是简单的rake还是仅仅是偏好的东西?任何见解都将非常感谢!谢谢!

rake ruby-on-rails bundler

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

带有mysql2和rails3(bundler)的RuntimeError

我收到这个错误

`establish_connection': Please install the mysql2 adapter: `gem install activerecord-mysql2-adapter` (no such file to load -- active_record/connection_adapters/mysql2_adapter) (RuntimeError)
  from /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/activerecord-
Run Code Online (Sandbox Code Playgroud)

是整个错误和我的配置和gemfile的转储.

mysql ruby-on-rails bundler

76
推荐指数
5
解决办法
6万
查看次数

gem install pg --with-pg-config工作,bundle失败

当我跑(以root身份)

gem install pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

#-> gem instal pg -v '0.12.0' -- --with-pg-config=/usr/pgsql-9.1/bin/pg_config
Building native extensions.  This could take a while...
Successfully installed pg-0.12.0
1 gem installed
Installing ri documentation for pg-0.12.0...
Installing RDoc documentation for pg-0.12.0...
#-> 
Run Code Online (Sandbox Code Playgroud)

当我运行bundle install时:

Installing pg (0.12.0) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
--with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no …
Run Code Online (Sandbox Code Playgroud)

postgresql rubygems bundler pg

69
推荐指数
7
解决办法
7万
查看次数

如何降级捆绑包或升级rails?

我在我的gemfile中添加了omniauth gem并尝试运行bundle install,但是收到了有关rails和bundler版本不兼容的消息.我试图更新rails,但收到有关与其他gem不兼容的消息.如何将bundler降级到1.0?

$ bundle install
Fetching gem metadata from http://rubygems.org/......
Fetching gem metadata from http://rubygems.org/..
Bundler could not find compatible versions for gem "bundler":
  In Gemfile:
    rails (= 3.0.0) ruby depends on
      bundler (~> 1.0.0) ruby

  Current Bundler version:
    bundler (1.1.1)

This Gemfile requires a different version of Bundler.
Perhaps you need to update Bundler by running `gem install bundler`?
Run Code Online (Sandbox Code Playgroud)

$ bundle update rails
Fetching gem metadata from http://rubygems.org/......
Fetching gem metadata from http://rubygems.org/..
Bundler could not find …
Run Code Online (Sandbox Code Playgroud)

gem bundler omniauth ruby-on-rails-3 gem-bundler

69
推荐指数
5
解决办法
4万
查看次数

在Mountain Lion上安装Rmagick时出错

我见过其他人在Mountain Lion上安装RMagick同样的问题但是没有一个建议的解决方案允许我成功安装rmagick.

这是我得到的错误消息:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
checking for Ruby version >= 1.8.5... yes
checking for /usr/local/bin/gcc-4.2... yes
checking for Magick-config... yes
checking for ImageMagick version >= 6.4.9... yes
checking for HDRI disabled version of ImageMagick... yes
checking for stdint.h... yes
checking for sys/types.h... yes
checking for wand/MagickWand.h... yes
checking for InitializeMagick() in -lMagickCore... no
checking for InitializeMagick() in -lMagick... no
checking for InitializeMagick() in -lMagick++... no
Can't install RMagick 2.13.1. Can't find the …
Run Code Online (Sandbox Code Playgroud)

rmagick imagemagick bundler rvm osx-mountain-lion

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

我应该在我的Gemfile中指定确切的版本吗?

我注意到在rubygems.org上有很多宝石建议你用主要版本而不是精确版本来指定它们.例如...

haml-rails宝石 ......

gem "haml-rails", "~> 0.3.4"  # "$ bundle install" will acquire the 
                              # latest version before 1.0.
Run Code Online (Sandbox Code Playgroud)

然而,根据Bundler文档,它听起来像我最好确定这样的确切版本...

gem "haml-rails", "0.3.4"
Run Code Online (Sandbox Code Playgroud)

所以你的haml-rails gem和它的所有依赖都不会向前发展.如果您在几周之后在另一台机器上检查项目并运行,$ bundle install那么您将拥有与您指定的所有内容完全相同的版本.

我已经看到点发布破坏了东西,我认为Bundler的整个想法的一部分是" Bundle.lock"你所有的宝石版本.

但是在rubygems.org上他们使用"〜>"很多,所以也许我错过了什么?

任何澄清对我理解Bundler和gem管理都非常有帮助.

ruby rubygems ruby-on-rails bundler ruby-on-rails-3

64
推荐指数
3
解决办法
3万
查看次数