LoginSignup
9
7

More than 3 years have passed since last update.

rails インストールメモ

Last updated at Posted at 2013-04-27

『Ruby on Rails環境構築ガイド』と
『Ruby on Rails3 アプリケーションプログラミング』を基に
環境構築実験をする。
Ubuntu, CentOS, Windows, MaxOS を並行して使うことにする

  • gitのインストールは済んでいるものとする
  • ruby1.9.3系を使う
  • 各ホームディレクトリ配下に以下のファイルを置いておくこと
    • ドキュメントのリンクをスキップしてビルドが速くなるらしい(受け売り)
.gem.rc
install: --no-ri --no-rdoc
update: --no-ri --no-rdoc

rails new some_appとしてアプリを新規に作る

以下、エラーが出るたびに rmdir して最初から作り直してる

ubuntu12.4での反応

rails new some_app を実行すると、sqlite3のエラーが起きた

-必要なライブラリが無いらしい
ubuntuで以下のコマンドを投げ込んだらエラーが消えた

sudo gem install libsqlite3-dev
sudo gem install turbolinks
sudo gem install uglifier

なんかエラーが出続けるので
rails -v したらVer4.0.0-beta1だった

sudo gem uninstall rails -aでRailsをアンインストールする

しかし、rails -v したらVer4.0.0-beta1と帰ってくる。
which railsすると""/usr/local/bin/rails""にまだ残っている・・・

色々試したのだが上手く行かない。gem install <package>sudo gem install <package>ではインストール先が変わるらしい。どうも環境がごた混ぜになった模様

ここの情報を基にgemを一度空にする。
sudo gem uni $(gem li --no-versions) システム環境側の全削除
gem uni $(gem li --no-versions) ホームディレクトリ配下の全削除(多分・・・)

home配下に入れるように注意。以降gemコマンドにsudoを付けないようにする

gem install rails

Fetching: i18n-0.6.1.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /usr/local/lib/ruby/gems/1.9.1 directory.

パーミッションが無い・・・sudoじゃなきゃ駄目ですか・・・
そもそも、環境構築ガイドの方には1.8と1.9を apt-get purge しろと書いてあった。

素直に従い、sudo gem install railsすることにした
また、新規作成時に sudo rails new <app>とすることで、依存関係のあるgemをインストールしてくれるらしい。

rails new some_app
cd some_app
rails server

ここで失敗

\/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in 'autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
from /usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.4.0/lib

ここを参考にGemfileを修正

Gemfile
# 末尾に追加
gem 'therubyracer' 

sudo bundle installする

また失敗、

Installing therubyracer (0.11.4)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/local/bin/ruby extconf.rb
checking for main() in -lpthread... yes
creating Makefile
make
compiling trycatch.cc
make: g++: Command not found
make: *** [trycatch.o] Error 127
Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.11.4 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/therubyracer-0.11.4/ext/v8/gem_make.out
An error occurred while installing therubyracer (0.11.4), and Bundler cannot continue.
Make sure that gem install therubyracer -v '0.11.4' succeeds before bundling.

g++が無いって怒ってるっぽいのでインストールする。
そして再度 bundle install

sudo apt-get g++
sudo bundle install
sudo rails server

動いた!!

=> Booting WEBrick
=> Rails 3.2.13 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2013-04-27 12:52:17] INFO WEBrick 1.3.1
[2013-04-27 12:52:17] INFO ruby 1.9.3 (2013-02-22) [x86_64-linux]
[2013-04-27 12:52:17] INFO WEBrick::HTTPServer#start: pid=1816 port=3000

しかし、このままでは構成ファイルが全部root権限になってしまうのでアプリを全削除

cd ../
sudo rm -fR someapp
rails new someapp
cd someapp
rails server

''失敗''

Gemfileの修正は毎回必要らしい。
修正してbuild install
もう一回rails server
おけ、無事起動。

Windows版

問題なく動いた

Mac版

問題なく動いた

centos版 (RVM経由)

rvmのインストールから試してみる

curl -L https://get.rvm.io | bash -s stable --autolibs=3 --rails

ruby-2.0.0-p0がインストールされる。チョー時間かかった30分以上?
以下のようにタイプして初期設定を行う。これでrvmにパスが通る

source ~/.rvm/scripts/rvm

rvm list knownでインストール可能なバージョンを表示
今回は1.9.3系を入れることにする
rvm install 1.9.3 枝番を省くと勝手に最新版"-p392"を選んでインストールしてくれる

切り替える前に今のrubyのバージョンを確認
ruby -v

ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]

1.9.3に切り替える

rvm use 1.9.3
ruby -v

ruby 1.9.3p392 (2013-02-22 revision 39386) [x86_64-linux]

おっけ。
オフィシャルの解説が分かりやすい。英語だけどコマンド追ってくだけで理解できた

rum use 1.9.3 --defaultこれで1.9.3がデフォルトになる

**引き続きRailsのインストール
gem install rails
そしてアップデート
gem update

**Railsを新規作成

rails new some_app  #ここは問題なし
cd some_app
rails server

エラー。またお前か!!

/home/vagrant/.rvm/gems/ruby-1.9.3-p392/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)

JavaScriptのランタイムの問題とのことなので試しに手動でインストールしてみる

gem install therubyracer
駄目だった。諦めてUbuntuとおなじくGemfileを修正する。

あとは同じように
bundle install
rails s ""server""の代わりにこの表記でもいいらしい
動作した。

ブラウザから http://ip-addr:3000/ でアクセスしてwelcomeと表示されればOK
''centos''の場合、iptablesによってアクセスがブロックされ表示できなかった。
sudo iptables stopで無理やり黙らせたら表示できるようになった。

以上、4種類の環境にrails3をインストールして動作確認をした

  • Ubuntu12.04 (VirtualBox + Vagrant)
  • CentOS6.4 (VirtualBox + Vagrant)
  • Windows7
  • MacOS X(MoutainLion)

感想

  • Rubyド初心者としては動くとろこまで行ったことを幸いとしておこう。
  • RubyやGemのインストール手順を見なおす必要がありそう。
  • PHPに比べると、バージョンの違いにピーキーに反応する感じ
9
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7