วันอังคารที่ 15 กุมภาพันธ์ พ.ศ. 2554

Create gemset

สร้าง Gemset แทนชุดของ library หนึ่งชุดที่ใช้ในหนึ่งโปรเจ็คท์ โปรเจ็คท์แต่ละโปรเจ็คท์ควรจะแยกใช้คนละ Gemset กัน
เพื่อให้มั่นใจได้ว่าเราลง library เท่าที่จำเป็นใน project นั้นๆจริงๆ
เพื่อให้รู้ชัดเจนว่าแต่ละโปรเจ็คท์ใช้ library อะไรบ้าง
เพื่อให้มีความเสถียรในการพัฒนาเพราะการพัฒนาโปรเจ็คท์ใหม่ไม่มีการลงอะไรที่กระทบงานเก่า

$ rvm use ruby_version # เช่น rvm use 1.8.7 or rvm use 1.9.2

ื่อ Gemset ที่ตั้งควรจะแทนงานหนึ่งงาน ให้สะดวกก็ใช้ชื่อโปรเจ็คท์ได้
$ rvm gemset create gemset_name # เช่น rvm gemset create my_app
$ rvm use 1.8.7@gemset_name # เช่น rvm use 1.8.7@my_app

การ Setup RVM, Ruby

Install RVM

$ bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

เปิดไฟล์ .bashrc มาแก้ไข
[ -z "$PS1" ] && return

เปลี่ยนเป็น
if [[ -n "$PS1" ]]; then

บรรทัดสุดท้ายของไฟล์
fi
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.


Install package for Debian/Ubuntu

$ sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev


Install Ruby Interpreters

$ rvm install 1.8.7 สำหรับเวอร์ชัน 1.8.7
$ rvm install 1.9.2 สำหรับเวอร์ชัน 1.9.2



อ้างอิง http://rvm.beginrescueend.com/ (rvm document)

GIT install

# Install git and gitg repo viewer
sudo apt-get install git git-doc gitg

# Set name and email in gitconfig
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com

# Configure default git text editor
git config --global core.editor gvim

# Configure status colors
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
git config --global color.status.changed yellow
git config --global color.status.added green
git config --global color.status.untracked red

# Verify git settings
git config --list

# Generate SSH keys (provide a good passphrase when asked)
ssh-keygen -t rsa -C "johndoe@example.com"

Bundle คืออะไร?

Bundle นั้นเป็นคำสั่งใน Command line สำหรับช่วยในจัดการกับเครื่องมือต่างๆ ที่เราต้องใช้ภายในโปรเจค โดยจะทำการดาวน์โหลด และติดตั้ง โปรแกรม, ปลั๊กอิน หรือเครื่องมือใน Gemfile จะใช้ Bundle ได้นั้นเราต้องติดตั้ง Bundler ก่อนด้วยคำสั่ง $ gem install bundler ถึงใช้คำสั่ง $ bundle install เพื่อทำการติดตั้งเครื่องมือที่เราต้องใช้ภายในโปรเจค
Bundle นั้นสามารถที่จะลงได้หลายครั้งเมื่อเราทำการเปลี่ยนแปลง Gemfile ไม่ว่าจะเป็นการเปลี่ยนไปใช้เครื่องมือเวอร์ชันที่สูงกว่า หรือมีการเพิ่ม, ลบ โปรแกรมที่ต้องใช้กับโปรเจค เราสามารถที่จะรัน $ bundle install อีกครั้งเพื่อปรับสภาพแวดล้อมของโปรแกรมเราใหม่ให้สามารถใช้งานเครื่องมือต่างๆ เหล่านั้นที่เราทำการเพิ่ม, ลบ หรือแก้ไขได้

Ruby Version Manager (RVM) คืออะไร?

RVM นั้นเป็นเครื่องมือที่เป็น Command line สำหรับช่วยในการจัดการ และทำงานกับโปรเจคหลาย ๆ ตัวซึ่งสามารถที่จะมีสภาพแวดล้อมของตัวเองได้ โดยสามารถที่จะสร้างเป็นกลุ่มของ Gem ที่ต้องใช้งานของแต่ละโปรเจคเรียกว่า Gemset ของตัวเองขึ้นมาสำหรับใช้งานในแต่ละโปรเจค อยู่ในไฟล์ชื่อว่า Gemfile ซึ่งจะไม่กระทบกับสภาพแวดล้อมของโปรเจคอื่นๆ

RVM มีระบบการจัดการกับ Gem ซึ่งมีความยืดหยุ่นสูงที่เรียกว่า Gemset ซึ่งตัว Gemset สามารถที่จะบริหารจัดการ Gems ต่างๆของแต่ละโปรเจคเพื่อที่จะทำให้สามารถทำงานกับ Ruby เวอร์ชันที่ต่างกัน