1

このエラーを修正し、シンまたは他の gem をインストールするにはどうすればよいですか?

$ sudo gem install thin
ネイティブ拡張機能の構築。これにはしばらく時間がかかる場合があります...
エラー: シンのインストール中にエラーが発生しました:
    エラー: gem ネイティブ拡張のビルドに失敗しました。

/usr/bin/ruby1.9.1 extconf.rb
ruby.h、rubysig.h の rb_trap_immediate をチェックしています... *** extconf.rb に失敗しました ***
何らかの理由で Makefile を作成できませんでした。おそらく不足しています
必要なライブラリおよび/またはヘッダー。詳細については、mkmf.log ファイルを確認してください
詳細。構成オプションが必要な場合があります。

提供される構成オプション:
    --with-opt-dir
    --opt-dir なし
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --make-prog なし
    --srcdir=.
    --curdir
    --ruby=/usr/bin/ruby1.9.1
/usr/lib/ruby/1.9.1/mkmf.rb:362:`try_do' で: コンパイラは実行可能ファイルの生成に失敗しました。(ランタイムエラー)
最初に開発ツールをインストールする必要があります。
    from /usr/lib/ruby/1.9.1/mkmf.rb:425:in `try_compile'
    from /usr/lib/ruby/1.9.1/mkmf.rb:543:in `try_var'
    from /usr/lib/ruby/1.9.1/mkmf.rb:791:in `block in have_var'
    from /usr/lib/ruby/1.9.1/mkmf.rb:668:in `block inchecking_for'
    from /usr/lib/ruby/1.9.1/mkmf.rb:274:in `ブロック (2 レベル) で延期'
    from /usr/lib/ruby/1.9.1/mkmf.rb:248:in `open'
    from /usr/lib/ruby/1.9.1/mkmf.rb:274:in `ブロックイン延期'
    from /usr/lib/ruby/1.9.1/mkmf.rb:248:in `open'
    from /usr/lib/ruby/1.9.1/mkmf.rb:270:in `延期'
    from /usr/lib/ruby/1.9.1/mkmf.rb:667:in `checking_for'
    from /usr/lib/ruby/1.9.1/mkmf.rb:790:in `have_var'
    from extconf.rb:16:in `'


Gem ファイルは、検査のために /var/lib/gems/1.9.1/gems/eventmachine-0.12.10 にインストールされたままになります。
結果は /var/lib/gems/1.9.1/gems/eventmachine-0.12.10/ext/gem_make.out に記録されます

以下の追加情報

$ 猫 /etc/issue
Ubuntu 9.10 \n \l
$ dpkg -l | grep ルビー
ii libreadline-ruby1.9.1 1.9.1.243-2 Ruby 1.9.1 の Readline インターフェイス
ii libruby1.9.1 1.9.1.243-2 Ruby 1.9.1 を実行するために必要なライブラリ
ii ruby​​1.9.1 1.9.1.243-2 オブジェクト指向スクリプト lan のインタプリタ
ii ruby​​1.9.1-dev 1.9.1.243-2 拡張モジュールをコンパイルするためのヘッダー ファイル
ii ruby​​gems1.9.1 1.3.5-1ubuntu2 Ruby ライブラリのパッケージ管理フレームワーク
$ ルビー -v
ruby 1.9.1p243 (2009-07-16 リビジョン 24175) [x86_64-linux]
$ 宝石リスト

*** 地元の宝石 ***

ラック (1.1.0)
シナトラ (1.0)
4

1 に答える 1

2

私が持っていた:

ERROR:  Error installing thin:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
checking for rb_trap_immediate in ruby.h,rubysig.h... yes
checking for rb_thread_blocking_region()... no
checking for inotify_init() in sys/inotify.h... yes
checking for writev() in sys/uio.h... yes
checking for rb_thread_check_ints()... no
checking for rb_time_new()... yes
checking for sys/event.h... no
checking for epoll_create() in sys/epoll.h... yes
checking for main() in -lcrypto... no
creating Makefile

make
g++ -I. -I. -I/usr/lib/ruby/1.8/x86_64-linux -I. -DBUILD_FOR_RUBY -DHAVE_RB_TRAP_IMMEDIATE -DHAVE_RBTRAP -DHAVE_INOTIFY_INIT -DHAVE_INOTIFY -DHAVE_WRITEV -DHAVE_WRITEV -DHAVE_RB_TIME_NEW -DOS_UNIX -DHAVE_EPOLL_CREATE -DHAVE_EPOLL -DWITHOUT_SSL -I/include/include    -fPIC -fno-strict-aliasing -g -g -O2  -fPIC    -c emwin.cpp
make: g++: Command not found
make: *** [emwin.o] Error 127

g ++が欠落していると述べたので、次のようにしました:

sudo apt-get install g++

そして実行しました:

sudo gem install thin

そしてそれは働いた

また、このインストールと関係があるかどうかはわかりませんが、64 ビット インストールであるため、場合によっては予防措置として、32 個のライブラリをインストールします。

sudo apt-get install ia32libs

しかし、新しい64ビットサーバーをセットアップするとすぐに、常に32libsをインストールします

于 2010-03-27T06:57:25.717 に答える