『Ruby on Rails環境構築ガイド』と
『Ruby on Rails3 アプリケーションプログラミング』を基に
環境構築実験をする。
Ubuntu, CentOS, Windows, MaxOS を並行して使うことにする
- gitのインストールは済んでいるものとする
- ruby1.9.3系を使う
- 各ホームディレクトリ配下に以下のファイルを置いておくこと
- ドキュメントのリンクをスキップしてビルドが速くなるらしい(受け売り)
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を修正
# 末尾に追加
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 thatgem 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に比べると、バージョンの違いにピーキーに反応する感じ