ruby on rails - instalar - Error de instalación del depurador de Gem
rvm load ruby version (6)
Desafortunadamente ninguna respuesta resolvió este problema. Como fue respondido anteriormente por nickh, "Ruby 2.1.2 no es compatible con el depurador".
Encontré una publicación japonesa que me permitió instalar esta gema, pero no me responsabilizo por ello, ya que no es una publicación oficial. Hazlo bajo tu propio riesgo:
git clone https://github.com/mekishizufu/debugger.git
cd debugger
git checkout ca451a9bdf
gem build debugger.gemspec
gem install debugger-1.6.6.gem
Estoy ejecutando Rails v4.0.2 en Mac OS 10.9.2 y lo tuve todo sin problemas. De repente me aparece un error que dice que faltan gemas cuando intento el rails server
. Ejecuto bundle install y esta es la salida:
Fetching gem metadata from https://rubygems.org/.......
Fetching additional metadata from https://rubygems.org/..
Using rake 10.1.1
Using i18n 0.6.9
Using minitest 4.7.5
Using multi_json 1.9.0
Using atomic 1.1.16
Using thread_safe 0.2.0
Using tzinfo 0.3.39
Using activesupport 4.0.2
Using builder 3.1.4
Using erubis 2.7.0
Using rack 1.5.2
Using rack-test 0.6.2
Using actionpack 4.0.2
Using mime-types 1.25.1
Using polyglot 0.3.4
Using treetop 1.4.15
Using mail 2.5.4
Using actionmailer 4.0.2
Using activemodel 4.0.2
Using activerecord-deprecated_finders 1.0.3
Using arel 4.0.2
Using activerecord 4.0.2
Using encryptor 1.3.0
Using attr_encrypted 1.3.2
Using awesome_print 1.2.0
Using bcrypt 3.1.7
Using bcrypt-ruby 3.1.5
Using net-ssh 2.8.0
Using net-scp 1.1.2
Using tins 1.0.0
Using term-ansicolor 1.3.0
Using sshkit 1.3.0
Using capistrano 3.1.0
Using capistrano-bundler 1.1.2
Using capistrano-rails 1.1.1
Using climate_control 0.0.3
Using cocaine 0.5.3
Using coderay 1.1.0
Using coffee-script-source 1.7.0
Using execjs 2.0.2
Using coffee-script 2.2.0
Using thor 0.18.1
Using railties 4.0.2
Using coffee-rails 4.0.1
Using columnize 0.3.6
Using currencies 0.4.2
Using countries 0.9.3
Using debugger-linecache 1.2.0
Using debugger-ruby_core_source 1.3.2
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users/aaronpardes/.rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb
*** 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
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/aaronpardes/.rvm/rubies/ruby-2.1.2/bin/ruby
/Users/aaronpardes/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1573:in `stat'': No such file or directory @ rb_file_s_stat - ./212/ruby_debug.h (Errno::ENOENT)
from /Users/aaronpardes/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1573:in `block in fu_each_src_dest''
from /Users/aaronpardes/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1587:in `fu_each_src_dest0''
from /Users/aaronpardes/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1571:in `fu_each_src_dest''
from /Users/aaronpardes/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:399:in `cp''
from extconf.rb:83:in `block in <main>''
from extconf.rb:82:in `each''
from extconf.rb:82:in `<main>''
extconf failed, exit code 1
Gem files will remain installed in /Users/aaronpardes/.rvm/gems/ruby-2.1.2@ocx/gems/debugger-1.6.6 for inspection.
Results logged to /Users/aaronpardes/.rvm/gems/ruby-2.1.2@ocx/extensions/x86_64-darwin-13/2.1.0-static/debugger-1.6.6/gem_make.out
An error occurred while installing debugger (1.6.6), and Bundler cannot continue.
Make sure that `gem install debugger -v ''1.6.6''` succeeds before bundling.
Cuando intento ejecutar el gem install debugger -v ''1.6.6''
obtengo el siguiente resultado:
Building native extensions. This could take a while...
ERROR: Error installing debugger:
ERROR: Failed to build gem native extension.
/Users/aaronpardes/.rvm/rubies/ruby-2.1.2/bin/ruby extconf.rb
*** 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
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/aaronpardes/.rvm/rubies/ruby-2.1.2/bin/ruby
/Users/aaronpardes/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1573:in `stat'': No such file or directory @ rb_file_s_stat - ./212/ruby_debug.h (Errno::ENOENT)
from /Users/aaronpardes/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1573:in `block in fu_each_src_dest''
from /Users/aaronpardes/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1587:in `fu_each_src_dest0''
from /Users/aaronpardes/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:1571:in `fu_each_src_dest''
from /Users/aaronpardes/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/fileutils.rb:399:in `cp''
from extconf.rb:83:in `block in <main>''
from extconf.rb:82:in `each''
from extconf.rb:82:in `<main>''
extconf failed, exit code 1
Gem files will remain installed in /Users/aaronpardes/.rvm/gems/ruby-2.1.2@ocx/gems/debugger-1.6.6 for inspection.
Results logged to /Users/aaronpardes/.rvm/gems/ruby-2.1.2@ocx/extensions/x86_64-darwin-13/2.1.0-static/debugger-1.6.6/gem_make.out
Estoy muy confundido de por qué este error surgió de repente. He estado funcionando sin problemas durante semanas. He intentado crear un nuevo gemset con rvm y todavía encuentro el mismo problema. Después de buscar, encontré recomendaciones para actualizar las dependencias primero y luego intentar la bundle install
pero esto no resolvió el problema.
Esta monstruosidad de un comando terminó haciendo el truco para mí:
gem install debugger-ruby_core_source && ARCHFLAGS="-I$(dirname -- "$(gem which debugger/ruby_core_source/ruby-$(ruby -v | awk ''{sub(/p/, "-p", $2); print $2}'')/vm_core.h)") -include vm_core.h" bundle install
Mis disculpas.
Romperlo:
Primero, instale los encabezados de Ruby.
gem install debugger-ruby_core_source
Ahora, si eso tiene éxito, queremos ejecutar
bundle install
pero debe ser capaz de encontrar esos encabezados de Ruby. Al buscar en la salida delgem contents debugger-rebuy_core_source
degem contents debugger-rebuy_core_source
, encontramos que instala un montón de encabezados diferentes para diferentes niveles de parches de Ruby:$ gem contents debugger-ruby_core_source | grep vm_core.h /Users/andrew/.gem/ruby/2.0.0/gems/debugger-ruby_core_source-1.3.2/lib/debugger/ruby_core_source/ruby-1.9.2-p290/vm_core.h /Users/andrew/.gem/ruby/2.0.0/gems/debugger-ruby_core_source-1.3.2/lib/debugger/ruby_core_source/ruby-1.9.2-p318/vm_core.h /Users/andrew/.gem/ruby/2.0.0/gems/debugger-ruby_core_source-1.3.2/lib/debugger/ruby_core_source/ruby-1.9.2-p320/vm_core.h ...
¿Cuál es el nivel de parche actual?
$ ruby -v ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]
Para transformar eso en el formato
ruby-2.0.0-p318
utilizado por la gemadebugger-ruby_core_source
, usamosawk
para imprimir solo el segundo campo de esa cadena de versión, y cambiamos lap
a-p
:$ ruby -v | awk ''{sub(/p/, "-p", $2); print $2}'' 2.0.0-p481
Ahora ejecutamos
bundle install
, conARCHFLAGS
configurado para agregar el directorio que contiene los encabezados ruby a la ruta de búsqueda de archivos de inclusión, y precargarvm_core.h
:gem install debugger-ruby_core_source / && ARCHFLAGS="-I$(dirname -- / "$(gem which debugger/ruby_core_source/ruby-$(ruby -v | awk ''{sub(/p/, "-p", $2); print $2}'')/vm_core.h)") / -include vm_core.h" / bundle install
es decir,
gem install debugger-ruby_core_source / && ARCHFLAGS="-I<path-to-dir_containing_vm_core.h> -include vm_core.h" / bundle install
Para aquellos que están usando gem ''pry-debugger''
simplemente cámbielo a gem ''pry-byebug''
en su Gemfile
.
Ruby 2.1.2 no es compatible con el depurador, desafortunadamente. En su lugar, utilice la gema byebug . Vea esta discusión para más detalles.
Ruby 2.x no es compatible con la gema del depurador y deberías usar byebug en byebug lugar. Una vez que se lance Rails 4.2.0 (o si usa las versiones de Rails 4.2.0rc), byebug será el depurador predeterminado incluido en su Gemfile, pero si está en una versión anterior de Rails, deberá hacer el cambio. manualmente en tu Gemfile.
Sólo reemplazar
gem "debugger"
con
gem "byebug"
en su Gemfile y ejecute un bundle install
.
Un poco más de fondo
Incluso el mantenedor de la gema depuradora hace esta recomendación. El archivo README de la gema del depurador en GitHub tiene la siguiente note :
- Sólo 1.9.2 y 1.9.3 son compatibles. Para rubíes 2.X, considera usar byebug .
El mantenedor no tiene intención de arreglar esto; cerró el problema. El issue arreglar, lo que explica que el depurador nunca admitió correctamente a Ruby 2.X y que ahora recomienda byebug .
Además, el mantenedor del depurador no ha enviado un compromiso ni ha respondido a una solicitud de extracción desde junio de 2014. La gema parece ser un software de abandono en este momento.
Rails ha adoptado byebug como el depurador oficial para Ruby 2.X a partir de esta solicitud de extracción en abril , y desde Rails 4.2.0 en adelante, el Gemfile creado cuando ejecutas rails new my_new_app_name
hará referencia a byebug
lugar de debugger
para los usuarios de Ruby 2.X .
tl; dr
El depurador está muerto. Utilice byebug .
**Step 1** gilchristiano@rails-intro:~/workspace (master) $ rails --version Could not find debugger-1.6.6 in any of the sources Run `bundle install` to install missing gems. **Step 2** gilchristiano@rails-intro:~/workspace (master) $ debugger-1.6.6 bash: debugger-1.6.6: command not found **Step 3** gilchristiano@rails-intro:~/workspace (master) $ gem install debugger -v ''1.6.6'' Building native extensions. This could take a while... Successfully installed debugger-1.6.6 1 gem installed **Step 4** gilchristiano@rails-intro:~/workspace (master) $ bundle install