问题标签 [rbenv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
11780 浏览

ruby-on-rails - rbenv:没有 gemsets 生存

TL;博士

  • 不要为宝石烦恼;可以同时安装多个版本的 gem。
  • $ gem-based-binary _version_ args必要时,使用符号指定要执行的版本。
  • bundle exec当您有一个指定版本的 Gemfile 时使用。

更新: 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 还支持拥有多个Named Gem Sets。每个项目都有自己独立的 gem 集合(包括 rails 本身),称为 gemset:

注意:项目文件夹的创建应该通过使用所需版本rails new的 rails 的命令来完成(恕我直言) ,因为骨架文件会随着版本的变化而变化。(也许我应该重新审视这个前提?)

捆绑器方法:我一直在使用rbenv而不是 RVM,但我对工作流程的理解不是很清楚。在README.md中,Sam Stephenson 写道“rbenv 不......管理 gemsets。Bundler 是管理应用程序依赖项的更好方法。” 有一个插件 ( rbenv-gemset ) 可以获得与 rvm 的 gemsets 相同的结果,但 Sam 显然更喜欢使用 Bundler。不幸的是,他没有详细说明工作流程会是什么样子。甚至Bundler网站也没有明确地将如何将一个项目与另一个项目隔离开来。几个博客 要点来救援,建议以下~/.bundle/config文件:

(顺便说一句,我不确定“---”是什么意思。文档没有提到它,而且似乎没有什么区别。)

这有效地为每个 Rails 项目提供了自己的 gemset,将 gem 存储在 ProjectX/vendor/bundle/ 中。事实上,rails 本身将(重新)安装在那里,使项目完全独立于我的环境的其余部分,一旦我运行bundle install.

但是房间里的大象首先是创建 rails 项目文件夹的鸡与蛋问题 为了使用 RailsA 创建 ProjectA 文件夹,我需要先安装 rails(及其众多依赖) 。但是当我想创建 ProjectB 时,我必须切换到使用 RailsB。如果没有 gemset,我必须进行一些认真的升级/降级。不酷。

一个可能的解决方案就是不用担心我使用什么版本的 rails 来创建 ProjectX 文件夹。如果我然后使用 rails 3.0 创建一个 3.2 项目,我可以手动创建应用程序/资产树。但这让我很恼火。没有更好的方法吗?

0 投票
1 回答
122 浏览

ruby-on-rails - 使用 RBENV 时添加到我的 Ruby 项目的文件

在安装 RBEnv 并重建我的 ROR 项目之后,我现在似乎已经在我的项目中添加了很多很多文件。它们位于 /vendor/local 中,并且似乎与您通常在 /Library/Ruby/Gems 中找到的内容相同。

如果没有这些文件,我的项目将无法运行(我收到消息Could not find rake-0.9.2.2 in any of the sources.

我在安装 RBEnv 时遇到了困难。我有我怀疑是其他问题(就像我必须bundle exec rails而不是仅仅运行rails)。我怀疑我做错了什么,我的项目中不应该有这些文件。我想知道的是:

1)这些文件应该在那里吗?

2)如何最好地解决这个问题(如果这不是它应该如何工作)?

3)如果最好的方法是重新开始并重新安装rbenv,我该如何清除它?

0 投票
7 回答
6088 浏览

ruby - 如何在 vim 中使用正确的 ruby​​?如何在 VIM 中修改 $PATH?

我在 Lion 上使用带有 ruby​​ 支持的普通 Vim(由gist安装)。我将 ruby​​ 与 rbenv 一起使用,所以我的路径看起来像 /users/me/.rbenv/shims:.....

从 vim 内部的路径是

甚至我可以创建和修改环境变量:

路径仍然以 /usr/bin 开头。

那么如何在 ~/.rbenv/shims 中访问我的 ruby​​ 1.9.3 而不是 /usr/bin 中的系统 ruby​​?

0 投票
1 回答
1526 浏览

rbenv - 无法使用 rbenv 安装 RMagick

我在我的 Ubuntu 10.04 服务器上使用 rbenv 并且我已经安装了 ImageMagick,但我无法让 RMagick 成功安装。我收到以下错误消息

有任何想法吗?

0 投票
2 回答
6416 浏览

ruby - rbenv:权限被拒绝

我正在关注 Ryan 的 RailsCast 第 339 集。我已经安装了 rbenv 并且可以运行ruby -v. 我退出了我的会话,当我试图回来时(通过su deployerfrom root,我得到了这个错误

这是rbenv文件:

第 20 行是cd "$cwd"

当我尝试回到会话时为什么会出现此错误的任何想法?

0 投票
0 回答
1004 浏览

ruby-on-rails - Unicorn Rails 堆栈 + Vagrant 不为某些资产提供服务

我正在使用带有nginx + unicorn + rails的 Rails Stack用于生产服务器,但出于测试目的,我将其暂存在 Vagrant 下。在执行此操作时,我遇到了 rails 应用程序的一个奇怪行为,其中经常没有提供一个或其他资产,即没有提供 application.css,因此整个页面显示时没有应用任何样式。

我用谷歌搜索了这个问题,发现 Vagrant 的 FS 驱动程序没有完全实现,这会在使用 Apache 时带来一些问题(没有发现任何关于 nginx 的提及)。解决这个问题的方法是通过添加sendfile off 来禁用 sendfile;到配置文件。而且……没用。

此外,我查看了日志(Rails、unicorn 和 nginx),发现当文件没有被提供时,任何日志中都没有提到它。这让我想到问题可能出在 Vagrant通过 VM共享rails app文件夹的机制中。正如 vagrant 的网站所述,Vagrant 使用 Virtual Box 的共享文件夹,与其他替代方案相比速度相当慢(如图所示,解决方法是设置 NFS 共享文件夹。所以,我决定试一试 NFS,结果是……还是一样的。不幸的是,有些资产无法提供服务。

有人对此有任何想法吗?我已经搜索了很长一段时间,但没有找到除我在这里描述的那些之外的任何指针。

我在用着:

Mac OS X 10.6.8 + rbenv(开发)

Vagrant + nginx + rbenv + unicorn + bundler(到阶段)

独角兽.rb

/etc/nginx/sites-enabled/appname

0 投票
1 回答
2317 浏览

ruby-on-rails-3 - ruby - heroku:找不到命令

这个问题之前已经发布过,但答案没有奏效。我应该 proberley 提到我对 ruby​​ 完全陌生。我在做教程时遇到了错误,
步骤如下:

[first_app (master)]$ gem install heroku

我明白了

但是当我尝试

[first_app (master)]$ heroku keys:add

我明白了

然后我尝试了一堆卸载 gem 更新包重新安装它,但这并没有帮助

/Users/vng/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1/gems/bundler-1.1.3/lib/bundler/rubygems_integration.rb:147:in `block in replace_gem': heroku is not part of the bundle. Add it to Gemfile. (Gem::LoadError) from /Users/vng/.rbenv/versions/1.9.3-p125/bin/heroku:18:in'`

/Users/vng/.rbenv/shims:/Users/vng/.rbenv/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

我的宝石环境

RubyGems 环境:
- RUBYGEMS 版本:1.8.11
- RUBY 版本:1.9.3(2012-02-16 补丁级别 125)[x86_64-darwin11.3.0]
- 安装目录:/Users/vng/.rbenv/versions/1.9.3 -p125/lib/ruby/gems/1.9.1
- RUBY 可执行文件:/Users/vng/.rbenv/versions/1.9.3-p125/bin/ruby
- 可执行目录:/Users/vng/.rbenv/versions/1.9 .3-p125/bin
- RUBYGEMS 平台:
- ruby
​​ - x86_64-darwin-11
- GEM 路径:
- /Users/vng/.rbenv/versions/1.9.3-p125/lib/ruby/gems/1.9.1
- /用户/vng/.gem/ruby/1.9.1
- GEM 配置:
- :update_sources => true
- :verbose => true
- :benchmark => 假
- :backtrace => 假
- :bulk_threshold => 1000
- 远程源:
- http://rubygems.org/

非常感谢您的帮助

0 投票
2 回答
772 浏览

ruby-on-rails - rbenv 捆绑安装错误

根据我的一位 Rubyist 朋友的建议,我一直在研究 Ruby on Rails 3 教程,最近从 RVM 切换到 rbenv。

不幸的是,现在当我创建一个新项目然后尝试$ bundle install我得到这个错误:

我已经阅读了一些 rbenv 文档等,但仍在努力在这里找到问题。作为参考,gemfile如下:

0 投票
1 回答
1627 浏览

rake - 为什么即使 rake 似乎存在,bundler 也无法安装 rake?

我在使用 rbenv 和 bundler 时遇到了一些问题。当我在我的应用程序上捆绑安装时,我收到一条错误消息,指出安装 Rake 时发生错误。

我认为这与 rbenv 没有指向 gems 的写入路径有关——但我并不积极。

为什么当 rake 出现时,bundler 无法安装 rake?

控制台输出

0 投票
4 回答
773 浏览

ruby - 为什么使用 rbenv 安装 Ruby 失败?

我遵循了本指南:http ://samsoff.es/posts/how-to-install-ruby-193

rbenv install 1.9.3-p125在控制台中输入。

Ruby 安装正常,但是当我运行ruby -v它时仍然显示版本 1.8.7。

需要进行哪些更改才能使其正常工作?