VgrantでインストールしたUbuntu ServerにRuby On Railsをインストール
Vagrantで導入した仮想マシン(ubuntu12.04 minimal server)にRuby On Railsをインストールする
環境
ホストOS
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.4 LTS"
$ vagrant -v
Vagrant 1.6.3
$ VBoxManage -v
4.3.14r95030
box(Ubuntu-Server-12.10-amd64-Minimal.box)
http://goo.gl/wxdwM
sshでログイン
$ ssh vagrant ssh
アップデート
リポジトリが古くなっているので、下記のコマンドを実行し修正
$ sudo sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
$ sudo sed -i -e 's/br.old-releases.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
$ sudo apt-get update; sudo apt-get upgrade -y
不要なパッケージを削除
インストールされているパッケージ一覧を取得
$ dpkg -l
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii accountsservic 0.6.21-6ubun amd64 query and manipulate user account
ii adduser 3.113+nmu1ub all add and remove users and groups
ii ruby-stable 1.9.3-p362-1 amd64 Interpreter of object-oriented sc
よく見ると、ruby-stable 1.9.3-p362-1 amd64が入っているのでアンインストール
$ dpkg -P ruby-stable
(Reading database ... 51181 files and directories currently installed.)
Removing ruby-stable ...
dpkg: warning: while removing ruby-stable, directory '/usr/lib/ruby/site_ruby/1.9.1' not empty so not removed
dpkg: warning: while removing ruby-stable, directory '/usr/lib/ruby/gems/1.9.1/specifications' not empty so not removed
dpkg: warning: while removing ruby-stable, directory '/usr/lib/ruby/gems/1.9.1/gems' not empty so not removed
dpkg: warning: while removing ruby-stable, directory '/usr/lib/ruby/gems/1.9.1/doc' not empty so not removed
dpkg: warning: while removing ruby-stable, directory '/usr/lib/ruby/gems/1.9.1/cache' not empty so not removed
Processing triggers for man-db ...
ディレクトリが削除出来なかったため、手動で削除
$ sudo rm -rf /usr/lib/ruby/site_ruby/1.9.1 /usr/lib/ruby/gems/1.9.1/specifications /usr/lib/ruby/gems/1.9.1/gems /usr/lib/ruby/gems/1.9.1/doc /usr/lib/ruby/gems/1.9.1/cache
必要なパッケージをインストール
$ sudo apt-get install git -y
$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
$ sudo apt-get install libsqlite3-dev libcurl4-openssl-dev -y
$ sudo apt-get install zlib1g-dev libssl-dev libreadline6-dev libyaml-dev libxml2-dev libxslt-dev -y
$ sudo apt-get install g++ -y
初期化コマンドを記述しておく
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
ターミナル再起動
ruby-buildのインストール
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenvで特定バージョンのrubyをインストール
$ rbenv install 2.0.0-p481
$ rbenv rehash
使用するバージョンの指定
$ rbenv global
system
現在はシステム標準のrubyが割り当てられているので変更する
$ rbenv global 2.0.0-p481
$ rbenv global
2.0.0-p481
$ rbenv rehash
gemをインストールした後のrbenv rehashを自動化する このままではgemをインストールまたはアンインストールするたびにrbenv rehashする必要があります。 これを自動化してくれるrbenv-rehashというgemがあります(https://github.com/ryansouza/rbenv-rehash)
$ gem i rbenv-rehash
Ruby On Railsのインストール
gemがインストールされていなかったら適宜しましょう gemが自動で作成するri rdocドキュメントを無効化する
$ echo 'install: --no-rdoc --no-ri' >> ~/.gemrc
$ echo 'update: --no-rdoc --no-ri' >> ~/.gemrc
railsのインストール(version 4.0.5)
$ sudo gem install rails --version 4.0.5
Successfully installed rails-4.0.5
23 gems installed
できたと思ってバージョン確認
$ rails -v
The program 'rails' can be found in the following packages:
* rails
* ruby-railties-3.2
Try: sudo apt-get install <selected package>
gem listを確認
$ gem list
*** LOCAL GEMS ***
rails (4.0.5)
railties (4.0.5)
rake (0.9.6)
rbenv-rehash (0.3)
rdoc (4.0.0)
rest-client (1.6.7)
ちゃんとrailsがあるの Gemをアップデート
$ gem update --system
$ rbenv rehash
$ update_rubygems
-bash: /usr/bin/update_rubygems: /usr/bin/ruby: bad interpreter: No such file or directory
リンクを貼ってみる
sudo ln -sf `which ruby` /usr/bin
もう一度アップデート
$ update_rubygems
RubyGems 2.4.1 installed
Parsing documentation for rubygems-2.4.1
Installing ri documentation for rubygems-2.4.1
=== 2.4.1 / 2014-07-17
Bug fixes:
* RubyGems can now be updated on Ruby implementations that do not support
vendordir in RbConfig::CONFIG. Issue #974 by net1957.
------------------------------------------------------------------------------
RubyGems installed the following executables:
/home/vagrant/.rbenv/versions/2.0.0-p481/bin/gem
Ruby Interactive (ri) documentation was installed. ri is kind of like man
pages for ruby libraries. You may access it like this:
ri Classname
ri Classname.class_method
ri Classname#instance_method
If you do not wish to install this documentation in the future, use the
--no-document flag, or set it as the default in your ~/.gemrc file. See
'gem help env' for details.
できたみたいだけど、まだrailsは実行できない
パスが通ってないからだと思い、findでrailsなどがあるディレクトリを検索
$ sudo find / -type f -name rails
/home/vagrant/local/ruby/gems/bin/rails
/home/vagrant/local/ruby/gems/gems/rails-4.0.5/guides/code/getting_started/bin/rails
/home/vagrant/local/ruby/gems/gems/sass-rails-4.0.3/test/fixtures/sass_project/script/rails
/home/vagrant/local/ruby/gems/gems/sass-rails-4.0.3/test/fixtures/alternate_config_project/script/rails
/home/vagrant/local/ruby/gems/gems/sass-rails-4.0.3/test/fixtures/engine_project/test/dummy/bin/rails
/home/vagrant/local/ruby/gems/gems/sass-rails-4.0.3/test/fixtures/engine_project/script/rails
/home/vagrant/local/ruby/gems/gems/sass-rails-4.0.3/test/fixtures/scss_project/script/rails
/home/vagrant/local/ruby/gems/gems/railties-4.0.5/lib/rails/generators/rails/app/templates/bin/rails
/home/vagrant/local/ruby/gems/gems/railties-4.0.5/bin/rails
先程.bashrcに記述したexport文を以下の用にする
export PATH="$HOME/.rbenv/bin:$HOME/local/ruby/gems/bin:$PATH"
仮想マシンから抜けて、再度ログインしてrails -vを実行
$ exit
$ sudo vagrant ssh
$ rails -v
Rails 4.0.5
やっとできた。
しかし、この方法だと今後問題が出てきそうなので、適宜追記していくことになるかも…