SlideShare ist ein Scribd-Unternehmen logo
1 von 84
Downloaden Sie, um offline zu lesen
Ruby on Rails 開發環境建置
        for Ubuntu




     marsz@5fpro.com
       2012/12/21
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
更多 RVM 資訊…

  https://rvm.io
RubyGems
ruby-based 的套件管理工具
安裝 RubyGems


rvm rubygems current


  …透過 rvm 安裝
  …
RubyGem 版本


   gem -v
gem 是獨立於不同 ruby 版本的

    ~ rvm use ruby-1.8.7
    ~ gem –v
    1.6.2
    ~ rvm use ruby-1.9.3
    ~ gem –v
    1.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” 的版本
RubyGems 文件…

http://docs.rubygems.org/
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

           sudo vim /etc/apache2/httpd.conf


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
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

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

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 可能已經幫你貼好了, 先檢查看看吧
啟動 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/
安裝 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.0
Name=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=sublime
Terminal=false
Icon=/opt/Sublime Text 2/Icon/48x48/sublime_text.png
Type=Application
Categories=TextEditor;IDE;Development
X-Ayatana-Desktop-Shortcuts=NewWindow

[NewWindow Shortcut Group]
Name=New Window
Exec=sublime -n
TargetEnvironment=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

Weitere ähnliche Inhalte

Was ist angesagt?

現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & WindowsChu-Siang Lai
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧Chu-Siang Lai
 
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理haiyuan ning
 
Cent os 安装 subversion
Cent os 安装 subversionCent os 安装 subversion
Cent os 安装 subversionYUCHENG HU
 
Hadoop平台搭建
Hadoop平台搭建Hadoop平台搭建
Hadoop平台搭建Liyang Tang
 
Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)Chu-Siang Lai
 
开源Pass平台flynn功能简介
开源Pass平台flynn功能简介开源Pass平台flynn功能简介
开源Pass平台flynn功能简介Zhichao Liang
 
Sery lvs+keepalived
Sery lvs+keepalivedSery lvs+keepalived
Sery lvs+keepalivedcolderboy17
 
GNU Build System
GNU Build SystemGNU Build System
GNU Build Systemimacat .
 
Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)Yiwei Ma
 
Docker一期培训
Docker一期培训Docker一期培训
Docker一期培训青帅 常
 
Node.js长连接开发实践
Node.js长连接开发实践Node.js长连接开发实践
Node.js长连接开发实践longhao
 
为什么上网浏览要用Shadowsocks?
为什么上网浏览要用Shadowsocks?为什么上网浏览要用Shadowsocks?
为什么上网浏览要用Shadowsocks?zzzzzz gg
 
Ubuntu 下安装 svn 服务器
Ubuntu 下安装 svn 服务器Ubuntu 下安装 svn 服务器
Ubuntu 下安装 svn 服务器wensheng wei
 
Linux安全配置终极指南
Linux安全配置终极指南Linux安全配置终极指南
Linux安全配置终极指南wensheng wei
 
Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档xuebao_zx
 
StackOps step by-step guide
StackOps step by-step guideStackOps step by-step guide
StackOps step by-step guideslmagicbox
 
Apache+php+mysql在Linux下的安装与配置
Apache+php+mysql在Linux下的安装与配置Apache+php+mysql在Linux下的安装与配置
Apache+php+mysql在Linux下的安装与配置wensheng wei
 

Was ist angesagt? (20)

現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
現代 IT 人一定要知道的 Ansible 自動化組態技巧 Ⅱ - Roles & Windows
 
現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧現代 IT 人一定要知道的 Ansible 自動化組態技巧
現代 IT 人一定要知道的 Ansible 自動化組態技巧
 
使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理使用Rpm&yum进行基础软件管理
使用Rpm&yum进行基础软件管理
 
Cent os 安装 subversion
Cent os 安装 subversionCent os 安装 subversion
Cent os 安装 subversion
 
Hadoop平台搭建
Hadoop平台搭建Hadoop平台搭建
Hadoop平台搭建
 
Docker
DockerDocker
Docker
 
Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)Automate with Ansible basic (3/e)
Automate with Ansible basic (3/e)
 
开源Pass平台flynn功能简介
开源Pass平台flynn功能简介开源Pass平台flynn功能简介
开源Pass平台flynn功能简介
 
Sery lvs+keepalived
Sery lvs+keepalivedSery lvs+keepalived
Sery lvs+keepalived
 
GNU Build System
GNU Build SystemGNU Build System
GNU Build System
 
Linuxguide4f2e
Linuxguide4f2eLinuxguide4f2e
Linuxguide4f2e
 
Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)Nagios的安装部署和与cacti的整合(linuxtone)
Nagios的安装部署和与cacti的整合(linuxtone)
 
Docker一期培训
Docker一期培训Docker一期培训
Docker一期培训
 
Node.js长连接开发实践
Node.js长连接开发实践Node.js长连接开发实践
Node.js长连接开发实践
 
为什么上网浏览要用Shadowsocks?
为什么上网浏览要用Shadowsocks?为什么上网浏览要用Shadowsocks?
为什么上网浏览要用Shadowsocks?
 
Ubuntu 下安装 svn 服务器
Ubuntu 下安装 svn 服务器Ubuntu 下安装 svn 服务器
Ubuntu 下安装 svn 服务器
 
Linux安全配置终极指南
Linux安全配置终极指南Linux安全配置终极指南
Linux安全配置终极指南
 
Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档Oraliux+mysql5单机多实例安装文档
Oraliux+mysql5单机多实例安装文档
 
StackOps step by-step guide
StackOps step by-step guideStackOps step by-step guide
StackOps step by-step guide
 
Apache+php+mysql在Linux下的安装与配置
Apache+php+mysql在Linux下的安装与配置Apache+php+mysql在Linux下的安装与配置
Apache+php+mysql在Linux下的安装与配置
 

Ähnlich wie Ruby on Rails 開發環境建置 for Ubuntu

[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來Shengyou Fan
 
Puppet安装总结
Puppet安装总结Puppet安装总结
Puppet安装总结Yiwei Ma
 
Android系统移植技术详解
Android系统移植技术详解Android系统移植技术详解
Android系统移植技术详解zzc89522
 
Apache安装配置mod security
Apache安装配置mod securityApache安装配置mod security
Apache安装配置mod securityHuang Toby
 
8, lamp
8, lamp8, lamp
8, lampted-xu
 
使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...
使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...
使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...Laird Cheng
 
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境均民 戴
 
linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细colderboy17
 
Openshift by mtchang
Openshift by mtchangOpenshift by mtchang
Openshift by mtchangChang Mt
 
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)acqua young
 
makefile20141121
makefile20141121makefile20141121
makefile20141121Kevin Wu
 
Hadoop 安装
Hadoop 安装Hadoop 安装
Hadoop 安装feng lee
 
0118 Windows Server 2008 的伺服器核心 (Server Core)
0118 Windows Server 2008 的伺服器核心 (Server Core)0118 Windows Server 2008 的伺服器核心 (Server Core)
0118 Windows Server 2008 的伺服器核心 (Server Core)Timothy Chen
 
CloudStack Installation on Ubuntu
CloudStack Installation on UbuntuCloudStack Installation on Ubuntu
CloudStack Installation on Ubuntu康志強 大人
 
CentOS5 apache2 mysql5 php5 Zend
CentOS5 apache2 mysql5 php5 ZendCentOS5 apache2 mysql5 php5 Zend
CentOS5 apache2 mysql5 php5 Zendwensheng wei
 
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swttka
 

Ähnlich wie Ruby on Rails 開發環境建置 for Ubuntu (20)

[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
 
Puppet安装总结
Puppet安装总结Puppet安装总结
Puppet安装总结
 
Android系统移植技术详解
Android系统移植技术详解Android系统移植技术详解
Android系统移植技术详解
 
LinuxGuide4F2E
LinuxGuide4F2ELinuxGuide4F2E
LinuxGuide4F2E
 
Apache安装配置mod security
Apache安装配置mod securityApache安装配置mod security
Apache安装配置mod security
 
8, lamp
8, lamp8, lamp
8, lamp
 
使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...
使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...
使用 Load Balancer 與 Redis 部署 LAMP Server 高併發架構 - Global Azure Taiwan 20200425 ...
 
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
COSCUP 2016 Workshop: 用 Docker 架設班級 git-it 練習環境
 
linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细linux安装以及LAMP 环境安装详细
linux安装以及LAMP 环境安装详细
 
Openshift by mtchang
Openshift by mtchangOpenshift by mtchang
Openshift by mtchang
 
Docker應用
Docker應用Docker應用
Docker應用
 
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
Install oracle ebs r12.1.1 on OEL5.6 x86(include demo)
 
makefile20141121
makefile20141121makefile20141121
makefile20141121
 
Hadoop 安装
Hadoop 安装Hadoop 安装
Hadoop 安装
 
0118 Windows Server 2008 的伺服器核心 (Server Core)
0118 Windows Server 2008 的伺服器核心 (Server Core)0118 Windows Server 2008 的伺服器核心 (Server Core)
0118 Windows Server 2008 的伺服器核心 (Server Core)
 
CloudStack Installation on Ubuntu
CloudStack Installation on UbuntuCloudStack Installation on Ubuntu
CloudStack Installation on Ubuntu
 
CentOS5 apache2 mysql5 php5 Zend
CentOS5 apache2 mysql5 php5 ZendCentOS5 apache2 mysql5 php5 Zend
CentOS5 apache2 mysql5 php5 Zend
 
Asm+aix
Asm+aixAsm+aix
Asm+aix
 
OSGi Small Lab
OSGi Small LabOSGi Small Lab
OSGi Small Lab
 
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt
 

Ruby on Rails 開發環境建置 for Ubuntu