###前提・実現したいこと
ruby(64bitの最新版)とDevKitとSSLのpemを使って、rails をコマンドプロントでインストールしようとしました。 そうしたら、以下の様なエラーが出ました。エラーは以下の2つです。
###発生している問題・エラーメッセージ
selector.c:355:9: error: 'TRAP_BEG' undeclared (first use in this function) selector.c:355:9: note: each undeclared identifier is reported only once for each function it appears in selector.c:357:9: error: 'TRAP_END' undeclared (first use in this function)
###該当のソースコード
コマンドプロントは gem install rails で実行しました。
###試したこと
ruby や devkit などを削除して3度入れなおして実行しました。同様のエラーが出たいたので、削除したファイルが原因ではないと思います。
###補足情報(言語/FW/ツール等のバージョンなど)
windows10 ruby 64bit 2.3.1
DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
rubyinstaller-2.3.1-x64.exe
参考したサイトは
https://www.oiax.jp/rails/zakkan/rails_4_2_installation_on_windows.html
Ruby on Rails 4.2 を Windows にインストールする手順をかなり丁寧に説明してみました
書籍は、
Ruby on Rails 5.0 インストール手順書
改訂3版 基礎 Ruby on Rails 基礎シリーズ
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/18 13:34
回答2件
0
ベストアンサー
サイトの方法と、そこまで大きな差ではない
と、思ったけど大幅にちがうところが一カ所・・・。
インストールするかバッチで処理するかの違いですが。
加えて、SQLiteで苦戦してしまいました。もうちょっと楽な方法がありそう(そしてそのうち解消されそう)
SSL pemには触れていません。が、とりあえずrailsのインストールができないよりは良いかと思います。
やり直して綺麗に整理したい気持ちもありますが、時間ないので、無駄な手順が含まれているかもしれません。
うまくいかなかったらすいませんが、とりあえず私の環境では、rails s
までは行きました。
ダウンロード
7zip x64 (ソースの解凍に使います。バージョンは問いませんが最新版が脆弱性修正されているのでその時の最新版で。)
rubyinstaller-2.3.1-x64.exe
DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe
※ 今日DLした。
- Windows 10 pro (Aniversary update まだ適用してない)
他のバージョンのrubyは入っていない
7zip
普通にインストール。
ruby
rubyinstaller-2.3.1-x64.exe
- ruby インストール先
C:\Ruby23-x64
環境変数PATHを設定にチェック。
DevKitのインストール
DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe を実行して、以下の解凍先を入力してOK
- DevKit
解凍先c:\Ruby23-x64\DevKit
コマンドプロンプト(一般権限)
c:\Users\省略> c: c:\Users\省略> cd C:\Ruby23-x64\DevKit C:\Ruby23-x64\DevKit> ruby dk.rb init [INFO] found RubyInstaller v2.3.1 at C:/Ruby23-x64 Initialization complete! Please review and modify the auto-generated 'config.yml' file to ensure it contains the root directories to all of the installed Rubies you want enhanced by the DevKit.
(複数バージョンのRubyを入れている場合、ここでconfig.ymlを書き換えたほうがいい場合もあるが今回は想定しないので、必要なら各自で調べる。)
C:\Ruby23-x64\DevKit>ruby dk.rb install [INFO] Updating convenience notice gem override for 'C:/Ruby23-x64' [INFO] Installing 'C:/Ruby23-x64/lib/ruby/site_ruby/devkit.rb'
アップデートとbundlerのインストール
C:\Ruby23-x64\DevKit> gem update --system C:\Ruby23-x64\DevKit> gem install bundler
※ 実は実際にやってたときは、これはrailsの後に入れたが、順序は特に問題ないと思われる。
railsのインストール
※ このときのバージョンは 5.0.1。将来ここを参考にしたときは、5.0.1で試した方が良い(後述のsqliteなどのビルドがあるため)
C:\Ruby23-x64\DevKit> mkdir c:\tt44394\work C:\Ruby23-x64\DevKit> cd c:\tt44394\work C:\tt44394\work> gem install rails ※ ここでWindowsファイアウォールの警告がでたり。許可してあげる(アンチウィルスソフトにもよる)。 Fetching: i18n-0.7.0.gem (100%) Successfully installed i18n-0.7.0 Fetching: thread_safe-0.3.5.gem (100%) Successfully installed thread_safe-0.3.5 Fetching: tzinfo-1.2.2.gem (100%) 略 Successfully installed sprockets-rails-3.1.1 Fetching: rails-5.0.0.1.gem (100%) Successfully installed rails-5.0.0.1 37 gems installed
nokogiriのインストール
※ 後述の「参考」の先に注意書きがあるように、これは最新版では不要と思われます。
※ とばしておいて、nokogiri関連エラーがでたらでもいいとは思います。
※ 同じ手順でやりたい場合はやっても構いません。あとは古いバージョンだった場合対策とかに載せておきます。
http://xmlsoft.org/sources/win32/64bit/
iconv-1.14-win32-x86_64.7z
libxml2-2.9.3-win32-x86_64.7z
libxslt-1.1.28-win32-x86_64.7z
のダウンロード(このときの最新版)
C:\Ruby23-x64\libxml2 ディレクトリを作成、ダウンロードした 3ファイルを置く。
エクスプローラで3ファイルを選択し、
右クリック>7zip>Extract Here(ここに展開)
bin, include, lib, shareディレクトリができてる(3ファイルとも似たような構成になっていて、まぜて展開したかったので3ファイル同時に解凍した)
コマンドプロンプトにて以下を実行、円マーク(バックスラッシュ)じゃない事に注意。
C:\Ruby23-x64>set lx2=c:/Ruby23-x64/libxml2 C:\Ruby23-x64>gem install nokogiri --platform=ruby -- --use-system-libraries --with-iconv-include=%lx2%/include --with-iconv-lib=%lx2%/lib --with-xml2-include=%lx2%/include/libxml2 --with-xml2-lib=%lx2%/lib --with-xslt-include=%lx2%/include --with-xslt-lib=%lx2%/lib C:\Ruby23-x64>gem install nokogiri C:\Ruby23-x64>mkdir C:\Ruby23-x64\lib\ruby\gems\2.3.0\gems\nokogiri-1.6.8-x64-mingw32\lib\nokogiri\2.3 C:\Ruby23-x64>copy C:\Ruby23-x64\lib\ruby\gems\2.3.0\extensions\x64-mingw32\2.3.0\nokogiri-1.6.8\nokogiri\nokogiri.so C:\Ruby23-x64\lib\ruby\gems\2.3.0\gems\nokogiri-1.6.8-x64-mingw32\lib\nokogiri\2.3 C:\Ruby23-x64>copy C:\Ruby23-x64\libxml2\lib\*.dll c:\Ruby23-x64\bin
※ コピーは上書きになるかもしれません。
SQLite3 のコンパイル、配置
railsをインストールした時点で、入るは入るものの、gems/lib に 2.3のディレクトリがないので自前でビルドする。
これは、以下のエラーへの対応で行った。
c:\tt44394\work\myApp>rails s C:/Ruby23-x64/lib/ruby/gems/2.3.0/gems/sqlite3-1.3.11-x64-mingw32/lib/sqlite3.rb:6:in `require': cannot load such file -- sqlite3/sqlite3_native (LoadError)
リソースの取得と配置
prebuildバイナリとautoconfソースを入手 (http://www.sqlite.org/download.html) 。
ただしrailsが使おうとするバージョンに合わせるため、直接バージョン指定してダウンロードする。
http://www.sqlite.org/2016/sqlite-dll-win64-x64-3130000.zip
http://www.sqlite.org/2016/sqlite-autoconf-3130000.tar.gz
- sqlite-dll-win64-x64-3130000.zip
中身を C:\Ruby23-x64\bin
に置く。 (不要かもしれないが、これをやらないとビルドに失敗するというのを見かけたので)
- sqlite-autoconf-3130000.tar.gz
7zipでも解凍可能(ただ、tarとgzで2回解凍することに)
C:\Ruby23-x64\sqlite\sqlite-autoconf-3130000
に解凍する。(C:\Ruby23-x64\sqlite\sqlite-autoconf-3130000\tea\
とできるように)
DevKitのMSYSでコンパイル
C:\Ruby23-x64\DevKit\msys.bat
を起動
コンパイル。それぞれ多少時間かかります。
最後のinstallのオプションのパスを間違えないように注意。
UserName@MachineName ~ $ cd /c/Ruby23-x64/sqlite/sqlite-autoconf-3130000/ UserName@MachineName /c/Ruby23-x64/sqlite/sqlite-autoconf-3130000 $ ./configure UserName@MachineName /c/Ruby23-x64/sqlite/sqlite-autoconf-3130000 $ make UserName@MachineName /c/Ruby23-x64/sqlite/sqlite-autoconf-3130000 $ make install UserName@MachineName /c/Ruby23-x64/sqlite/sqlite-autoconf-3130000 $ gem install sqlite3 --platform=ruby -- --with-sqlite3-include=/c/Ruby23-x64/sqlite/sqlite-autoconf-3130000/ --with-sqlite3-lib=/c/Ruby23-x64/sqlite/sqlite-autoconf-3130000/.libs/
完了したら閉じてOK。
成果のコピー
C:\Ruby23-x64\lib\ruby\gems\2.3.0\gems\sqlite3-1.3.11-x64-mingw32\lib\sqlite3
に 2.3
ディレクトリを作成。
C:\Ruby23-x64\lib\ruby\gems\2.3.0\gems\sqlite3-1.3.11\lib\sqlite3\sqlite3_native.so
を、今作った C:\Ruby23-x64\lib\ruby\gems\2.3.0\gems\sqlite3-1.3.11-x64-mingw32\lib\sqlite3\2.3\
にコピー
C:\Ruby23-x64\DevKit\local\bin\libsqlite3-0.dll
を
C:\Ruby23-x64\bin\
にコピー(こちらは不要かもしれない)
railsアプリケーションの作成
c:\tt44394\work> rails new myApp create create README.md create Rakefile create config.ru create .gitignore ※ 省略 Installing sass-rails 5.0.6 Bundle complete! 12 Gemfile dependencies, 57 gems now installed. Use `bundle show [gemname]` to see where a bundled gem is installed.
railsアプリケーションの起動
c:\tt44394\work>dir ドライブ C のボリューム ラベルは SSD です ボリューム シリアル番号は 8AF0-B3D9 です c:\tt44394\work のディレクトリ 2016/08/18 22:52 <DIR> . 2016/08/18 22:52 <DIR> .. 2016/08/18 22:52 <DIR> myApp 0 個のファイル 0 バイト 3 個のディレクトリ 247,758,794,752 バイトの空き領域 c:\tt44394\work>cd myApp c:\tt44394\work\myApp> rails s
もし、SQLiteでエラーがでたら、
c:\tt44394\work>gem uninstall sqlite3
で2つ出ると思うので、sqlite3をいったん全部消し
c:\tt44394\work>gem install sqlite3
を行い、
C:\Ruby23-x64\lib\ruby\gems\2.3.0\gems\sqlite3-1.3.11-x64-mingw32\lib\sqlite3\2.3\
が無ければ、また作って sqlite3_native.so
をコピーしてあげてください。
既存のrailsアプリがあったら
起動しないので、無いとは思いますが、もしあってうまく起動できない(SQLite3がらみ)場合は、
Gemfile.lockを見て、
sqlite3
が指定しているバージョンが、作業で構築したバージョンと一致しているか、nokogiri
も同様に一致しているか- その他
-x64-mingw32
系のバージョンが大丈夫か
確認するといいかもしれません。
参考
いずれも、ライブラリ変えてたり、typo修正したり、オリジナルとは少し変わっています。
nokogiri:
Windows(64bit) で Ruby 2.2.3 + Rails 4.2.4
nokogiri のバージョンが上がった(最新は 1.6.7.2)ことにより、この問題は起きなくなりました
とあるので、不要かもしれません。
sqlite3:
stackoverflow : How do I install sqlite3 for Ruby on Windows?
WilliamsのAnswer
投稿2016/08/18 16:53
総合スコア2604
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/19 14:49
2016/08/19 14:56
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
関連した質問
Ruby on Railsをcdからインストールできません。 TRAP_BEG undeclared とTRAP_END undeclared表示されます。解決の仕方がわかりません。