質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

Ruby on Railsをcdからインストールできません。 TRAP_BEG undeclared とTRAP_END undeclared表示されます。解決の仕方がわかりません。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,193

algorithm

score 5

前提・実現したいこと

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 基礎シリーズ

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • flied_onion

    2016/08/16 00:04

    ダウンロードした、rubyとdevkitのファイル名は記載できますか?
    インストールに際して参考にしたサイトもあれば教えてください。

    キャンセル

  • flied_onion

    2016/08/18 22:34

    同じファイルで再現するかちょっと今からやってみます。ただ、そのサイトと私のやったことあるやり方違う(そこまで大きな差ではない)ので、最初は私のやり方でやります。「できた」=「railsのプロジェクトを作って起動できる」とします。

    キャンセル

回答 2

checkベストアンサー

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/19 23:49

    回答有り難うございました。
    上記のやり方を試したあと、4.2.7.1 - August 10, 2016 (1.41 MB)をインストールしたらできました。
    その後5.0.0.0を試してもできなかったので(同様のエラーがでる)、現状私のパソコンではインストール出来ないのかもしれません。
    とりあえず、インストールできたバージョンで利用します。

    キャンセル

  • 2016/08/19 23:56

    そうですか、残念です。
    私の環境ではインストールしたら 5.0.0.1だったので、その辺の差もあるかもしれませんね。

    キャンセル

0

できました。
ruby dk.rb init と ruby dk.rb install をDevkitに実行していないのが原因でした。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • トップ
  • Rubyに関する質問
  • Ruby on Railsをcdからインストールできません。 TRAP_BEG undeclared とTRAP_END undeclared表示されます。解決の仕方がわかりません。