ขั้นตอนการติดตั้ง Ruby on Rails บน Ubuntu

ขั้นตอนการติดตั้ง Ruby on Rails บน Ubuntu Cover Image

วันนี้จะมานำเสนอ วิธีการติดตั้ง Ruby on Rails บนเครื่อง Ubuntu ครับ หลังจากใช้เวลาลองผิดลองถูก นับแรมปี ติดตั้งมาก็หลายรอบแล้ว ก็เลยตัดสินใจทำเป็นบทความซะเลย เผื่อจะมีผู้ที่ผ่านมา สนใจ หรือกำลังหาวิธีการติดตั้งอยู่ ก็ทำตามขั้นตอน ตามนี้ได้เลยครับ


Step 1 : Install Git

ขั้นแรก จงทำการติดตั้ง git ซะ (git คือ version control)

sudo apt-get install git-core

หลังจากนั้น ก็ทำการ เซ็ทอัพ git โดยเปลี่ยน “name” เป็นชื่อของผู้อ่าน และ “email” เป็นอีเมล์ผู้อ่านซะ อันนี้ถ้าลืมอีเมล์หรือชื่อตัวเอง ก็ช่วยไม่ได้นะ :>

git config --global user.name "name"
git config --global user.email "email"

ลองตรวจสอบ ด้วยคำสั่ง

git config --get user.name

ผลลัพธ์จะต้องได้เป็นชื่อที่ผู้อ่านได้ทำการต้้งไว้ และลองตรวจสอบด้วยคำสั่งนี้ เพื่อแสดงผลลัพธ์ของอีเมล์ที่ตั้งไว้

git config --get user.email

ผลลัพธ์จะได้จะเป็นอีเมล์ที่ได้ทำการตั้งค่าไว้ก่อนหน้านี้นะ มิเช่นนั้น แสดงว่าตั้งค่าผิด กลับไปทำดูใหม่นะ

Step 2 : Install RVM

ติดตั้ง RVM คือ Ruby Version Manager เป็นเครื่องมือสำหรับบริหารจัดการเวอร์ชันสำหรับ Ruby ซึ่งช่วยให้ผู้อ่านสามารถเปลี่ยนเวอชั่น Ruby หรือไปใช้ในโปรเจคอื่นๆทำได้ง่าย (อีกตัวที่ได้ความนิยมไม่แพ้กัน นั่นก็คือ rbenv แต่ว่าส่วนตัวยังไม่เคยใช้ ก็เลยไม่รู้จะบอกยังไง ฮ่ะ ฮ่า หากผู้อ่านท่านใด ต้องการจะลงด้วย rbenv ก็ข้ามขั้นตอนนี้ไปได้)

sudo apt-get install curl
curl -L get.rvm.io | bash -s stable

เมื่อเจอข้อความประมาณนี้ แสดงว่ากำลังจะติดตั้ง RVM เสร็จสมบูรณ์แล้ว แต่ยัง.. ช้าก่อน อย่าเพิ่งชะล่าใจนัก

# In case of any issues read output of 'rvm requirements' and/or 'rvm notes'

Installation of RVM in /home/devahoy/.rvm/ is almost complete:

* To start using RVM you need to run `source /home/devahoy/.rvm/scripts/rvm`
in all your open shell windows, in rare cases you need to reopen all shell windows.

# devahoy,
#
# Thank you for using RVM!
# I sincerely hope that RVM helps to make your life easier and
# more enjoyable!!!
#
# ~Wayne

จะมีข้อความบอกไว้ ว่า การติดตั้ง เกือบจะ เสร็จแล้ว เห็นไหมละ ว่ายังไม่เสร็จนะ ดูให้ดีๆด้วย หากต้องการสั่งให้ RVM ทำงาน ให้ สั่ง run source/home/devahoy/.rvm/scripts/rvm

นั่นก็คือ path ที่อยู่ที่เครื่องของผู้อ่านนั่นเอง จัดการสั่งรันคำสั่ง เพื่อให้ RVM ทำงาน โดย path ที่อยู่แต่ละเครื่องก็จะแตกต่างกันไป

source /home/devahoy/.rvm/scripts/rvm

ทดสอบ

rvm -v

ผลลัพธ์ที่ได้ ต้องเป็นแบบนี้ (ณ เวลาที่เขียนบทความ คือ version 1.25.15) หากได้เวอร์ชั่นที่สูงกว่า ก็ไม่ต้องแปลกใจไป

rvm 1.25.15 (stable) by Wayne E. Seguin <[email protected]>, 
Michal Papis <[email protected]> [https://rvm.io/]

ทดสอบ ดู requirements ของ rvm (ขั้นตอนนี้ rvm จะทำการ check ว่า มันยังขาด library อะไรที่จำเป็นอีกบ้าง)

rvm requirements

ผลลัพธ์จะได้หน้าตาประมาณนี้ ตัวโปรแกรม แล้วแต่เครื่องของผู้อ่าน หากบางเครื่องมีการติดตั้ง library/dependencies อื่นไปแล้ว ก็จะไม่จำเป็นต้องติดตั้งอีก

# For Ruby / Ruby HEAD (MRI, Rubinius, & REE), install the following:
  ruby: /usr/bin/apt-get install build-essential openssl libreadline6 libreadline6-dev 
curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev 
libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config

แต่หากว่าไม่มีอะไรขาด ก็จะขึ้นประมาณนี้

Checking requirements for ubuntu.
Requirements installation successful.

Step 3 : Install Ruby

ขั้นตอนนี้ก็ติดตั้ง Ruby ผ่านทาง RVM  หากต้องการรู้ว่า RVM สามารถติดตั้งอะไรได้บ้าง ใช้คำสั่ง

rvm list known

จะได้รายชื่อโปรแกรม และเวอร์ชั่นที่ผู้อ่านจะสามารถติดตั้งได้

# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-p374]
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p320]
[ruby-]1.9.3[-p484]
[ruby-]2.0.0-p195
[ruby-]2.0.0[-p353]
[ruby-]2.1.0
[ruby-]2.1.0-head
ruby-head

ติดตั้ง ruby (หากไม่กำหนดเลขเวอร์ชั่น ก็จะเป็นการติดตั้งเวอร์ชั่นล่าสุด)

rvm install ruby

หากขึ้นข้อความแบบข้างล่างนี้ ให้กด Q จากนั้นนั่งรอการติดตั้ง ซักพักนึงประมาณ 5 นาที หรือว่าขึ้นอยู่กับความเร็วเนตก็ไม่แน่ใจนัก

Ruby (and needed base gems) for your selection will be installed shortly.
Before it happens, please read and execute the instructions below.
Please use a separate terminal to execute any additional commands.

Requirements for Linux "Ubuntu 13.10"

NOTE: 'ruby' represents Matz's Ruby Interpreter (MRI) (1.8.X, 1.9.X)
This is the *original* / standard Ruby Language Interpreter
'ree' represents Ruby Enterprise Edition
'rbx' represents Rubinius

bash >= 4.1 required
curl is required
git is required (>= 1.7 for ruby-head)
patch is required (for 1.8 rubies and some ruby-head's).

To install rbx and/or Ruby 1.9 head (MRI) (eg. 1.9.2-head),
then you must install and use rvm 1.8.7 first.

Additional Dependencies:
# For Ruby / Ruby HEAD (MRI, Rubinius, & REE), install the following:
ruby: /usr/bin/apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion pkg-config

# For JRuby, install the following:
jruby: /usr/bin/apt-get install curl g++ openjdk-6-jre-headless
jruby-head: /usr/bin/apt-get install ant openjdk-6-jdk

# For IronRuby, install the following:
ironruby: /usr/bin/apt-get install curl mono-2.0-devel

เมื่อติดตั้งเสร็จ ก็เลือกใช้ เวอร์ชั่นของ Ruby ที่ต้องการ ผมเลือกใช้ ruby version 2.1.0

rvm use 2.1.0

หากมีปัญหา ขึ้นดังข้างล่าง

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for a example.

ให้แก้ไขโดย เปิด Terminal (Ctrl + Alt + T) เลือก Edit -> Profile Preferences  จากนั้นคลิ๊กแท็ป Title and Command ในส่วน Command เลือก Run command as a login shell ปิดและเปิด Terminal ใหม่อีกครั้ง

Setup Ruby on Rails in Ubuntu - Fixed terminal emulator preferences

ทดสอบคำสั่ง use อีกครั้ง

rvm use 2.1.0

หากไม่มี error จะได้ผลลัพธ์ประมาณนี้

Using /home/devahoy/.rvm/gems/ruby-2.1.0

ตอนนี้ติดตั้ง ruby เวอร์ชั่นล่าสุดเรียบร้อยแล้ว ต่อไป ก็ต้องบอก System ให้รู้ซะว่าผู้อ่านจะใช้เวอร์ชั่นนี้แหละ เป็นค่า default ไม่บอกมัน มันไม่รู้นะ :)

rvm --default use 2.1.0

ทดสอบ

ruby -v

จะได้ผลลัพธ์ดังนี้ เป็นอันเสร็จสิ้นการติดตั้ง ruby

ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]

Step 4 : Install Rails

Rails ใช้เวลาในการติดตั้งนานพอสมควรเลย น่าจะนานกว่า ruby อีก (หรือว่าอาจจะขึ้นอยู่กับความเร็วอินเตอร์เนต ไม่แน่ใจ เพราะมีการดาวน์โหลดพวก dependencies ต่างๆด้วย)

gem install rails

เพิ่ม javascript runtime โดยในที่นี้ ใช้ nodejs ซึ่งใช้การติดตั้งแบบ PPA เลย เพื่อความสะดวก และมีการอัพเดทอยู่เสมอ นะ จะบอกให้

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs npm

หาก ผู้อ่านไม่ได้ทำการติดตั้ง nodejs เวลาสั่งรันเซิฟเวอร์ อาจจะมีปัญหาได้

Step 5 : First App

ตอนนี้ขั้นตอนการติดตั้ง Ruby และ Rails ก็เรียบร้อยแล้ว ต่อไปจะลองให้ผู้อ่านได้ทำการทดสอบสร้าง application แรก ด้วย Ruby on Rails กันเลย  การสร้าง application จะใช้คำสั่ง rails new ตามด้วยชื่อ application ตามนี้

rails new AppRails

ตัว Rails จะเริ่มทำการสร้างไฟล์ให้เราแล้ว

create  test/helpers
      create  test/helpers/.keep
      create  test/integration
      create  test/integration/.keep
      create  test/test_helper.rb
      create  tmp/cache
      create  tmp/cache/assets
      create  vendor/assets/javascripts
      create  vendor/assets/javascripts/.keep
      create  vendor/assets/stylesheets
      create  vendor/assets/stylesheets/.keep
 run  bundle install

รอ bundle install ซักครู่ จนขึ้นข้อความข้างล่าง

Your bundle is complete! Use `bundle show [gemname]` 
to see where a bundled gem is installed.

ตอนนี้ server ของผู้อ่านก็ติดตั้งพร้อมแล้ว  ต่อไปสั่ง run server เพื่อจะดูผลลัพธ์

cd AppRails/
rails server

rails s คือคำสั่งแบบสั้น เพื่อสั่งให้ เซิฟเวอร์ เริ่มทำงาน

จะปรากฎข้อความด้านล่าง แสดงว่า รันเซิฟเวอร์ได้แล้ว

=> Booting WEBrick
=> Rails 4.0.2 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2014-03-03 19:15:52] INFO  WEBrick 1.3.1
[2014-03-03 19:15:52] INFO  ruby 2.0.0 (2013-11-22) [x86_64-linux]
[2014-03-03 19:15:52] INFO  WEBrick::HTTPServer#start: pid=7320 port=3000

ลองเข้า http://0.0.0.0:3000 หรือ http://localhost:3000 ผลลัพธ์จะได้แบบนี้ เป็นอันเรียบร้อย

Setup Ruby on Rails in Ubuntu - Result of first app rails

References :

Chai

Chai Phonbopit : Developer แห่งหนึ่ง • ผู้ชายธรรมดาๆ ที่ชื่นชอบ Node.js, JavaScript และ Open Source มีงานอดิเรกเป็น Acoustic Guitar และ Football

บทความล่าสุด