ruby on rails 開發環境建置 for ubuntu
DESCRIPTION
這是給菜鳥工程師用來建置 ruby on rails 開發環境的 SOP。長遠建議還是用 Mac 會比用 Ubuntu 好很多 :pTRANSCRIPT
Ruby on Rails 開發環境建置
2012/12/21
for Ubuntu
Build-essentials apt-get
Ruby on Rails
Passenger + Nginx / Apache
etc. (ssh key, editor…)
Ubuntu 12.04.1
更新 apt-get
sudo apt-get update
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
更新必要套件
安裝 curl
sudo apt-get install -y curl
安裝 git
sudo apt-get install -y git-core
安裝 vim
sudo apt-get install -y vim
安裝 ImageMagick
sudo apt-get install -y imagemagick libmagickcore-dev libmagickwand-dev
強大的縮圖軟體
安裝 sqlite
sudo apt-get install -y sqlite3 libsqlite3-dev libsqlite3-0
Rails 的新專案預設會 bundle sqlite
安裝 mysql
sudo apt-get install -y mysql-server mysql-client libmysql++-dev
設定 root 密碼
啟動 mysql
sudo /etc/init.d/mysql start
停止 mysql
sudo /etc/init.d/mysql stop
重啟 mysql
sudo /etc/init.d/mysql restart
開機自動啟動 mysql
sudo vim /etc/rc.local
安裝 apache
sudo apt-get install -y apache2 apache2-prefork-dev
用 nginx 就不用安裝了
啟動 apache
sudo /etc/init.d/apache2 start
停止 apache
sudo /etc/init.d/apache2 stop
重啟 apache
sudo /etc/init.d/apache2 restart
開機自動啟動 apache
sudo vim /etc/rc.local
安裝 Ruby on Rails
以 root 身分安裝以下
RVM
管理 & 切換不同版本的 ruby
安裝 RVM
curl -L https://get.rvm.io | bash -s stable
then…重開命令列或重新登
入
檢視 RVM 版本
rvm -v
列出可安裝的 ruby
rvm list
列出可安裝的 ruby
rvm list known
安裝某一版的 ruby
rvm install ruby-1.9.3-p327
列出已安裝 ruby
rvm list
切換到某一版的 ruby
rvm use ruby-1.9.3-p327
設定預設版本 ruby
rvm use ruby-1.9.3-p327 --default
移除已安裝的 ruby
rvm remove ruby-1.9.3-p327
RubyGems
ruby-based 的套件管理工具
安裝 RubyGems
rvm rubygems current
…透過 rvm 安裝
…
RubyGem 版本
gem -v
gem 是獨立於不同 ruby 版本的
~ rvm use ruby-1.8.7~ gem –v1.6.2
~ rvm use ruby-1.9.3~ gem –v1.8.24
gem 套件安裝範例
gem install rake
安裝名為 “rake” 的 gem
可指定版本
gem install rake –v=0.8.7
不安裝 ri/rdoc
gem install rake –v=0.8.7 --no-ri --no-rdoc
gem 的文件幾乎都是在網路上看的
因此不需要安裝在 local
預設 --no-ri --no-rdoc
echo "gem: --no-ri --no-rdoc" >> ~/.gemrc
root 和一般 user 都要設定 .gemrc 會比較徹底
移除 gem 套件
gem uninstall rake
移除名為 “rake” 的 gem
列出已安裝+符合關鍵字
gem list ”rake”
搜尋名稱有包含 “rake” 的 gem
更新目前版本的 gem
gem update rake
更新 “rake” 的版本
Ruby ToolBox
https://www.ruby-toolbox.com/
搜尋以及排行 rubygem
ruby 相關專案的介紹
分類相當的多…
Rails
著名 ruby 框架,也是透過 gem 安裝 :D
安裝 rails
gem install rails
安裝指定版本 rails
gem install rails –v=3.2.9
看版本
rails -v
執行指定版本的 rails
rails _3.2.8_ -v
rails _3.1.3_ -v
產生 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 已存在時不會產生
來源: https://help.github.com/articles/generating-ssh-keys
你的 SSH KEY
cat ~/.ssh/id_rsa.pub
將顯示的內容貼到需要設定 ssh key 的地方即可
更多 ssh key 相關連結
● http://frb.name/tutorial-github/● SSH login without password● Github help for generating SSH KEY
Passenger
https://www.phusionpassenger.com/
整合 ruby app 和 apache/nginx
安裝 passenger
gem install passenger
請用 root 身分執行此指令
安裝 passenger for apache
passenger-install-apache2-module
請使用 root 身分執行
採用 nginx 可透過此步驟
過程會先檢查系統有沒有安裝必要套件若沒有可透過 apt-get 安裝
安裝完成後會出現以下畫面
複製 “LoadModule …” 以下三行
設定至 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
Apache 設定 vhost
sudo vim /etc/apache2/sites-available/example.com
example.com 是你欲設定的 domain 名稱
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
多個 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”
安裝 nginx + passenger
passenger-install-nginx-module
使用 root 身分執行
採用 apache 可透過此步驟
選 1 由 passenger 會直接幫你 build nginx
因此不需要事先安裝 nginx
nginx 安裝路徑可用預設 /opt/nginx
安裝完成後會出現以下畫面
複製 “passenger_root…” 以下兩行
設定至 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
啟動 nginx
sudo /opt/nginx/sbin/nginx
停止 nginx
sudo /opt/nginx/sbin/nginx –S stop
重啟 nginx
sudo /opt/nginx/sbin/nginx –S reload
安裝 Sublime Text 2
http://www.sublimetext.com/2
下載 tar file
解壓縮 + 設定 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
可在 command line 下使用 subl
subl -v
開啟目前所在目錄的 editor
subl .
設定桌面連結
sudo sublime /usr/share/applications/sublime.desktop
[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
設定預設編輯器
sudo sublime /usr/share/applications/defaults.list
將所有 “gedit.desktop” 取代為 “sublime.desktop”
常用快速鍵
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
更改快速鍵
可以按照自己的喜好改
個人化設定
Ctrl + ,
Sublim Text 2 參考文件
● MarsZ : 我的 Sublime Text 2 設定檔
● 非官方文件● 官方文件● 線上影片課程
END