冬天温泉的小庭院

quick install ruby on rails in ubuntu

这篇文章写的是怎样在ubuntu下快速安装ruby on rails环境。

###1. 初始化设置

####1)修改源列表

因为本地的源列表不一定全,因此为了下一步着想还是先去看看源列表的好,或者可以换一个速度快的镜像地址。
每个版本的源列表都不一样在这里就不贴出来了。

之后记得运行

1
2
sudo apt-get update
sudo apt-get upgrade

####2)设置语言包以及时区

1
2
sudo locale-gen --lang zh_CN.UTF-8
sudo dpkg-reconfigure tzdata

###2. 安装必备的开发包

安装以下的东西

1
sudo 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 g++ gcc libcurl4-openssl-dev wget libpcre3-dev vim

要是还想搭建php环境的话则安装下列的

1
sudo apt-get install php5-cli php5-cgi php5-curl psmisc spawn-fcgi

###3. 添加一个rails用户

1
2
3
sudo adduser railsu
sudo usermod -G passenger,www-data,sudo railsu
su - railsu

PS:需要将该用户加到root权限里
1)chmod u+w /etc/sudoers
2)运行vim /etc/sudoers,在root ALL=(ALL) ALL的下面加上railsu ALL=(ALL) ALL
3)chmod u-w /etc/sudoers

###4. 安装ruby on rails环境
注意,请使用刚才添加的rails用户重新登录系统,然后再进行如下操作。

####1)安装rvm

1
2
3
4
5
curl -L https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
sudo gpasswd -a `whoami` rvm
sudo apt-get update
sudo apt-get -y 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

可以通过rvm info命令查看环境是否已经安装正常。

####2)安装ruby

1
2
3
4
5
6
7
8
rvm pkg install readline
#MRI版
rvm install 1.9.3 --with-readline-dir=$rvm_path/usr
#RVM出的patch版本
rvm install 1.9.3-railsexpress --with-readline-dir=$rvm_path/usr
rvm use 1.9.3 --default

####3)安装passenger/nginx

1
2
gem install passenger --no-ri --no-rdoc
rvmsudo passenger-install-nginx-module

默认情况下,nginx会安装到/opt/nginx/目录下

接下来设置nginx的自动启动脚本

1
2
3
4
5
wget https://raw.github.com/gist/1548664/53f6d7ccb9dfc82a50c95e9f6e2e60dc59e4c2fb/nginx
sudo cp nginx /etc/init.d/
sudo chmod +x /etc/init.d/nginx
sudo update-rc.d nginx defaults

之后修改/opt/nginx/conf/nginx.conf文件中的

1
2
3
4
5
6
server {
listen 80;
server_name www.someone.com;
root /home/railsu/project/PROJECT_NAME/public; # <--- 这里是你项目的public目录
passenger_enabled on;
}

####4)安装noje.js/npm环境

1
2
3
4
5
6
7
8
9
10
#noje.js
git clone https://github.com/joyent/node.git
cd node
git checkout v0.6.19 #安装v0.6.19版本,不然的话会安装最新的版本
./configure
make
sudo make install
#npm
curl http://npmjs.org/install.sh | sh

或者使用下面的方式安装

1
2
3
4
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

####5)安装ruby on rails

1
gem install rails --no-ri --no-rdoc

####6)其他需要注意的地方
因为passenger是默认使用的production环境,因此需要对css、javascript先进行编译,不然,你就等着出现类似ActionView::Template::Error (application.css isn't precompiled)的500错误吧。

1
2
cd ~/project
rake assets:precompile

打完收工

:wp

Tips

####1. nginx的启动,停止,重启等命令(修改nginx.conf文件后需要重启)

1
2
3
sudo /etc/init.d/nginx start
sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx restart

####2. 安装zsh
zsh是个很不错的终端,要是没特别的要求就安装一下好了

1
sudo apt-get install zsh

已经有两个配置好了的配置文件可以让你直接使用:grml-zsh-configoh-my-zsh,可以根据自己的喜好安装(我选择的是grml-zsh-config

1
2
3
4
5
6
#grml-zsh-config
wget -O .zshrc http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc
#oh-my-zsh
wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh

设置使用zsh,并重新开启终端

1
chsh -s /usr/bin/zsh #可能需要修改zsh的安装路径

或许需要在.zshrc文件中添加以下内容

1
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

参考