新手问题 修改 gem sources 后遇到的问题

yuhaidonghd · 2013年11月03日 · 最后由 song940 回复于 2013年11月07日 · 5554 次阅读

操作系统是 Debian,原来修改过 sources,改成了淘宝的镜像。今天要安装一个 gem,就 sudo gem install bindata 。结果好长时间没反应, 加 -V 查看执行过程发现仍然是从 rubygems.org 下载。

$ gem sources
*** CURRENT SOURCES ***

http://ruby.taobao.org/

貌似没问题,想了想,尝试了一下下面的命令:

$ sudo gem sources
*** CURRENT SOURCES ***

https://rubygems.org/

原来问题在这。以前修改的只是普通用户的 source,当用以 root 身份执行 gem 时仍然使用默认的 source。我猜想这些配置应该是保存在用户主目录下吧。找了一下果然有一个 .gemrc 文件,里面确实有 sources 这一项。 找到了问题的根源,解决办法就很简单了,在 remove 和 add 两个 gem 命令前加 sudo 就好了。

$ sudo gem sources --remove https://rubygems.org/
$ sudo gem sources -a http://ruby.taobao.org/
$ sudo gem sources -l
*** CURRENT SOURCES ***

http://ruby.taobao.org

自己遇到的问题,不清楚该放到哪个板块。鉴于自己是个新手,就发到新手问题了。 淘宝的镜像没有明确指出这一点,可能会对想我这样的新手造成一定困惑,希望能添加一点说明。

感觉你的普通用户和超级用户,弄得有点混了。

一般不用 sudo gem install gem install 就 ok 了

#2 楼 @ZombieCoder 我的系统默认把 gem 安装到 /var/lib/gem 下面,没有 root 权限怎么安装?

匿名 #4 2013年11月03日

#3 楼 @yuhaidonghd 楼主没有上 rvm 么?

镜像不可能照顾到所有新手用户,这些是 Linux 基础

#4 楼 @francistm 没有,貌似没有多版本切换的需求。

是不是你没有删除系统自带的 ruby,然后自己又安装了一个,默认打开终端使用的是系统自带的 ruby?

#5 楼 @huacnlee 这。。。不算是 Linux 基础吧。说是 ruby 基础或 gem 基础我还承认,gem sourcessudo gem sources 读取、修改的不是同一个文件这种事,应该是在 gem 的说明里提到吧。找到了一个链接,算我基础不好。

#8 楼 @yuhaidonghd 你知道 sudo 和不带 sudo 执行命令是有区别的,这个问题就不是问题

#7 楼 @michael_roshen 我这里只有系统自带的 ruby,原因已经找到了。记下来只是为了提醒自己,顺便可能会帮到其他遇到同样问题的人。

#11 楼 @michael_roshen 原文里已经说了啊。 原来问题在这。以前修改的只是普通用户的source,当用以root身份执行gem时仍然使用默认的source。我猜想这些配置应该是保存在用户主目录下吧。找了一下果然有一个 .gemrc 文件,里面确实有sources这一项。 找到了问题的根源,解决办法就很简单了,在remove和add两个gem命令前加sudo就好了。

匿名 #13 2013年11月06日

#6 楼 @yuhaidonghd 即使不切换多版本,也可以将 Ruby 全部以当前用户的权限来运行吧?相对系统自带的还是方便管理了很多。

14 楼 已删除

#14 楼 @colin 这个招聘不太合规吧~ @huacnlee

需要 登录 后方可回复, 如果你还没有账号请 注册新账号