Ubuntu 12.04 LTS 上搭建現代 Ruby on Rails 開發環境,推薦使用 RVM 管理 Ruby 版本,安裝 Ruby 2.0.0、Rails 3.2.13、MySQL 及必要開發套件。本文記錄從系統套件安裝、RVM 部署、Ruby 編譯、Gem 源切換至淘寶鏡像、Rails 安裝、MySQL 配置的完整流程。
sudo apt-get install -y build-essential openssl curl libcurl3-dev libreadline6 libreadline6-dev \
git zlib1g zlib1g-dev libssl-dev libyaml-dev libxml2-dev libxslt-dev autoconf automake libtool \
imagemagick libmagickwand-dev libpcre3-dev libsqlite3-dev libmysql-ruby libmysqlclient-dev
curl -L https://get.rvm.io | bash -s stable
# 載入 RVM 環境(新終端自動載入)
source ~/.rvm/scripts/rvm
# 驗證
rvm -v
# rvm 1.17.3 (stable) by Wayne E. Seguin, Michal Papis [https://rvm.io/]
# 切換 Ruby 下載源至淘寶鏡像(加速)
sed -i.bak 's!ftp.ruby-lang.org/pub/ruby!ruby.taobao.org/mirrors/ruby!' $rvm_path/config/db
# 安裝 readline 套件(RVM 管理)
rvm pkg install readline
# 安裝 Ruby 2.0.0 並連結 readline
rvm install 2.0.0 --with-readline-dir=$rvm_path/usr
rvm use 2.0.0 --default
# 驗證
ruby -v
# ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]
gem -v
# 2.0.0
# 切換 Gem 源至淘寶(國內加速)
gem source -r https://rubygems.org/
gem source -a https://ruby.taobao.org
gem sources -l
# *** CURRENT SOURCES ***
# https://ruby.taobao.org
gem install bundler rails
# 驗證
bundle -v
# Bundler version 1.3.5
rails -v
# Rails 3.2.13
sudo apt-get install mysql-server mysql-client
# 安裝過程設定 root 密碼,請記住
sudo apt-get install libmysql-ruby libmysqlclient-dev
gem install mysql2
# 若報錯缺少 mysql.h,確認 libmysqlclient-dev 已安裝
rails new testapp -d mysql
cd testapp
vi config/database.yml
# 修改 development 區塊 username/password
rake db:create
rails server
# 瀏覽器訪問 https://localhost:3000 看到 Rails 歡迎頁即成功

rvm install 失敗:檢查 build-essential、libreadline6-dev、libssl-dev 等開發套件是否完整。config/database.yml 的 host、username、password、encoding: utf8、socket 路徑正確。~/.rvm,多用戶建議系統級安裝 rvm-install-system。Linux 硬體處理與軟體處理本質差異:順序執行 CPU vs 平行洪流硬體邏輯
Linux ln 指令完整操作指南:硬連結與符號連結實戰詳解
Linux GDB 調試器完全指南:核心功能、命令速查與實戰案例
Linux mydumper 報錯 libmysqlclient_16 not defined 解決:LD_LIBRARY_PATH 引入 MySQL 函式庫路徑
Ubuntu 13.10 安裝 NVIDIA 319.60 驅動報錯?手動打 Patch 修正核心相容性
Linux Vsftpd 500 OOPS: cannot change directory 徹底解決(SELinux 篇)