-
Notifications
You must be signed in to change notification settings - Fork 130
Troubleshooting
ワークショップ中に起こったトラブルとその解決方法
- 環境:Mac
OS再起動してインストーラを再実行するとインストールできる。
なんらかの理由でRailsInstallerでインストールができなかった場合は、brew+rbenv でインストールする手順がお勧めです。
0. 前準備
1. brew をinstall(rbenvインストール用と、OpenSSL証明書問題が起きた際にも利用)
2. rbenv をinstall
3. rbenvで Ruby を build
4. (3.)でOpenSSL証明書エラーが出たら対処
5. rbenvでデフォルトのRubyを設定
6. gem install rails
7. rails new と scaffold で動作確認
手順
0. 前準備
Command line tools をインストール(Mavericsk用コマンド(たぶん))
$ xcode-select --install
1. brew をinstall(rbenvインストール用と、OpenSSL証明書問題が起きた際にも利用)
http://brew.sh/ の手順。
$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
2. rbenv をinstall
https://github.com/sstephenson/rbenv の手順。
$ brew update
$ brew install rbenv ruby-build
https://github.com/sstephenson/rbenv の指示に従い、.bash_profile (や .zshrc や .profile など)にrbenvの設定を追加。
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
3. rbenvで Ruby を build
# list all available versions:
$ rbenv install -l
# install a Ruby version:
$ rbenv install 2.0.0-p247
4. (3.)でOpenSSL証明書エラーが出たら対処
http://qiita.com/satococoa/items/bd5a935d79ee728f19f8 とか参照
5. rbenvでデフォルトのRubyを設定
$ rbenv global 2.0.0-p247
6. gem install rails
$ gem i rails
7. rails new と scaffold で動作確認
$ rails new test_app
$ cd test_app
$ rails g scaffold books title:string memo:text
$ bundle exec rake db:migrate
$ bundle exec rails s
- 環境:Windows, Ubuntu
scaffold 実行して migration して rails s してブラウザでアクセスすると ExecJS::RuntimeError が発生することがある。(この問題があるので、環境構築後の動作確認はscaffoldしてアクセスするところまでやった方が堅い。)
Windows8で発生した。Node.jsを入れてWindowsを再起動したら出なくなる。(Windowsでユーザー名に日本語が使われている場合も発生することがある。後述。)Ubuntuでも発生することがある。
スクリーンショット:http://www.flickr.com/photos/igaiga/8441060182/in/photostream
もうすこし詳細メモ:http://igarashikuniaki.net/diary/20130203.html
Ruby on Rails 3.1以降、Ruby on Railsを実行するためにはサーバ側にJavaScriptを処理する「JavaScript Runtime」と呼ばれるものが必要となりました。
このJavaScript Runtimeには色々なものがあります。代表的なものとして、
- therubyracer(Ruby Gem、https://github.com/cowboyd/therubyracer)
- therubyrhino(Ruby Gem、https://github.com/cowboyd/therubyrhino)
- Node.js(C++で書かれたライブラリ、https://nodejs.org/)
- Apple JavaScriptCore(MacOSXに標準で入っているJavaScript Runtime)
があり、これらのうち、いずれかをインストールする必要があります。このうち、お勧めなのはNode.jsをインストールすることです。therubyracerなどRuby Gemをインストールするという手もありますが、OSライブラリが別途必要でGemのインストールにかなりハマります。このため、インストールが容易なNode.jsのインストールをおすすめしています。
以下、代表的なOSの例です。
- Windowsの場合
Node.jsをインストールしてください。Node.jsのサイトに行ってインストーラーのダウンロードと実行をすればOKです。
- Windowsの場合について補記
Windowsの場合、標準でインストールされているWindows Scripting HostがJavaScript Runtimeとして動くはずなんですが、動いてくれないという原因がわかっていません。
- Macの場合
何もしなくてOKです。Apple JavaScriptCoreが使われます。
- CentOS/redHat Enterprise Linux/Fedoraの場合
Node.jsをインストールしてください。EPELリポジトリ(https://fedoraproject.org/wiki/EPEL)を追加後、rootユーザで「yum install nodejs」を実行すればOKです。
- Ubuntuの場合
Node.jsをインストールしてください。「sudo apt-get install nodejs」とすればインストールできます。
- 環境:Windows
その場合、Ctrl+Pauseで止められることもある。しかし、最近のPCにはPauseキーがないものもある。その場合はshellを閉じるしかないと思う。
- 環境:Windows
コマンドプロンプトの設定をいじれば直るかもだが、UTF-8にするのが難しい。コード側を "XXX".encode("CP932") で対応することもできるが、変換に失敗する場合の例外処理を考慮する必要がある。(全ての環境で発生するわけではない模様)
- 環境:Windows
現象としては上述のExecJS::RuntimeErrorなどが出る。パス名にマルチバイト文字が入るのが原因で、おそらくこの状態で動作させることはできないと思われる。新しいユーザーを作成するか、VMでLinuxを使うなどを検討するのが良さそう。
- 環境:Windows
インストールページにインライン入力パッチに関する記述があるのでその対応を行う。
- 環境:Mac
(表示上は正しく入力できているように見える。)
ことえりをOFFにしてコピペする?
JISキーボードの場合は次で解決するかもです。
「ことえり」で「英字」モード(右上に黒地白抜き文字でAと出ている状態)で、右上の黒地白抜き文字のAをクリックすると「環境設定」がでますので、それをクリック。 その中にある、「入力文字」タブの「JISキーボードの¥キーで入力する文字」を「¥(円記号)」から「\(バックスラッシュ)」に変更してください。
なお、上記の設定をしなくても、optionを押しながら、¥キーを押してもバックスラッシュは入力できます。