Ruby on Rails,使用gem安装rails,付解决It seems your ruby installation is missing psych (for YAML output).

在前面,我们学会了使用RVM的作用和利用RVM安装ruby并管理其版本的方法。

下一步就是使用ruby中的gem工具安装rails(rails也是ruby中的gem),关于gem是什么请移步《关于rubygem你需要知道的》

先使用rvm将ruby切换至需要的版本(我当前用的是1.9.3),因为rails将会被安装在当前使用的ruby版本目录中。不会的请移步《Ruby on Rails,在ubuntu中安装及使用rvm管理ruby版本》。

确认当前使用的gem命令是我想要安装rails的版本,没错就是这里。

abbuggy@abbuggy-ubuntu:~$ which gem
/home/abbuggy/.rvm/rubies/ruby-1.9.3-head/bin/gem

通过gem install 命令安装rails,安装是成功的,但是提示了错误:

It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.

abbuggy@abbuggy-ubuntu:~$ gem install rails
...
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
...

rails不自带依赖的libyaml,提示很清楚了,让我安装libyaml后重新安装ruby。

在新利得中明明是安装了libyaml的,说实话这块我不懂,希望了解的同学解答。

1352908137_4177

从google上察看别人的解决方案,需要安装名为libyaml-dev的包。

abbuggy@abbuggy-ubuntu:~$ sudo apt-get install libyaml-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列【新】软件包将被安装:
  libyaml-dev
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 0 B/66.4 kB 的软件包。
解压缩后会消耗掉 239 kB 的额外空间。
Selecting previously unselected package libyaml-dev.
(正在读取数据库 ... 系统当前共安装有 198558 个文件和目录。)
正在解压缩 libyaml-dev (从 .../libyaml-dev_0.1.4-2_i386.deb) ...
正在设置 libyaml-dev (0.1.4-2) ...
abbuggy@abbuggy-ubuntu:~$ 

安装完成后,卸载ruby准备重新安装。这时候可以使用uninstall命令,保留安装ruby时曾经下载的文件不用重下了。

abbuggy@abbuggy-ubuntu:~$ rvm uninstall ruby-1.9.3-head
/home/abbuggy/.rvm/src/ruby-1.9.3-head has already been removed.
/home/abbuggy/.rvm/rubies/ruby-1.9.3-head has already been removed.

和之前的操作一样,再次安装ruby和rails。就没有问题啦!

abbuggy@abbuggy-ubuntu:~$ rails -v
Rails 3.2.9

迫不及待的创建项目;启动启动!Oops!错啦!Could not find a JavaScript runtime.

abbuggy@abbuggy-ubuntu:~/test_site$ rails server
/home/abbuggy/.rvm/gems/ruby-1.9.3-head/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

好在这个问题我见过,缺少js运行环境,安装nodejs包来解决。

abbuggy@abbuggy-ubuntu:~$ sudo apt-get install nodejs

重新启动,一切正常了。

abbuggy@abbuggy-ubuntu:~/test_site$ rails server
=> Booting WEBrick
=> Rails 3.2.9 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-11-15 00:03:22] INFO  WEBrick 1.3.1
[2012-11-15 00:03:22] INFO  ruby 1.9.3 (2012-11-14) [i686-linux]
[2012-11-15 00:03:22] INFO  WEBrick::HTTPServer#start: pid=7301 port=3000
posted on 2012-11-15 00:42  边晓宇  阅读(3248)  评论(1编辑  收藏  举报