Skip to content
Kuniaki IGARASHI edited this page Nov 12, 2013 · 15 revisions

ワークショップ中に起こったトラブルとその解決方法

Rails & RailsInstaller

インストール中に "Error changing group of /opt/rix to rvm. " が発生して途中で異常終了

  • 環境:Mac

OS再起動してインストーラを再実行するとインストールできる。

Mac で RailsInstaller でのインストールに失敗した場合

なんらかの理由で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

ExecJS::RuntimeError

  • 環境: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には色々なものがあります。代表的なものとして、

があり、これらのうち、いずれかをインストールする必要があります。このうち、お勧めなのは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」とすればインストールできます。

rails s をCtrl+Cで止められないことがある

  • 環境:Windows

その場合、Ctrl+Pauseで止められることもある。しかし、最近のPCにはPauseキーがないものもある。その場合はshellを閉じるしかないと思う。

コマンドプロンプト上で日本語が文字化ける

  • 環境:Windows

コマンドプロンプトの設定をいじれば直るかもだが、UTF-8にするのが難しい。コード側を "XXX".encode("CP932") で対応することもできるが、変換に失敗する場合の例外処理を考慮する必要がある。(全ての環境で発生するわけではない模様)

ユーザー名が日本語でエラーが出る

  • 環境:Windows

現象としては上述のExecJS::RuntimeErrorなどが出る。パス名にマルチバイト文字が入るのが原因で、おそらくこの状態で動作させることはできないと思われる。新しいユーザーを作成するか、VMでLinuxを使うなどを検討するのが良さそう。

SublimeText2

日本語入力すると、インライン入力にならずに入力欄が変テコな場所にでる

  • 環境:Windows

インストールページにインライン入力パッチに関する記述があるのでその対応を行う。

ことえりでバックスラッシュが入力できない

  • 環境:Mac

(表示上は正しく入力できているように見える。)

ことえりをOFFにしてコピペする?

JISキーボードの場合は次で解決するかもです。

「ことえり」で「英字」モード(右上に黒地白抜き文字でAと出ている状態)で、右上の黒地白抜き文字のAをクリックすると「環境設定」がでますので、それをクリック。 その中にある、「入力文字」タブの「JISキーボードの¥キーで入力する文字」を「¥(円記号)」から「\(バックスラッシュ)」に変更してください。

なお、上記の設定をしなくても、optionを押しながら、¥キーを押してもバックスラッシュは入力できます。