У меня 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 для других проектов. Я использую pik 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>'
Похоже, мне нужно установить средства разработки. Но эти единственные источники , которые я нашел об установке средств разработки направил меня к RubyInstaller , который не имеет рубин 2.1.2 еще.
Я также попытался установить zlib отдельно и запустить ruby extconf.rb --with-zlib-dir="C:\Program Files (x86)\GnuWin32"
, но это снова дало мне вторую ошибку.
Еще я попробовал запустить gem install zlib -- --with-zlib-dir="C:\Program Files (x86)\GnuWin32"
, но это снова дало мне первую ошибку.
Как мне установить средства разработки, чтобы я мог заставить работать рубины?