Comment installer des outils de développement lorsque Ruby est compilé à partir de la source
J'ai Windows 8, et je dois installer Ruby 2.1.2 pour un projet. J'ai suivi ces instructions . J'ai décompressé la source dans C:Ruby2.1.2src
, couru nmake
dans C:Ruby2.1.2build
et couru nmake install
avec le dossier de destination C:Ruby2.1.2bin
. Lorsque j'ai installé Ruby 2.1.2, j'ai eu un certain nombre d'erreurs comme celle-ci:
configuring zlib
Failed to configure zlib. It will not be installed.
Cela s'est produit pour dbm, fiddle, gdbm, openssl, pty, readline, syslog, tk, tk/tkutil et zlib. Cependant, les tests de nmake test
passent tous.
J'ai déjà Ruby 2.0.0 et 1.9.3, mais j'ai besoin de 2.0.0 pour d'autres projets. J'utilise pik 0.3.0.pre pour gérer les dépendances, et cela semble fonctionner pour 2.0.0 et 1.9.3.
Cependant, si je passe à Ruby 2.1.2 run gem install
pour quoi que ce soit, j'obtiens:
ERROR: Loading command: install (LoadError)
cannot load such file -- zlib
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
Après quelques recherches, j'ai essayé de naviguer vers C:Ruby2.1.2srcruby-2.1.2extzlib et en exécutant ruby extconf.rb
L'erreur que j'ai eue pour cela était:
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>'
Il semble que j'ai besoin d'installer des outils de développement. Mais le seulement sources J'ai trouvé à propos de l'installation d'outils de développement m'a dirigé vers RubyInstaller qui n'a pas encore Ruby 2.1.2.
J'ai également essayé d'installer zlib séparément et d'exécuter ruby extconf.rb --with-zlib-dir="C:Program Files (x86)GnuWin32"
, mais cela m'a encore donné la deuxième erreur.
Une autre chose que j'ai essayée était d'exécuter gem install zlib -- --with-zlib-dir="C:Program Files (x86)GnuWin32"
, mais cela m'a encore donné la première erreur.
Comment installer des outils de développement pour faire fonctionner rubygems ?