ubuntu中Ruby開發集成環境


因項目需要,主要是考慮到我們項目的高可變性,以及由此產生的高適應性,所以選擇用ruby。跟Java相比,ruby的確比較靈活,能寫出千變萬化的代碼。

但是,比較可悲的是,在windows7上面搭建ruby環境問題比較多。無論是基於cgywin,還是直接使用netbeans都不盡如人意。

因為想調整webserver使用nginx+thin,而不是webrick,所以,要考慮thin的適應性。沒想到,使用當前的ruby1.9.3 p134還有問題。在項目路徑下,每次運行thin start,到最后總是提示intercepter error,但是用webrick就是好的。可能thin跟1.9.3的還沒有很好的結合。

所以,切換到linux下試試環境。

經過見縫插針的努力,終於看到點希望,搭建好了thin server。

先總結一下,以備后用。我的os是ubuntu12

1.安裝rvm:

這個比較簡單,直接通過官網(https://rvm.io/rvm/basics/),照上面的說明做就可以:

 curl -L get.rvm.io | bash -s stable(如果提示沒有curl,就先sudo apt-get install curl)

安裝完成rvm,會有個提示,里面有說需要 source /home/eric/.rvm/scripts/rvm (這里可能根據不同的安裝路徑,有所不同),需要仔細看看那個安裝完成的提示。如果不做這一步,運行rvm時,會有rvm不是一個函數的錯誤提示。

2.安裝rvm的支持包:

如果不安裝這些包,在運行gem的時候,會出現少包的情況,那難免又要重新安裝和編譯,所以把這一步提前。

對照rvm的官網關於package的部分(https://rvm.io/packages/),主要有zlib和openssl,zlib是gem會用到的,openssl是rails中會用到的。所以,先通過官網的命令安裝:

rvm pkg install zlib

rvm pkg install openssl

3.安裝ruby

不多說了,直接上:

rvm install 1.9.2

rvm install 1.9.3

上面兩個命令都會獲取兩個版本的最新build。

4.設置默認ruby和gemset:(以下都會用到1.9.2,這個版本時間比較長,一些組件比較穩定)

rvm --default use 1.9.2

rvm有一套gem的管理機制,就是gemset,具體理論不多說,各位看官網吧。有些東西會在命令之間做個簡單說明。個人理解,因為gem都是放在ruby編譯器對應的gem路徑下的,就像是java的classpath。所以,應該先確定ruby版本,然后創建gemset,這個gemset是跟ruby對應的。如何查看gemset里面有哪些包,也很簡單只要指定了某個gemset,然后運行gem list就可以查看這個gemset里面的gem列表。

現在開始管理gemset:

創建gemset:rvm gemset create gemset_name

然后選擇啟用哪個gemset:rvm gemset use gemset_name(如果你忘了那個gemset,可以rvm gemset list查看)

啟用了對應的gemset之后,可以通過rvm gemdir查看正在使用的gemset路徑,當然,也可以通過rvm gemset list查看,在列表里會有箭頭指向正在使用的gemset。

現在就可以安裝各種gem了:gem install rails

5.rails安裝完成之后,創建項目:

rails new mytestproj

創建完成之后,我要使用thin和mysql,於是:

cd mytestproj

vi Gemfile

注釋掉sqlite,增加

gem 'mysql2'

gem 'thin'

保存退出,運行:

bundle install(我在運行時出現mysql沒有安裝的提示,於是又安裝了mysql server和apt-get install mysql-client-core-5.5,再運行這個命令)

運行正常。

6.測試啟動:

rails server thin

ok

又出問題了,提示execjs沒有js運行時錯誤,於是sudo apt-get install nodejs

再運行,這次真ok了。

以上是個人安裝過程的流水,筆記一頁,以供參考。

 

問題收集:

1.剛啟動rails項目時出現了如下的問題:

rails server thin
/home/eric/.rvm/gems/ruby-1.9.2-p320@athena-proj/gems/mysql2-0.3.11/lib/mysql2.rb:9:in `require': libmysqlclient.so.18: cannot open shared object file: No such file or directory - /home/eric/.rvm/gems/ruby-1.9.2-p320@athena-proj/gems/mysql2-0.3.11/lib/mysql2/mysql2.so (LoadError)
解決方法:

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18

如果還是找不到,可能是因為你的服務器是64位的緣故,再做如下處理:

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18


免責聲明!

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



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