标签: bundler

你如何撤消捆绑安装--without

你怎么撤消运行

bundle install --without development
Run Code Online (Sandbox Code Playgroud)

现在,我在开发组中有宝石被忽略,因为我运行了一次...(注意我已经尝试删除gemfile.lock无济于事)

ruby-on-rails bundler

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

rbenv:没有宝石的幸存

TL; DR

  • 不要打扰宝石; 可以同时安装多个版本的gem.
  • 必要时,使用$ gem-based-binary _version_ args表示法指定要执行的版本.
  • 使用bundle exec指定版本的Gemfile时使用.
gem install rails -v 3.2.13
rails _3.2.13_ new Project2
cd Project2
bundle exec rails server
Run Code Online (Sandbox Code Playgroud)

更新时间: 2015-06-04

我三年前写过这个问题.部分地,它是基于错误的假设,部分情况从那时起发生了变化.感谢@indirect的原始答案,我想提请注意@kelvin的更新(不太热烈)的答案,如上所述.

我的错误假设:一次只能安装一个gem的单个版本,因此需要gemsets来隔离命名空间.不对.可以同时安装多个版本的gem.从命令行调用时将使用最新的一个,除非您有一个Gemfile指定版本约束并通过命令调用命令bundle exec,或指定版本作为其第一个参数.

另请参阅如何从命令行调用旧版本的gem?re:下划线版本表示法.


原始问题:

我有多个项目正在使用不同版本的Rails.我有一个工作流程(如下所述),用于使用特定版本的rails创建项目,并保持项目彼此隔离.我想尝试其他工作流程,特别是使用rbenv而不是RVM,但目前尚不清楚如何这样做.

问题:当使用rbenvbundler而不是rbenv-gemset或rvm 时,创建多个rails项目 的最佳当前实践是什么,每个项目使用不同版本的rails .

用例: 我有两个rails项目,名为ProjectA和ProjectB.ProjectA是使用一个版本的rails("RailsA")开发的,而ProjectB使用不同的版本("RailsB").如何安装两个版本?

GEMSETS方法: 当我第一次开始使用Rails开发时,我使用了RVM.除了支持多个并发安装的ruby之外,RVM还支持具有多个命名宝石集.每个项目都有自己独立的宝石集合(包括rails本身),称为gemset:

rvm gemset create RailsA
rvm gemset use RailsA
# RailsA.  Note: My question is not version-specific.
gem install rails --version …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems ruby-on-rails bundler rbenv

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

Heroku推被拒绝,未能通过Bundler安装宝石

我正在努力将我的代码推送到Heroku.在搜索Google和Stack Overflow问题后,我找不到解决方案.这是我尝试"git push heroku master"时得到的结果:

Heroku receiving push
-----> Rails app detected
-----> Detected Rails is not set to serve static_assets
       Installing rails3_serve_static_assets... done
-----> Gemfile detected, running Bundler version 1.0.3
       Unresolved dependencies detected; Installing...
       Fetching source index for http://rubygems.org/
       /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/remote_fetcher.rb:300:in `open_uri_or_path': bad response Not Found 404 (http://rubygems.org/quick/Marshal.4.8/mail-2.2.6.001.gemspec.rz) (Gem::RemoteFetcher::FetchError)
        from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/remote_fetcher.rb:172:in `fetch_path'
.
....
Run Code Online (Sandbox Code Playgroud)

最后:

FAILED: http://docs.heroku.com/bundler
 !     Heroku push rejected, failed to install gems via Bundler

error: hooks/pre-receive exited with error code 1
To git@heroku.com:myapp.git
 ! [remote rejected] master …
Run Code Online (Sandbox Code Playgroud)

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

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

当我使用Bundler时,为什么要关心RVM的Gemset功能?

我只是不明白.我想,Bundler的开发是为了解决宝石之间的版本冲突.因此我require "bundler/setup"知道Bundler将加载我所有宝石及其依赖项的正确版本.现在,RVM非常适合管理多个Rubies,我知道,但为什么我应该关心Gemset功能呢?我在这里想念一下吗?它能使我的开发更容易吗?也许,你们中的一些人可以给我一些关于开发和生产的完美RVM + Bundler工作流程的一些提示.

我也不知道RVM何时开始切换到另一个Ruby.我知道.rvmrc我的项目中可以有一个文件,但是我必须cd到这个目录才能进行切换吗?

此外,我通常使用Passenger进行开发,因为Passenger.prefpaneMac OS中集成非常棒.我还能用RVM做到这一点还是有更好的方法呢?Passenger是否识别.rvmrc文件并切换到正确的Gemset?

ruby workflow passenger bundler rvm

41
推荐指数
2
解决办法
4992
查看次数

Bundler不使用rbenv,找不到[gem]

我刚刚从rvm切换到rbenv,我正在尝试使用bundler进行gem管理.运行bundle install并尝试运行一个简单的sinatra应用程序(ruby app.rb),我得到这个:

Could not find haml-3.1.4 in any of the sources
Run `bundle install` to install missing gems.
Run Code Online (Sandbox Code Playgroud)

bundle install再次跑步没有效果.还尝试bundle update了另一个问题回复的建议.

这是我的Gemfile:

source "http://rubygems.org"

gem "sinatra"
gem "haml"
Run Code Online (Sandbox Code Playgroud)

这就是bundle show产生的

* bundler (1.0.22)
* haml (3.1.4)
* rack (1.4.1)
* rack-protection (1.2.0)
* sinatra (1.3.2)
* tilt (1.3.3)
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序所需要的:

require "rubygems"
require "bundler/setup"
require 'sinatra'
Run Code Online (Sandbox Code Playgroud)

我敢说这是一种路径问题,其中bundler和rbenv没有一起玩.我试过通过rbenv的文档查看,但无法找到任何东西.

注意:在另一个sinatra应用程序中,我尝试运行它时会得到以下内容:

Could not find addressable-2.2.7 in any of the sources
Run `bundle …
Run Code Online (Sandbox Code Playgroud)

ruby sinatra bundler rbenv

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

如何从Gemfile中查看依赖树?

这样做时我收到以下错误 bundle install

Make sure that `gem install couchbase -v '1.3.3'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)

现在,我没有把这个宝石包括在内Gemfile,所以它来自一些依赖.我怎么能弄清楚哪个宝石依赖于这个沙发基础宝石?

因为bundle install失败了,我不必Gemfile.lock弄清楚这种依赖性.

ruby gem bundler

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

错误:无法构建gem本机扩展 - 安装mysql2时出错

运行bundle install时出错

Installing mysql2 (0.3.11) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
...
Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)

当我运行确保gem install mysql2 -v '0.3.11'.我仍然得到相同的错误.

ruby mysql rubygems ruby-on-rails bundler

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

无法在 macos-10.15.6 上捆绑安装 puma 4.3.5 或 gem puma 与 ruby​​-2.6.6

无法在 macos-10.15.6 上使用 ruby​​-2.6.6 捆绑安装 puma 4.3.5 或 gem puma 尝试捆绑我的项目的依赖项,但 puma 4.3.5 出现错误。有人知道这个吗?

xxxxxxxxxxxx

这是错误内容:

fetching puma 4.3.5
Installing puma 4.3.5 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    current directory: /Users/lxj/.rvm/gems/ruby-2.6.6/gems/puma-4.3.5/ext/puma_http11
/Users/lxj/.rvm/rubies/ruby-2.6.6/bin/ruby -I /Users/lxj/.rvm/rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0 -r ./siteconf20200731-28585-1eobsvu.rb extconf.rb
checking for BIO_read() in -lcrypto... yes
checking for SSL_CTX_new() in -lssl... yes
checking for openssl/bio.h... yes
checking for DTLS_method() in openssl/ssl.h... yes
checking for TLS_server_method() in openssl/ssl.h... yes
checking for SSL_CTX_set_min_proto_version in openssl/ssl.h... yes
creating Makefile

current directory: …
Run Code Online (Sandbox Code Playgroud)

ruby macos rubygems bundler

40
推荐指数
1
解决办法
8215
查看次数

捆绑包可以告诉我Gemfile中哪些宝石有更新版本(例如,干捆绑更新)

有没有办法在假装模式下运行bundle update,类似于Rails生成器的-p(假装)标志或cap -n(干运行)标志?

我想象的是:

$> bundle update -p
Fetching source index for http://rubygems.org/
The following gems have updated versions:
...
list of gems
...
Run Code Online (Sandbox Code Playgroud)

ruby bundler

38
推荐指数
1
解决办法
4441
查看次数

ruby - bundle install/update太慢了

我刚刚在虚拟机中运行的虚拟ubuntu 12.04 32bit上安装了RVM,Ruby,Rails等.现在我遇到了第一个rails项目bundle installbundle update需要很长时间的问题.即使我用rails创建一个新项目(包括bundle install).

我只使用标准宝石:

source 'https://rubygems.org'

gem 'rails', '3.2.12'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

group :development do
  gem 'sqlite3', '1.3.5'
end


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '3.2.5'
  gem 'coffee-rails', '3.2.2'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

 gem 'uglifier', '1.2.3'
end

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

ruby rubygems ruby-on-rails bundler

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