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的,说实话这块我不懂,希望了解的同学解答。
从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