2011年2月23日 星期三

建立與運作第一個Rails Server

接下來就小試身手一下


建立Rails Server

1.建立Sever前先確認是否將啟動rails的路徑設定完成

$ sudo ln -s -f /var/lib/gems/1.8/bin/rails /etc/bin/rails

2.使用rails指令建立Server

$ rails 資料夾名(若未存在則會自動建立)

ex. $ rails FirstServer

等他跑完就完成建立Sever了

注意: 在下rails指令前先利用cd將工作目錄移動到要存放Server資料的位置(若是有SVN則最好建立在SVN的控管目錄下)


運作Server

1.移動至Server的目錄下

$ cd FirstServer

2.運行Script資料夾底下的Server檔案

$ Script/server . <-注意server後是空一格然後加"."代表運行的意思

在啟動過程中會告知Server使用Local主機的哪一Port,預設是3000

3.查看是否已成功啟動

開啟瀏覽器,在網址列打上"localhost:3000\"後應該可以看見Server的首頁

PS. localhost代表自己的主機位置後面接":"代表Port

PS2. Server的首頁是放在Sever資料夾底下的Public裡面叫作index.html的檔案,更改裡面的內容就可以在瀏覽器上看到。


這樣第一次的運作就完成了,期待下次的課程。

SVN的環境建置與基礎操作

由於老師ROR作業要做方便管理,因此採用了SVN的管理機制,使用學校自己的SVN網域,因此要安裝SVN作處理。

SVN介紹與完整中文說明手冊:http://twpug.net/docs/Subversion/


SVN的環境建置

$sudo apt-get intall subversion


SVN的基礎操作指令

建立與SVN伺服器資料庫的連結

$svn co --username 帳號 svn://你的網址 要在local主機上目前路徑上儲存的資料夾名(若是沒有他會自動建立)

ex. $svn co --username 9728111 svn://140.135.12.119/ror/g0x g0x

PS.在連線完成後SVN的系統會自動將你帳號內的資料download到你的local主機上

PS2. co 就是checkout的縮寫,SVN支援縮寫,當然也可以寫checkout

注意:以下指令需要在工作目錄下才能運作,一開始建立連線的資料夾後,記得cd至該資料夾下

加入新資料

$svn add 目前路徑上要增加至伺服器的資料夾名或檔案名

ex. $svn add abc

注意: 在這邊的add只是告知SVN我有增加這檔案或資料夾,並未上傳上去,因此此時的狀態會是"?"(請見下面指令)

ex. $svn add *

*代表底下所有目錄與檔案都加入

檢查SVN檔案與本機檔案的狀態

$svn st

在檔案前面常見的顯示結果有
M -> 代表本機的檔案有修改過
? -> 代表尚未上傳至伺服器的資料或資料夾
! -> 代表本機上的此檔案已經不見了(被移除之類的情況),但是伺服器上仍然有這檔案
A -> 此次新增的檔案
C -> 此檔案已經有人改過, 合併不成功, 需要人工介入
D -> 此次移除的檔案
M -> 此檔案有修改過
U -> 此檔案有被更新過

(部分資料取自http://plog.longwin.com.tw/my_note-programming/2007/07/10/svn_tutorial_2007 svn基本指令教學)

將資料上傳至SVN伺服器

$svn ci -m "這次上傳的註解"

ex. $svn ci -m "更動XXX.doc檔"

-m -> 代表增加上傳的版本註解

PS. ci 為 commit的縮寫

查看本機上傳至伺服器的記錄

$svn log

從伺服器更新本機資料(3/7更新)

$svn up

當多人使用時,若有一人更新伺服器資料時,透過此指令可進行更新且不會蓋過整個工作目錄(僅針對當時的子目錄進行更新)

$svn up -r 版本號碼

-r代表可以選擇版本進行更新

還原成伺服器版本(3/7更新)

$svn revert 檔名(或資料夾)

更新時發現有問題可以透過此指令還原至伺服器上的版本

操作伺服器上的檔案(尚未確認)

$svn 指令

指令可以是常用的指令如ls、cd、rm、mkdir等...



大概先這樣以後若是有學到更多的操作方式再更新

ROR環境架設

我使用的OS: Ubuntu 10.10 桌面版本(使用虛擬環境掛載)

老師所使用的是10.04 LTS 而且有些source的檔案都已經不見了

因此需要更新source.list,基本上是更改成使用國家高速網路中心(nchc)的鏡像

以下部分內容取自王老師的課程網站(會附上網址)

另外我補充說明的用"<-"代表


更改 Ubuntu 10.10 的 sources.list
http://cycuror.tiddlyspot.com/index.html

1.打完指令後 將以下內容貼入
sudo gedit /etc/apt/sources.list

在開啟後將內容內的
tw.archive.ubuntu.com

gedit編輯器中搜尋選項中有一個取代選

將tw.archive.ubuntu.com 用ftp.nchc.org.tw 取代 <- 若是網路上的10.10版則是將ubuntu.stu.edu.tw取代

2.關閉後 更新 sudo apt-get update 注意:

上課中用的方法是cp複製的語法 <-另一種方式,若已完成上述步驟以下看過就好

利用複製的語法也可以

子目錄假設已經改好新的sources.list

cp sources.list /etc/apt/sources,list

將新改好的sources.list 複製到 檔案總管下面的sources.list 取代


Ubuntu 10.04 LTS 安裝 Ruby 1.8.7 + SQLite 3 + Rails 2.3.6
http://cycuror.tiddlyspot.com/index.html

1. 安裝 ruby 1.8.7: <- 程式語言安裝

$ sudo apt-get install ruby-full

[可省略] 檢查 ruby 版本,螢幕應顯示 ruby 1.8.7 (2010-01-10 patchlevel 249):

$ ruby -v

2. 安裝 gems 1.3.5: <- ruby相關的套件管理程式

$ sudo apt-get install rubygems

[可省略] 檢查 rubygems 版本,螢幕應顯示 1.3.5:

$ gem -v

3. 安裝 sqlite 3: <- 精簡版的資料庫系統

$ sudo apt-get install sqlite3
$ sudo apt-get install libsqlite3-dev <- dev代表發展套件

注意:假設grm list 裡面無法順利安裝sqlite3
請先安裝sudo apt-get install libsqlite3-dev再執行第四步

4. 安裝 ruby 支援 sqlite3 的套件:

$ sudo gem install sqlite3-ruby

1~4以上步驟均可以從Unubtu系統中
系統選項=> 管理=> Synaptic套件管理中安裝

5. 安裝 rails 並製造一個 rails 命令的捷徑:

$ sudo gem install rails -v=2.3.6
$ sudo ln -s -f /var/lib/gems/1.8/bin/rails /usr/bin/rails

[可省略] 檢查 rails 版本,顯示畫面其中一行應為 rails (2.3.6):

$ gem list

老師網站上面似乎漏掉一步,我補一下:

6.安裝ruby的網路函式庫套件

$sudo apt-get install libopenssl-ruby



到這邊為止算是完成了環境的建置

2011年2月22日 星期二

ROR起頭

這學期剛好有修ROR這門課,就慢慢開始摸索吧!

何為ROR?

ROR 全名為"Ruby On Rails"

其中Ruby是一種算很新的程式語言(1995年推出)

相關的東西可以到官網(中文)去參考: http://www.ruby-lang.org/zh_TW/about/

而Rails則是一種Web開發套件,官網的說明:[Rails 是個完整的程式架構用來開發有資料庫的網頁程式。 其程式設計型態為 模型-視圖-控制器 (Model-View-Control)。不管是 視圖裡的 Ajax,還是 控制器裡的 需求/回覆,還是模擬資料庫的模型,Rails 都是用 Ruby 來開發。你只需要一個資料庫 和一個網頁伺服器就可以上線。]

Rails(ROR)官網: http://rubyonrails.org.tw/index.html

不論是Ruby或是Rails官網其實都提供很多資料,有空的時候應該可以去看看。

好晚了...有點想睡,剩下的就之後在PO吧!

下次預定PO環境設定,使用的是Ubuntu 10.10的OS環境~

那麼,就醬啦... 晚安。

好久沒更新啦~

大三大四遇到了好一陣的亂流,現在總算稍微安定下來了,這期間也學了很多東西,有空再慢慢補上來吧!

不過目前正在學ROR(Ruby On Rails),剛好學校有開這門課就順便修一下了。

之後短時間內的更新應該是以ROR為主,希望這次能完整記錄整個歷程。