ruby on rails 開發環境建置 for ubuntu

84
Ruby on Rails 開發環境建置 [email protected] 2012/12/21 for Ubuntu

Upload: marsz-chen

Post on 14-May-2015

2.130 views

Category:

Technology


11 download

DESCRIPTION

這是給菜鳥工程師用來建置 ruby on rails 開發環境的 SOP。長遠建議還是用 Mac 會比用 Ubuntu 好很多 :p

TRANSCRIPT

Page 1: Ruby on Rails 開發環境建置 for Ubuntu

Ruby on Rails 開發環境建置

[email protected]

2012/12/21

for Ubuntu

Page 2: Ruby on Rails 開發環境建置 for Ubuntu

Build-essentials apt-get

Ruby on Rails

Passenger + Nginx / Apache

etc. (ssh key, editor…)

Page 3: Ruby on Rails 開發環境建置 for Ubuntu

Ubuntu 12.04.1

Page 4: Ruby on Rails 開發環境建置 for Ubuntu

更新 apt-get

sudo apt-get update

Page 5: Ruby on Rails 開發環境建置 for Ubuntu

sudo apt-get install -y build-essential bison openssl libreadline6 libreadline6-dev zlib1g zlib1g-dev libssl-dev libyaml-dev libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev libxslt1.1 libxslt1-dev libxml2 libcurl4-openssl-dev libapr1-dev libaprutil1-dev autoconf automake libtool pkg-config subversion

更新必要套件

Page 6: Ruby on Rails 開發環境建置 for Ubuntu

安裝 curl

sudo apt-get install -y curl

Page 7: Ruby on Rails 開發環境建置 for Ubuntu

安裝 git

sudo apt-get install -y git-core

Page 8: Ruby on Rails 開發環境建置 for Ubuntu

安裝 vim

sudo apt-get install -y vim

Page 9: Ruby on Rails 開發環境建置 for Ubuntu

安裝 ImageMagick

sudo apt-get install -y imagemagick libmagickcore-dev libmagickwand-dev

強大的縮圖軟體

Page 10: Ruby on Rails 開發環境建置 for Ubuntu

安裝 sqlite

sudo apt-get install -y sqlite3 libsqlite3-dev libsqlite3-0

Rails 的新專案預設會 bundle sqlite

Page 11: Ruby on Rails 開發環境建置 for Ubuntu

安裝 mysql

sudo apt-get install -y mysql-server mysql-client libmysql++-dev

設定 root 密碼

Page 12: Ruby on Rails 開發環境建置 for Ubuntu

啟動 mysql

sudo /etc/init.d/mysql start

Page 13: Ruby on Rails 開發環境建置 for Ubuntu

停止 mysql

sudo /etc/init.d/mysql stop

Page 14: Ruby on Rails 開發環境建置 for Ubuntu

重啟 mysql

sudo /etc/init.d/mysql restart

Page 15: Ruby on Rails 開發環境建置 for Ubuntu

開機自動啟動 mysql

sudo vim /etc/rc.local

Page 16: Ruby on Rails 開發環境建置 for Ubuntu

安裝 apache

sudo apt-get install -y apache2 apache2-prefork-dev

用 nginx 就不用安裝了

Page 17: Ruby on Rails 開發環境建置 for Ubuntu

啟動 apache

sudo /etc/init.d/apache2 start

Page 18: Ruby on Rails 開發環境建置 for Ubuntu

停止 apache

sudo /etc/init.d/apache2 stop

Page 19: Ruby on Rails 開發環境建置 for Ubuntu

重啟 apache

sudo /etc/init.d/apache2 restart

Page 20: Ruby on Rails 開發環境建置 for Ubuntu

開機自動啟動 apache

sudo vim /etc/rc.local

Page 21: Ruby on Rails 開發環境建置 for Ubuntu

安裝 Ruby on Rails

Page 22: Ruby on Rails 開發環境建置 for Ubuntu

以 root 身分安裝以下

Page 23: Ruby on Rails 開發環境建置 for Ubuntu

RVM

管理 & 切換不同版本的 ruby

Page 24: Ruby on Rails 開發環境建置 for Ubuntu

安裝 RVM

curl -L https://get.rvm.io | bash -s stable

then…重開命令列或重新登

Page 25: Ruby on Rails 開發環境建置 for Ubuntu

檢視 RVM 版本

rvm -v

Page 26: Ruby on Rails 開發環境建置 for Ubuntu

列出可安裝的 ruby

rvm list

Page 27: Ruby on Rails 開發環境建置 for Ubuntu

列出可安裝的 ruby

rvm list known

Page 28: Ruby on Rails 開發環境建置 for Ubuntu

安裝某一版的 ruby

rvm install ruby-1.9.3-p327

Page 29: Ruby on Rails 開發環境建置 for Ubuntu

列出已安裝 ruby

rvm list

Page 30: Ruby on Rails 開發環境建置 for Ubuntu

切換到某一版的 ruby

rvm use ruby-1.9.3-p327

Page 31: Ruby on Rails 開發環境建置 for Ubuntu

設定預設版本 ruby

rvm use ruby-1.9.3-p327 --default

Page 32: Ruby on Rails 開發環境建置 for Ubuntu

移除已安裝的 ruby

rvm remove ruby-1.9.3-p327

Page 33: Ruby on Rails 開發環境建置 for Ubuntu

更多 RVM 資訊…

https://rvm.io

Page 34: Ruby on Rails 開發環境建置 for Ubuntu

RubyGems

ruby-based 的套件管理工具

Page 35: Ruby on Rails 開發環境建置 for Ubuntu

安裝 RubyGems

rvm rubygems current

…透過 rvm 安裝

Page 36: Ruby on Rails 開發環境建置 for Ubuntu

RubyGem 版本

gem -v

Page 37: Ruby on Rails 開發環境建置 for Ubuntu

gem 是獨立於不同 ruby 版本的

~ rvm use ruby-1.8.7~ gem –v1.6.2

~ rvm use ruby-1.9.3~ gem –v1.8.24

Page 38: Ruby on Rails 開發環境建置 for Ubuntu

gem 套件安裝範例

gem install rake

安裝名為 “rake” 的 gem

Page 39: Ruby on Rails 開發環境建置 for Ubuntu

可指定版本

gem install rake –v=0.8.7

Page 40: Ruby on Rails 開發環境建置 for Ubuntu

不安裝 ri/rdoc

gem install rake –v=0.8.7 --no-ri --no-rdoc

gem 的文件幾乎都是在網路上看的

因此不需要安裝在 local

Page 41: Ruby on Rails 開發環境建置 for Ubuntu

預設 --no-ri --no-rdoc

echo "gem: --no-ri --no-rdoc" >> ~/.gemrc

root 和一般 user 都要設定 .gemrc 會比較徹底

Page 42: Ruby on Rails 開發環境建置 for Ubuntu

移除 gem 套件

gem uninstall rake

移除名為 “rake” 的 gem

Page 43: Ruby on Rails 開發環境建置 for Ubuntu

列出已安裝+符合關鍵字

gem list ”rake”

搜尋名稱有包含 “rake” 的 gem

Page 44: Ruby on Rails 開發環境建置 for Ubuntu

更新目前版本的 gem

gem update rake

更新 “rake” 的版本

Page 45: Ruby on Rails 開發環境建置 for Ubuntu

RubyGems 文件…

http://docs.rubygems.org/

Page 46: Ruby on Rails 開發環境建置 for Ubuntu

Ruby ToolBox

https://www.ruby-toolbox.com/

搜尋以及排行 rubygem

ruby 相關專案的介紹

Page 47: Ruby on Rails 開發環境建置 for Ubuntu

分類相當的多…

Page 48: Ruby on Rails 開發環境建置 for Ubuntu

Rails

著名 ruby 框架,也是透過 gem 安裝 :D

Page 49: Ruby on Rails 開發環境建置 for Ubuntu

安裝 rails

gem install rails

Page 50: Ruby on Rails 開發環境建置 for Ubuntu

安裝指定版本 rails

gem install rails –v=3.2.9

Page 51: Ruby on Rails 開發環境建置 for Ubuntu

看版本

rails -v

Page 52: Ruby on Rails 開發環境建置 for Ubuntu

執行指定版本的 rails

rails _3.2.8_ -v

rails _3.1.3_ -v

Page 53: Ruby on Rails 開發環境建置 for Ubuntu

產生 ssh key

if [ ! -f ~/.ssh/id_rsa.pub ]; then ssh-keygen -t rsa -C "YOUR COMPUTER NAME"; fi

YOUR COMPUTER NAME 可填識別電腦用的名稱

執行後一路 enter 到底

以上 script 在 ~/.ssh/id_rsa.pub 已存在時不會產生

Page 54: Ruby on Rails 開發環境建置 for Ubuntu

來源: https://help.github.com/articles/generating-ssh-keys

Page 55: Ruby on Rails 開發環境建置 for Ubuntu

你的 SSH KEY

cat ~/.ssh/id_rsa.pub

將顯示的內容貼到需要設定 ssh key 的地方即可

Page 57: Ruby on Rails 開發環境建置 for Ubuntu

Passenger

https://www.phusionpassenger.com/

整合 ruby app 和 apache/nginx

Page 58: Ruby on Rails 開發環境建置 for Ubuntu

安裝 passenger

gem install passenger

請用 root 身分執行此指令

Page 59: Ruby on Rails 開發環境建置 for Ubuntu

安裝 passenger for apache

passenger-install-apache2-module

請使用 root 身分執行

採用 nginx 可透過此步驟

過程會先檢查系統有沒有安裝必要套件若沒有可透過 apt-get 安裝

Page 60: Ruby on Rails 開發環境建置 for Ubuntu

安裝完成後會出現以下畫面

複製 “LoadModule …” 以下三行

Page 61: Ruby on Rails 開發環境建置 for Ubuntu

設定至 apache config

LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p327/gems/passenger-3.0.18/ext/apache2/mod_passenger.so PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p327/gems/passenger-3.0.18 PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p327/ruby

存檔後重啟 apache

sudo vim /etc/apache2/httpd.conf

Page 62: Ruby on Rails 開發環境建置 for Ubuntu

Apache 設定 vhost

sudo vim /etc/apache2/sites-available/example.com

example.com 是你欲設定的 domain 名稱

Page 63: Ruby on Rails 開發環境建置 for Ubuntu

Apache vhost 範例 for rails app<VirtualHost *:80> ServerName example.com # !!! Be sure to point DocumentRoot to 'public'! DocumentRoot /path/to/rails/app/public <Directory /path/to/rails/app/public> # This relaxes Apache security settings. AllowOverride all # MultiViews must be turned off. Options -MultiViews </Directory> </VirtualHost>

DocumentRoot 是指向 rails app dir 下的 /public

Page 64: Ruby on Rails 開發環境建置 for Ubuntu

多個 domain 指向同一個 app<VirtualHost *:80> ServerName example.com ServerAlias example2.com ServerAlias example3.com # !!! Be sure to point DocumentRoot to 'public'! DocumentRoot /path/to/rails/app/public <Directory /path/to/rails/app/public> # This relaxes Apache security settings. AllowOverride all # MultiViews must be turned off. Options -MultiViews </Directory> </VirtualHost>

善用 “ServerAlias”

Page 65: Ruby on Rails 開發環境建置 for Ubuntu

安裝 nginx + passenger

passenger-install-nginx-module

使用 root 身分執行

採用 apache 可透過此步驟

選 1 由 passenger 會直接幫你 build nginx

因此不需要事先安裝 nginx

nginx 安裝路徑可用預設 /opt/nginx

Page 66: Ruby on Rails 開發環境建置 for Ubuntu

安裝完成後會出現以下畫面

複製 “passenger_root…” 以下兩行

Page 67: Ruby on Rails 開發環境建置 for Ubuntu

設定至 nginx config

http { passenger_root /usr/local/rvm/gems/ruby-1.9.3-p327/gems/passenger-3.0.18; passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.3-p327/ruby;

…..}

passenger 可能已經幫你貼好了, 先檢查看看吧

sudo vim /opt/nginx/conf/nginx.conf

Page 68: Ruby on Rails 開發環境建置 for Ubuntu

啟動 nginx

sudo /opt/nginx/sbin/nginx

Page 69: Ruby on Rails 開發環境建置 for Ubuntu

停止 nginx

sudo /opt/nginx/sbin/nginx –S stop

Page 70: Ruby on Rails 開發環境建置 for Ubuntu

重啟 nginx

sudo /opt/nginx/sbin/nginx –S reload

Page 71: Ruby on Rails 開發環境建置 for Ubuntu

Sublime Text 2

http://www.sublimetext.com/

Page 72: Ruby on Rails 開發環境建置 for Ubuntu

安裝 Sublime Text 2

http://www.sublimetext.com/2

下載 tar file

Page 73: Ruby on Rails 開發環境建置 for Ubuntu

解壓縮 + 設定 link

tar xf Sublime\ Text\ 2.0.1\ x64.tar.bz2

sudo mv Sublime\ Text\ 2 /opt/

sudo ln -s /opt/Sublime\ Text\ 2/sublime_text /usr/bin/subl

Page 74: Ruby on Rails 開發環境建置 for Ubuntu

可在 command line 下使用 subl

subl -v

Page 75: Ruby on Rails 開發環境建置 for Ubuntu

開啟目前所在目錄的 editor

subl .

Page 76: Ruby on Rails 開發環境建置 for Ubuntu

設定桌面連結

sudo sublime /usr/share/applications/sublime.desktop

Page 77: Ruby on Rails 開發環境建置 for Ubuntu

[Desktop Entry]Version=1.0Name=Sublime Text 2# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.GenericName=Text Editor

Exec=sublimeTerminal=falseIcon=/opt/Sublime Text 2/Icon/48x48/sublime_text.pngType=ApplicationCategories=TextEditor;IDE;DevelopmentX-Ayatana-Desktop-Shortcuts=NewWindow

[NewWindow Shortcut Group]Name=New WindowExec=sublime -nTargetEnvironment=Unity

Page 78: Ruby on Rails 開發環境建置 for Ubuntu

設定預設編輯器

sudo sublime /usr/share/applications/defaults.list

將所有 “gedit.desktop” 取代為 “sublime.desktop”

Page 79: Ruby on Rails 開發環境建置 for Ubuntu

常用快速鍵

Command + T Go to file

Command + F Find in file

Command + ] Indent

Command + [ Outdent

Ctrl + G Go to line

更多 http://jream.com/blog/2012/02/17/sublime-text-2-hotkeys

Page 80: Ruby on Rails 開發環境建置 for Ubuntu

更改快速鍵

Page 81: Ruby on Rails 開發環境建置 for Ubuntu

可以按照自己的喜好改

Page 82: Ruby on Rails 開發環境建置 for Ubuntu

個人化設定

Ctrl + ,

Page 84: Ruby on Rails 開發環境建置 for Ubuntu

END