新手问题 ruby 1.9.2 和 rails 3.2.5 都安装好后,重启终端出错了

ximeiji · 2012年06月05日 · 最后由 rubyin 回复于 2013年08月15日 · 11224 次阅读

我的 ruby1.9.2 和 rails3.2.5 都在 ubuntu11.10 上安装好后,重新终端后出现下面的错误,请问有谁知道这是为什么吗? 谢谢~~~

使用 rvm 了吗?

怎么装的?

我的安装过程是:$ sudo apt-get install build-essential git-core curl $ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm) $ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> ~/.bashrc
$ rvm notes $ sudo apt-get install build-essential openssl libreadline6 libreadline6-dev zlib1g zlib1g-dev zlib libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison $ rvm install 1.9.2 $ rvm use 1.9.2 $ rvm --default use 1.9.2 $ ruby –v $ gem install rails $ rails -v 到这里这些都是对的,版本号也对,这是在新建一个工程访问http://localhost:3000RuntimeUnavailable,教程上有错误提示,于是我修改Gemfile,但是打开里面是空的,发现这样我就直接关闭了终端,重新打开终端后,我习惯性的查看版本号就出现了上图所示的错误。的时候出现

没有安装 Rails?

你直接用 gem install rails 会把 rails 装到系统 gemset 里,不建议这样做。

#6 楼 @jimrokliu 那怎么安装呢?我看到很多的教程都是这样安装的

#5 楼 @chucai 倒数第二步就是安装 rails

可以把需要的 gem 写在 Gemfile 里 之后 bundle install 就可以了

可能是 shell 环境的问题,这是在 ubuntu 下的配置,可以试试。

#安装 RVM

$ sudo apt-get install curl
$ sudo apt-get install git-core
$ sudo apt-get install ruby
$ curl -L get.rvm.io | bash -s stable
$ source ~/.rvm/scripts/'rvm'
$ source ~/.bash_profile

#安装 ruby 需要的库

$ rvm requirements
$sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion

#安装 RVM 1.9.3

$ rvm install 1.9.3 --patch railsexpress
rvm use ruby-1.9.3-p194 --default

#10 楼 @jimrokliu 谢谢了。。那我需要把以前的都全部卸载?

#9 楼 @ltl3884 现在是直接第一步 rails new xxx 都提示 rails 尚未安装,所以不能您这样做吧

@ximeiji 新手还是按照我的方法去装,慢慢你会有感觉,讲的很多你也理解不了。

#10 楼 @jimrokliu 后面也像我之前那样用 gem 安装 rails 吗?

卸载 rvm 1.$ rvm implode

  1. $ gem uninstall rvm
  2. $ rm -Rf /etc/rvmrc ~/.rvmrc

#15 楼 @jimrokliu 卸载时出现 lorfeu@ubuntu:~$ gem uninstall rvm 程序 'gem' 已包含在下列软件包中:

  • ruby1.9.1
  • rubygems 请尝试:sudo apt-get install <选定的软件包>

后面这样做

$ rvm gemset create rails3
$ rvm gemset use rails3 --default
$ gem install rails

然后创建你的应用

$ rails new app
$ cd app
$ vi .rvmrc

需要编辑一个.rvmrc 的配置文件,可以从网上找到,以后你每次 cd 到 app 目录,都会执行.rvmrc,将你当前 shell 的环境设置成你需要 ruby 版本和 gemset 版本。

#16 楼 @ximeiji 没关系,问题不大。

#18 楼 @jimrokliu lorfeu@ubuntu:~$ source ~/.bash_profile -bash: /home/lorfeu/.bash_profile: 没有那个文件或目录 这个错误也没有什么影响吧?

#19 楼 @ximeiji 是,你的环境不一样。

#20 楼 @jimrokliu 首先非常感谢您!我安装您的步骤安装好了,然后在网上找了说在.rvmrc 文件里加上 rvm use 1.9.3@rails325(不知道对不对)这一句,保存后运行 rails s,出现 (ExecJS::RuntimeUnavailable),我又打开 gemfile(里面居然是空的,不知道怎么回事),在里面加上 gem 'execjs' gem 'therubyracer'这两句,bundle install 之后又 rails s,还是出现同样的 (ExecJS::RuntimeUnavailable),这是怎么回事啊?我看到很多解决方法都说是加上这两句成功了

@ximeiji 关于 JS 的 Runtime 你可以考虑装个 Node.js 解决,这样就不用每次改 Gemfile

sudo apt-get install python-software-properties

sudo apt-add-repository ppa:chris-lea/node.js

sudo apt-get update

sudo apt-get install nodejs npm

终于初步测试访问 localhost 通过了,谢谢各位的指点和帮助,无尽的感谢!!

#20 楼 @jimrokliu 不好意思再次打扰你,昨天我本来按照您的方法都装好了,还用了一晚上都没有出错,只是我从安装到后面的使用都同一个终端(即没有重启过终端)。。今天早上我刚打开终端,就出现昨天的那个问题,这到底是怎么回事呢?

echo $PATH 看看

这一般是因为路径没有在 PATH 的问题 你 sudo 安装的所以当前用户 profile 没有此 PATH, 如果 echo $PATH 没有 ruby gems 的目录, 那么按照下面的文章 http://www.troubleshooters.com/linux/prepostpath.htm 加入,重进终端就 OK 了

欢迎来到 Rails 滴世界~

#25 楼 @ximeiji 运行如下命令: cat ~/.bash_login

能否看到类似下面的结果: [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session as a function

如果是,请继续参考:https://rvm.io/integration/gnome-terminal/

#28 楼 @reyesyang lorfeu@ubuntu:~$ cat ~/.bash_login cat: /home/lorfeu/.bash_login: 没有那个文件或目录

#29 楼 @ximeiji 那 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session as a function 是在.bash_profile 里,还是.bashrc 里面呢?

#27 楼 @huobazi 我试着在.bahs_profile 里面和/etc/profile 里面加入 PATH=$PATH:/data/myscripts export PATH 这两句,第一个修改没问题,但是第二个却用:wq 保存不了,提示 E45:已设定选项”readonly”(请加!强制执行),这是权限不够,于是用 chmod 777 /etc/profile修改权限后再重新打开开修改还是一样的问题,按照提示输入:wq!提示E212:无法打开并写入文件

这样吧 你直接编辑 /etc/profile 加入 PATH=$PATH:/var/lib/gems/1.8/bin <---你的 ruby gems 路径 然后 重进终端

#32 楼 @ximeiji 你的 rvm 是 Single-User installations 吗?

#34 楼 @reyesyang 不好意思,我不清楚,但是我是按照这个安装的 $ sudo apt-get install curl $ sudo apt-get install git-core $ sudo apt-get install ruby $ curl -L get.rvm.io | bash -s stable $ source ~/.rvm/scripts/'rvm' $ source ~/.bash_profile

#33 楼 @huobazi 我找不到/etc/profile 的具体位置,只能用命令打开编辑。。还有这是我找到的 rubygems 路径,这么多感觉不太对 lorfeu@ubuntu:~$ find ~ -name rubygems /home/lorfeu/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/rubygems /home/lorfeu/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems /home/lorfeu/.rvm/help/rubygems /home/lorfeu/.rvm/scripts/rubygems /home/lorfeu/.rvm/src/ruby-1.9.3-p194/doc/rubygems /home/lorfeu/.rvm/src/ruby-1.9.3-p194/test/rubygems /home/lorfeu/.rvm/src/ruby-1.9.3-p194/test/rubygems/rubygems /home/lorfeu/.rvm/src/ruby-1.9.3-p194/lib/rubygems /home/lorfeu/.rvm/src/rvm/help/rubygems /home/lorfeu/.rvm/src/rvm/scripts/rubygems /home/lorfeu/.rvm/src/rubygems-1.8.24/test/rubygems /home/lorfeu/.rvm/src/rubygems-1.8.24/test/rubygems/rubygems /home/lorfeu/.rvm/src/rubygems-1.8.24/lib/rubygems

#35 楼 @ximeiji 开一个新终端,运行 bash -l 然后执行 rails -v 是否正常?

#37 楼 @reyesyang bash -v 出现: bash: -1: 无效的选项 rails -v 出现: 程序“rails”尚未安装。您可以使用以下命令安装: sudo apt-get install rails

#38 楼 @ximeiji 那个是小写的 L

#39 楼 @reyesyang rails -v 出来还是一样的错误

可否把下列文件邮件 ([email protected]) 或者共享给我看看,(可能有的文件没有,只发有的即可): ~/.bashrc ~/.bash_profile ~/.bash_login ~/.profile /etc/profile /etc/bash.bashrc

#40 楼 @ximeiji 可否把下列文件邮件 ([email protected]) 或者共享给我看看,(可能有的文件没有,只发有的即可): ~/.bashrc ~/.bash_profile ~/.bash_login ~/.profile /etc/profile /etc/bash.bashrc

#25 楼 @ximeiji 这个不要紧,因为 rvm 管理了你的 ruby,所以一般要执行 rails 之前,先选择一下 ruby 和 ruby 的 gemset。

$ rvm use 1.9.3 --default
Using /home/.rvm/gems/ruby-1.9.3-p194
$ rvm gemset use rails3 --default
Using ruby-1.9.3-p194 with gemset rails3
$ rails -v

因为你用了 rvm,所以会比较干净,可以使用多个个 gemset 开发。但如果你嫌这样设置太麻烦,那你需要写一个.rvmrc 的文件,放在你工作的目录下,然后 cd 到这个目录就自动设置了。

#43 楼 @jimrokliu 现在如果一打开终端就输入$ rvm use 1.9.3 --default,直接就提示: 程序“rvm”尚未安装。您可以使用以下命令安装: sudo apt-get install ruby-rvm

#43 楼 @jimrokliu 用 bundle,不用 gemset。

#3 楼 @ximeiji 奇怪,这个安装地址应该已经失效了,新的是这个

curl -L get.rvm.io | bash -s stable

#44 楼 @ximeiji 试试

source ~/.rvm/scripts/rvm

rvm 安装完之后在 ~/.rvm/bin 下。

#45 楼 @Rei 哦,那是我之前安装用的,现在安装用的是 @jimrokliu 给的安装步骤,他在 10 楼给出的那个

#46 楼 @jimrokliu 这样做以后就都对了,那我还想问一下,就是以后每次在终端中要使用 ror 之前,都需要这样指定 ruby 和 rails 的版本么?还有就是我在网上找了一下怎样配置.rvmrc 文件,但是感觉还是不太懂,您可以详细指点一下吗?谢谢

#48 楼 @ximeiji 如果你不觉得麻烦的话当然可以这样,不过我相信你受不了的时候就去学.rvmrc 怎么配置。.rvmrc 我没有仔细学习过,大概就是拷贝一份,改一下 ruby 和 gemset 就完了。

#49 楼 @jimrokliu 呵呵,好的,我知道了,谢了

@jimrokliu 编辑~/.bashrc 文件,在文件的最后,加入下面一句 [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 重启终端,over

#51 楼 @40hood 我还是喜欢为每个项目设置.rvmrc,会比较干净,这样系统默认的 ruby 环境不会被影响。

#51 楼 @40hood [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"这个在安装后就早已经放在~/.bashrc 文件中了

#51 楼 @40hood [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"早就放在~/.bashrc 文件下了,但是重启终端还是一样的 ruby 版本不对,rails 没有安装的提示,所以还是要用之前指定。。

上 RVM 官网,看看最新的安装指南吧

#52 楼 @jimrokliu 这个不影响每个项目的 .rvmrc , 因为项目的 .rvmrc 会覆盖其他设置的

#55 楼 @40hood 好的,谢谢~~

#56 楼 @40hood Good,值得我改进一下。

好不容易看完那么长长的回复啊。

额。。。楼上 +1.。。。没有 linux 基础确实压力相对大些。。。

http://blog.sina.com.cn/s/blog_671ada9701017k3d.html

打开【终端】 进入菜单【编辑】 选择【配置文件首选项】设置 选择【标题和命令】选项卡 勾选【命令】下【以登录 Shell 方式运行命令】

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