Rails on Cygwin #1

by winson, about 1 year ago.

如果你是shell指令愛好者,非常喜歡用shell下指令玩Rails的話,除了Mac, Linux之外,最好的選擇就是在Win32平台上安裝Cygwin

安裝Cygwin有什麼好處呢?這可以讓你在Win32底下使用一些常見的Linux工具程式,例如: joe, nano, vim, emacs, mc, gcc, make等,其他像top, ls, man, ps, mv等常見的指令也都相容。

由於Cygwin已經相當完整、成熟,在上頭安裝Rails不會有什麼太大的問題。比較麻煩的是安裝MySQL,當然你可以去下載原始碼,然後傻傻地在Cygwin底下花幾個小時用gcc重新編譯。

或者你也可以直接安裝Win32版本,啟動成什麼服務之類的,但是如果你都要在Cygwin下使用Rails的話,事實上,可以有更簡單的方式,因為Cygwin裡面那些Linux工具程式,其實也都是Win32的exe,MySQL也不例外。方式如下:

1.到MySQL的下載網頁下載Win32版本,記住要下Without installer的免安裝版本。

2.解開後複製到C:\Cygwin\mysql。

3.在C:\Cygwin\mysql底下建一個MySQL設定檔my.ini,內容是:

[mysqld]
basedir=C:/cygwin/mysql
datadir=C:/cygwin/mysql/data
這是告訴MySQL他的啟動目錄與資料目錄在哪裡。

4.然後在你的.bashrc設定檔裡頭加入:

alias mysql='/mysql/bin/mysqld &'
這樣一來,直接在shell底下用mysql指令就可以在背景啟動mysqld了。

透過以上方式,完全不用重新編譯MySQL原始碼,就可以直接在Cygwin使用MySQL了。

另外,要注意的是Cygwin底下的這個MySQL看不懂localhost,所以在Rails的資料庫設定檔database.yml裡頭,都不能用localhost,改成這樣使用保證萬無一失:

development:
  adapter: mysql
  database: expenses_development
  username: root
  password: 
  host: 127.0.0.1
如果嫌建立資料庫要下
./mysql/bin/mysqladmin -u root -p create expenses_development
這樣長串的指令覺得麻煩的話,一樣在.bashrc設立捷徑即可,例如:
alias myadmin='/mysql/bin/mysqladmin -u root -p'
如此一來建立資料庫只要透過
myadmin create expenses_development
至於其他匯入資料庫等方式就跟一般Rails沒兩樣,用rake db:migrate即可,簡單方便的很。


  • Posted in Windoz, on Monday, May 28, 2007, at 02:15 AM.