Rails 安装 rails 出现了问题

cursorzz · 2012年03月12日 · 最后由 debugs 回复于 2015年09月05日 · 9220 次阅读

本人 archlinux。通过 sudo gem install rails 安装时出现以下 Warning:

WARNING: You don't have /root/.gem/ruby/1.9.1/bin in your PATH, gem executables will not run. Successfully installed rails-3.2.2

提示安装成功。但是输入 rails 命令出现一下错误:

-> % rails zsh: correct 'rails' to 'tail' [nyae]? n zsh: command not found: rails

不知何解。在另一台 arch 上问题依旧。望高人指点

rvm 这步是必需的吗?因为我昨天安 heroku 也是同样的问题

#2 楼 @cursorzz 90% 的同学都用 rvm,所以一般是不 rvm 安装遇到的问题,大家都没发帮你解答

@ywencn 谢谢。我现在正在照教程安装。希望没啥问题了

你这个是用了 zsh 的原因,去 stackoferflow 一搜一大堆这样的问题

http://stackoverflow.com/questions/9320556/rails-missing-after-installing-oh-my-zsh 另我你看看你 .zshrc 文件

Example format: plugins=(rails git textmate ruby lighthouse)

plugins=(git rvm ruby rails autojump)

@ywencn 严格按照 wiki 的教程做了。rails 还是 command no found。哎~

@huobazi 我之前加载的 plugins 只有 git 和 ruby。添加后依旧不行。

plugins=(git rvm ruby rails) 这是我现在的 plugins

WARNING: You don't have /root/.gem/ruby/1.9.1/bin in your PATH

不懂 zsh,不过看起来跟这个有关,把这个目录加进 PATH 看看?

echo $PATH

看看你的 path 里 有 ruby rvm 么

我在。zshrc 里添加如下

PATH=$PATH:$HOME/.rvm/bin:$HOME/.gem/ruby/1.9.1/bin # Add RVM to PATH for sc ripting 。rails 成功运行! 谢谢诸位了。貌似是 PATH 的问题了

#11 楼 @cursorzz 如果用 rvm, 我感觉

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting


就够了,后面那个 ruby1.9.1 会不会把 ruby 版本写死了

我在另一台 arch(没有安装 rvm)的.zshrc 文件添加 PATH PATH=$PATH:$HOME/.gem/ruby/1.9.1/bin 可以 rails 了。看样子应该确实是zsh 的问题了。

@huobazi $HOME/.gem/ruby/1.9.1/bin 是我添加后 rails 才能用。不知道为什么。似乎是 ruby 的库被固定在了 1.9.1

@huobazi 我现在有理由怀疑是 archlinux 的问题了

大哥,你 sudo 了把,sudo 就悲催了。。。

别 sudo....

我一直用 arch,挺好的啊,没发现啥莫名其妙的问题

楼主的犯的错误是安装了 zsh 却没把 rvm 的路径写进去

#15 楼 @cursorzz 估计是 rvm 没载入,bash 也一样需要载入,不过 rvm 安装的时候会修改 bashrc,看来 zsh 要自己加

@shawnyu @fsword 我觉得这和 rvm 应该没啥关系吧。另一台 arch 没装 rvm。通过添加 ruby 库的 PATH 也可以了。 @vkill 请问下你的 ruby 库文件是 1.9.1 吗。我的 ruby 版本是 1.9.3.但是库文件还是原来的。之前纯用 ruby,没注意过

@jinleileiking 以前 gem 安装不 sudo 说我权限不够。然后就搞习惯了-_-!

#21 楼 @cursorzz rvm 就是通过设置你的环境变量达到切换的目的阿,最重要的环境变量就是 PATH,所以 rvm 出了问题,原则上你还是可以通过设置 PATH 来搞定

我刚才很疑惑为什么 rails 要装到 .gem/ruby/1.9.1. 而 bundler 却装到了 .rvm 相关目录下面了. google 了一下,网上有说是是因为 ruby 1.9.2 release FAQ 里面解释到:

Standard library is installed in /usr/local/lib/ruby/1.9.1 This version is a "library compatible version." Ruby 1.9.2 is almost 1.9.1 compatible, so the library is installed in the 1.9.1 directory.

不知道跟这个有没有关系....

@cursorzz 执行 cat ~/.gemrc 看下你的 gemrc 的信息!!! 如果里面有类似这行 --user-install 那就真 XXX 悲剧了. 我搞了一下午,就因为这个参数。它会把东西都装到 ~/.gem/ruby/1.9.1/ 里面。 所以会提醒我们没有把那个路径加到 PATH 里面。 去掉那个参数,不在PATH加那路径,一切运行正常。

我从来都没碰过 .gemrc!!!

---
:backtrace: false
:benchmark: false
:bulk_threshold: 1000
:sources:
- http://ruby.taobao.org/
:update_sources: true
:verbose: true

@ichord 几天没来了 (最近太忙了)..问题已解决,确实是 gemrc 的问题。所以如果有人遇到了类似的问题。请检查/etc/gemrc 和~/.gemrc 中是否会有--user-install.如果有请将其注释。

ps: rvm 确实是个东西啊

最后感谢所有的留言者。这贴可以结了

@ichord @cursorzz 我也是 rails 找不到(加载地址不对),没有遇到这位兄弟说的 --user-install 但是,是其他情况。我网上找了下,再看了下 ruby-china wiki,发现加载source ~/.rvm/scripts/rvm这句就可以

@mahone3297 这个方法是可以解决楼上没有解决的问题,但是每次打开 SHELL 都要重新加载此命令,有没有一次性解决的办法呢

31 楼 已删除

#30 楼 @rogary 应该是把source ~/.rvm/scripts/rvm放在 bashrc 里。zsh 的话应该类似。或者 bash_profile 中

#31 楼 @mahone3297 恩没错了

sudo gedit /etc/bash.bashrc

source ~/.rvm/scripts/rvm

添加到最后就解决了,谢谢

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"

zsh: command not found: curl

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