Как установить средства разработки при компиляции Ruby из исходного кода
У меня Windows 8, и мне нужно установить Ruby 2.1.2 для проекта. Я следовал этим инструкциям . Я разархивировал исходный файл в C:Ruby2.1.2src
, запустил nmake
в C:Ruby2.1.2build
и запустил nmake install
с папкой назначения C:Ruby2.1.2bin
. Когда я установил Ruby 2.1.2, я получил ряд ошибок, подобных этой:
configuring zlib
Failed to configure zlib. It will not be installed.
Это произошло для dbm, fiddle, gdbm, openssl, pty, readline, системного журнала, tk, tk/tkutil и zlib. Тем не менее, тесты в nmake test
все проходят.
У меня уже есть Рубин 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.2srcruby-2.1.2extzlib и запустив 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, в котором еще нет Ruby 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"
, но это снова дало мне первую ошибку.
Как мне установить средства разработки, чтобы я мог заставить rubygems работать?