RVM在linux上有什么优点?

发布于 2024-11-15 20:00:06 字数 833 浏览 2 评论 0原文

请理解我并不是想抨击 RVM。我只是想了解为什么它在 Ruby 社区如此受欢迎。

使用 RVM 似乎有两个主要原因 - 管理/在不同版本的 Ruby 之间切换,以及管理每个项目的特定 gemset。然而,在 Linux 上似乎有更简洁的方法可以实现相同的目标:

  • 我可以安装不同的 ruby​​ 版本 从存储库通过 常规包管理器,或构建 从源代码并作为包安装。 我可以使用在版本之间切换 update-alternatives(至少在 Debian、Ubuntu、Fedora 上)。
  • 我可以使用 Bundler 来管理一组 不同项目的宝石,如 此博文中概述。

鉴于上述情况,我很困惑为什么要使用 RVM 来管理 Ruby 版本和 gem。使用 bash 脚本在包管理器之外的系统上安装软件的想法感觉非常黑客,这种感觉得到了 这篇博文

作为一名 Mac 用户,我完全是猜测,但我认为 OS X 可能在 Ruby 社区中非常流行。如果没有像 update-alternatives 这样的系统来在 OS X 上切换 ruby​​ 版本,RVM 可能是最好的解决方案,并且这个想法也被延续到了 Linux 上......就像我说的,这只是一个猜测。

那么为什么 RVM 如此受欢迎,为什么我应该更喜欢它而不是 Debian 或 Ubuntu 上的常规包管理器 + Bundler?

Please understand that I'm not trying to bash RVM. I would just like to understand why it's so popular in the Ruby community.

There appears to be two main reasons to use RVM - to manage/switch between different versions of Ruby, and to manage a specific gemset per project. However there seem to be much cleaner ways of achieving the same thing on linux:

  • I can install different ruby versions
    from the repositories through the
    regular package manager, or build
    from source and install as a package.
    I can switch between versions using
    update-alternatives (on Debian, Ubuntu, Fedora at least).
  • I can use Bundler to manage sets of
    gems for different projects, as
    outlined in this blog post.

Given the above, I'm confused as to why I would want to use RVM to manage Ruby versions and gems. The idea of using a bash script to install software on my system outside the package manager feels very hackish, a feeling backed up by this blog post.

Not being a Mac user I am totally guessing here, but I thought it might be that OS X is very popular in the Ruby community. If there is no system like update-alternatives for switching ruby versions on OS X, RVM might be the best solution and this idea has carried over to linux too.. like I said, this is just a guess.

So why is RVM so popular, and why should I prefer it over the regular package manager + Bundler on Debian or Ubuntu?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

聊慰 2024-11-22 20:00:06

如果您需要像我一样使用不同版本的 Ruby 和特殊 Rails 管理许多项目(我有 3 个项目需要管理,其中使用 Rails 2.3.5、Rails 3.0.5 和 Rails 3.1 rc1),那么 RVM 是必要的解决方案。您可能知道 Rails 2.3.x 没有捆绑程序支持并使用旧的 gem,因此版本管理是使开发更容易的方法。我希望我对你有一点帮助。

If you need to manage many project with diferent versions of Ruby and special Rails like me (I have 3 project to manage wich uses Rails 2.3.5, Rails 3.0.5 and Rails 3.1 rc1) do RVM is nessesary solution. As you may know Rails 2.3.x has no bundler support and uses old gems so version managing is the way to make developing easier. I hope I helped you alittle.

℉絮湮 2024-11-22 20:00:06
  1. RVM 是可移植的
  2. update-alternatives 在全球范围内工作,RVM 在 shell/脚本上下文中工作 - 我认为它正在修改环境路径。现在想象一下一台服务器上有两个应用程序:一个是 1.8.7,另一个是 1.9.2
  3. 使用 Ruby EE 需要手动安装 - 使用 RVM 只需一个命令即可安装。
  4. 我在 Debian 中仅使用 1.8.7 或仅使用 1.9.2 gem 的混合 gem 目录时遇到了太多问题。
  5. 轻松备份 - 只需复制 .rvm 目录即可。
  6. 一致的集群(同一平台) - 只需共享一个 .rvm 目录。
  1. RVM is portable
  2. update-alternatives works globally, RVM works in shell/script context - I suppose it is modyfying env paths. Now imagine having two apps on one server: one 1.8.7 and another 1.9.2
  3. Usage of Ruby EE requires manual installation - with RVM it is matter of one command to install it.
  4. I had too much problems with mixed gem dirs with 1.8.7 only or 1.9.2 only gems in Debian.
  5. Easy backup - just copy .rvm dir.
  6. Consistent clustering (same platform) - just share one .rvm dir.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文