【问题标题】:Gem installation error for non-root user非root用户的Gem安装错误
【发布时间】:2012-09-05 01:57:01
【问题描述】:

我以 root 用户身份在我的 CentOS 服务器上进行了 RVM 单用户安装,所以 rvm 位置是 /usr/local.. 但是,现在我们必须使用个人用户帐户。
所以现在如果我尝试安装一个新的 gem,例如 -

  1. gem install linecache19 -v '0.5.12'

    错误:执行 gem 时 ... (Gem::FilePermissionError) 您没有对 /usr/local/rvm/gems/ruby-1.9.2-p320@cams 目录的写入权限。

  2. sudo gem install linecache19 -v '0.5.12'

    /usr/local/rvm/rubies/ruby-1.9.2-p320/bin/gem:12:in `require': 没有要加载的文件 -- ruby​​gems (LoadError) 来自 /usr/local/rvm/rubies/ruby-1.9.2-p320/bin/gem:12

注意点:我想用个人用户帐户重新安装 rubies 和 rvm,并取消 root 安装。但是我已经在服务器上运行了一些应用程序作为暂存,所以想避免这种情况。

我该如何解决这些问题?

【问题讨论】:

    标签: permissions gem centos rvm


    【解决方案1】:

    您显然错过了阅读RVM installation documentation 和整体RVM docs

    对于第 1. 部分,您需要运行 rvmsudo rvm get stable 并将您的用户添加到 rvm 组。

    对于 2. 部分,不要使用 sudo 它会丢失所有环境设置 - 这会导致您看到错误,请将您的用户添加到 rvm 组或运行rvmsudo

    【讨论】:

    • 我也碰巧在防火墙后面。我在 bashrc,curlrc 中添加了代理。但是安装仍然失败,似乎是由于连接问题 - `/usr/local/rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/net/ http.rb:644:in initialize': Connection timed out - connect(2) (Errno::ETIMEDOUT)...Requesting http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p320.tar.gz 从命令行运行 http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p320.tar.gz 下载 tar 就好了,所以代理正在工作。
    • 这是不相关的问题,您可以将--proxy ... 传递给rvm,此标志将成为调用curl -x ... 的一部分,格式为<[protocol://][user@password]proxyhost[:port]>(引用man curl)。
    • --proxy 选项没有帮助。自从我开始使用非 root 用户后,所有这些 rvm/bundle/gem-installations/proxy 问题 都来了。作为 root 用户,一切都很稳定。我已将我的用户帐户分配给 root 共享的所有组。 groups nraj nraj : nraj bin daemon sys adm disk wheel apache rvmgroups root root : root bin daemon sys adm disk wheel.
    • @nraj 如果它适用于 root,您需要确保用户可以访问 root 拥有的所有配置/文件。
    • 谢谢@mpapis。我会将您的答案标记为正确。虽然我仍在寻找我的根用户配置/文件访问和 nraj 用户访问之间缺少的链接。
    猜你喜欢
    • 2014-01-20
    • 2018-07-06
    • 2011-05-01
    • 2016-10-18
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    相关资源
    最近更新 更多