gpt4 book ai didi

ruby - 为什么是 RVM 全系统?

转载 作者:数据小太阳 更新时间:2023-10-29 06:48:06 27 4
gpt4 key购买 nike

我已经设置了一个 Rails 生产环境:
* 名为 deploy 的用户下的 Rails 应用程序。
* 部署用户只是一个没有 sudo 权限的普通用户。
* 部署用户使用自己的沙盒 rvm(没有系统范围),所以任何 ruby​​ 都只在部署用户下。
* 运行 apache 的用户无权访问 ruby​​ 环境,也不需要访问权限,因为 apache 不需要 ruby​​。
* deploy 用户运行一个 unicorn 集群。

这个 rvm 非系统范围的配置对我来说非常有用。我看到的优势是:
* 我不需要在每次安装 gem 时都使用 sudo。
* Ruby是沙盒化的,只对deploy用户可用,通过最小化提高了系统的安全性。 Apache 不关心 ruby​​,所以它无法访问它!

我看到的唯一缺点是我们不能使用 passenger-apache-module 或 passenger-nginx-modules,但是 passenger standalone 来拯救!

我的问题:为什么互联网上的每个人都倾向于使用 RVM 全系统安装?我找不到一篇关于在生产中以非 sudo 模式使用 RVM 的帖子。我在这里错过了最关键的部分吗?我想知道在生产环境中非 sudo rvm 安装有什么不好。

谢谢!

最佳答案

我总是为部署做一种混合:

  • 我在系统范围内安装了 RVM(但它只对 rvm 组的用户可用)
  • 我创建了一个专门的用户,它属于不同的组:rvm、db(mysql、postgres 或任何您使用的)、nginx 等...

这样你就可以:

  • 在不使用 sudo 或 root 的情况下完成所有与网络相关的管理任务
  • 使用 capistrano 无需担心特权或运行 ruby​​ 命令
  • 保持对特权的控制并从任何地方使用 ruby​​
  • 完美地使用 bundler

如果你在特定用户下安装 RVM,那么你不能在该用户之外使用 ruby​​。

关于ruby - 为什么是 RVM 全系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6387263/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com