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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM