【问题标题】:Need to use Root to do "gem update --system"需要使用Root来做“gem update --system”
【发布时间】:2011-09-05 16:25:46
【问题描述】:

运行 10.04 64 位 Ubuntu。我有一个部署用户,并且“捆绑安装”没有问题,但必须更新 gem 并尝试了这个:

deploy@pluto:/opt/ruby/bin$ gem update --system

错误:

Updating rubygems-update
Fetching: rubygems-update-1.8.10.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /opt/ruby/lib/ruby/gems/1.8 directory.

用 sudo 试过:

deploy@pluto:/opt/ruby/bin$ sudo gem update --system
[sudo] password for deploy: 
sudo: gem: command not found

然后以root身份登录,没有问题!?

root@pluto:/opt/ruby/bin# gem update --system
Updating rubygems-update
Fetching: rubygems-update-1.8.10.gem (100%)
Successfully installed rubygems-update-1.8.10
Installing RubyGems 1.8.10
RubyGems 1.8.10 installed

这是我的 $PATH 变量,有和没有 sudo,有什么问题吗?

deploy@pluto:~$ echo 'echo $PATH' | sudo sh
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

deploy@pluto:~$ echo $PATH
/opt/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

【问题讨论】:

  • 运行 which gem,获取该路径并在 sudo 调用中使用它。
  • 我找到了另一个线程:stackoverflow.com/questions/2619695/… - 有人说不要使用 sudo,否则普通用户将无法访问它们,是真的吗?
  • 你是用什么方法安装Ruby的?

标签: ruby-on-rails ubuntu gem command-line-interface


【解决方案1】:

您不需要sudo 来安装gem。看起来当你第一次安装 Ruby/Rails 时,你使用了 sudo。这会将 ruby​​/rails 安装在 home 文件夹的兄弟文件夹中。有多种资源告诉您如何在 Ubuntu 机器上设置 Ruby/Rails,仅对我有用的资源(我按照这些说明在 4 个 Ubuntu 机器上安装 Rails)是 Toran Billups 的文章 here。仔细阅读,应该已经搭建好了环境。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 1970-01-01
    相关资源
    最近更新 更多