Troubleshooting

sinamon129 edited this page Jul 13, 2016 · 15 revisions

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

Rails & RailsInstaller

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

  • 環境:Mac

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

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

なんらかの理由でRailsInstallerでインストールができなかった場合は、brew+rbenv でインストールする手順がお勧めです。

http://railsgirls.jp/install の「ステップ 3-B」に手順が載っています。

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リポジトリを追加後、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を押しながら、¥キーを押してもバックスラッシュは入力できます。