
私はWindows 8を使っていて、プロジェクトのためにRuby 2.1.2をインストールする必要があります。これらの指示。ソースを に解凍しC:\Ruby2.1.2\src\
、nmake
で を実行しC:\Ruby2.1.2\build\
、nmake install
宛先フォルダ で を実行しましたC:\Ruby2.1.2\bin\
。Ruby 2.1.2 をインストールしたときに、次のようなエラーがいくつか発生しました。
configuring zlib
Failed to configure zlib. It will not be installed.
これは、dbm、fiddle、gdbm、openssl、pty、readline、syslog、tk、tk/tkutil、zlib で発生しました。ただし、すべてのテストはnmake test
合格しました。
私はすでにRuby 2.0.0と1.9.3を持っていますが、他のプロジェクトでは2.0.0が必要です。ピク 0.3.0.pre依存関係を管理するために、2.0.0 および 1.9.3 で動作しているようです。
しかし、Ruby 2.1.2 に切り替えると、gem install
次のようになります。
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
少し調べた後、C:\Ruby2.1.2\src\ruby-2.1.2\ext\zlib に移動して実行してみましたが、ruby extconf.rb
次のようなエラーが発生しました:
checking for deflateReset() in z.lib... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby2.1.2/bin/usr/bin/ruby
--with-zlib-dir
--with-zlib-include
--without-zlib-include=${zlib-dir}/include
--with-zlib-lib
--without-zlib-lib=${zlib-dir}/lib
--with-zlib
--without-zlib
C:/Ruby2.1.2/bin/usr/lib/ruby/2.1.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from C:/Ruby2.1.2/bin/usr/lib/ruby/2.1.0/mkmf.rb:541:in `try_link0'
from C:/Ruby2.1.2/bin/usr/lib/ruby/2.1.0/mkmf.rb:556:in `try_link'
from C:/Ruby2.1.2/bin/usr/lib/ruby/2.1.0/mkmf.rb:742:in `try_func'
from C:/Ruby2.1.2/bin/usr/lib/ruby/2.1.0/mkmf.rb:973:in `block in have_library'
from C:/Ruby2.1.2/bin/usr/lib/ruby/2.1.0/mkmf.rb:918:in `block in checking_for'
from C:/Ruby2.1.2/bin/usr/lib/ruby/2.1.0/mkmf.rb:351:in `block (2 levels) in postpone'
from C:/Ruby2.1.2/bin/usr/lib/ruby/2.1.0/mkmf.rb:321:in `open'
from C:/Ruby2.1.2/bin/usr/lib/ruby/2.1.0/mkmf.rb:351:in `block in postpone'
from C:/Ruby2.1.2/bin/usr/lib/ruby/2.1.0/mkmf.rb:321:in `open'
from C:/Ruby2.1.2/bin/usr/lib/ruby/2.1.0/mkmf.rb:347:in `postpone'
from C:/Ruby2.1.2/bin/usr/lib/ruby/2.1.0/mkmf.rb:917:in `checking_for'
from C:/Ruby2.1.2/bin/usr/lib/ruby/2.1.0/mkmf.rb:968:in `have_library'
from extconf.rb:13:in `block in <main>'
from extconf.rb:13:in `each'
from extconf.rb:13:in `find'
from extconf.rb:13:in `<main>'
開発ツールをインストールする必要があるようです。しかしの のみ ソース 私は見つけた開発ツールのインストールについては、まだ Ruby 2.1.2 がインストールされていない RubyInstaller に誘導されました。
また、zlib を別途インストールして実行してみましたruby extconf.rb --with-zlib-dir="C:\Program Files (x86)\GnuWin32"
が、やはり 2 番目のエラーが発生しました。
他に試したことは を実行することでしたgem install zlib -- --with-zlib-dir="C:\Program Files (x86)\GnuWin32"
が、最初のエラーが再度発生しました。
rubygems を動作させるために開発ツールをインストールするにはどうすればよいですか?
答え1
エヴァさん、問題は解決できましたか?
私もあなたとまったく同じことをやっています (Windows 8.1 を使用)。そしてついに zlib をインストールできました。
1) zlib128-dll.zipを以下からダウンロードしました。http://www.zlib.net/内容をディレクトリ(例:c:\zlib)に解凍します。
2) 次に、この投稿からのヒントに従ってください(https://www.ruby-forum.com/topic/4421852)、 c:\ruby-build\usr ディレクトリから次のディレクトリを作成しました:
zlib
zlib\include
zlib\lib
3) 次に、C:\zlib ディレクトリから c:\ruby-build\usr ディレクトリにいくつかのファイルをコピーしました。
*.h files (both) from C:\zlib\include to c:\ruby-build\usr\zlib\include
zdll.lib from C:\zlib\lib to c:\ruby-build\usr\zlib\lib.
zlib1.dll *AS* zlib.dll from C:\zlib to both c:\ruby-build\usr\zlib\lib and c:\ruby-build\usr\bin
(not sure which one or both are necessary).
4) 次に、VS 2012 ネイティブ ツール コマンド ウィンドウから、C:\ruby-2.1.2\ext\zlib に移動して、次を実行しました。
\ruby-build\usr\bin\ruby extconf.rb --with-zlib-dir=c:/ruby-build/usr/zlib
5) 次に nmake を実行し、続いて nmake install を実行すると、zlib が最終的にインストールされました。
私の手順についてご質問があればお知らせください。
答え2
Rubyにはいくつかのライブラリが含まれており、標準ライブラリ(stdlib) は、Zlib、OpenSSL、FFI などの外部ライブラリに依存します。
Ruby をビルドするには、それらのライブラリを Ruby で利用できるようにして、それらのライブラリに対してコンパイルできるようにする必要があります。
RubyInstaller では、依存関係をパッケージとして構築し、Ruby のコンパイル時に使用することでこの問題を解決しました。
あなたの場合、Visual Studio を使用しているようです。つまり、実行時の依存関係が異なるため、RubyInstaller によって提供されるバイナリ パッケージは使用できません。
Visual Studio の使用が本当に必須ではない場合は、RubyInstaller レシピを使用して Ruby 2.1.x のローカル パッケージを生成することもできます。
cd rubyinstaller
rake ruby21 DKVER=mingw64-32-4.7.2 LOCAL=C:\path\to\ruby\source
これは、RubyInstallerレシピにmingw64
コンパイラ(GCC)32ビットバージョン4.7.2を使用し、指定されたローカルソースチェックアウトを使用するように指示します。LOCAL
これらはすべてRubyInstallerのREADME
さらにサポートが必要な場合は、RubyInstallerのGoogle グループ