在前面,我們學會了使用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