cuando intento "sudo gem install rubocop", me sale ...
Building native extensions. This could take a while...
ERROR: Error installing rubocop:
ERROR: Failed to build gem native extension.
current directory: /var/lib/gems/2.3.0/gems/rainbow-2.2.1/ext
/usr/bin/ruby2.3 mkrf_conf.rb
current directory: /var/lib/gems/2.3.0/gems/rainbow-2.2.1/ext
/usr/bin/ruby2.3 -rubygems /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake RUBYARCHDIR=/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.1 RUBYLIBDIR=/var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.1
/usr/bin/ruby2.3: No such file or directory -- /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake (LoadError)
rake failed, exit code 1
Gem files will remain installed in /var/lib/gems/2.3.0/gems/rainbow-2.2.1 for inspection.
Results logged to /var/lib/gems/2.3.0/extensions/x86_64-linux/2.3.0/rainbow-2.2.1/gem_make.out
Así que probé una serie de soluciones, específicamente aquellas de /programming/22544754/failed-to-build-gem-native-extension-installing-compass (gema diferente, mismo error)
Intenté reinstalar RVM con "rvm reinstall --disable-binary 2.2.0" que tardó un tiempo pero no lo solucionó
luego probé $ "sudo apt-get install ruby-dev" que produce
Reading package lists... Done
Building dependency tree
Reading state information... Done
ruby-dev is already the newest version (1:2.3.0+1).
The following packages were automatically installed and are no longer required:
dkms linux-headers-4.4.0-53 linux-headers-4.4.0-53-generic
linux-image-4.4.0-53-generic linux-image-extra-4.4.0-53-generic
python-appindicator python-gconf python-gi python-glade2
python-gobject python-pexpect python-ptyprocess python-xdg
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 40 not upgraded.
También probé "gem update --system" al que llegué ...
Latest version currently installed. Aborting.
Cualquier sugerencia será muy apreciada ya que soy un novato total y estoy atascado.
rake
instalado?Respuestas:
Hazlo
sudo gem install rake
y luego hazlo desudo gem install rubocop
nuevo y debería funcionar.No parece importar que tenga instalada la versión correcta de rake. Para mí
rake --version
informó10.5.0
pero todavía recibía el mismo mensaje de error que usted. Mirando el mensaje de error, que está buscandorake
a una ruta específica, no sólo en cualquier parte de miPATH
:/usr/bin/ruby2.3: No such file or directory -- /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake (LoadError)
.which rake
informes/usr/local/bin/rake
, no/usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake
. Y, de hecho, como dice el mensaje de error, no hay ningún archivo en/usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake
. Esto probablemente tenga que ver conrake
haber sidoapt-get install
editado en lugar degem install
ed.sudo gem install rake
crea ese archivo.fuente
Pude resolver este problema con
Ver este commit en GitHub .
fuente
Cuando respondí esto en 2017, era escéptico sobre la solución de @ SeanHammond, porque la gema de rastrillo ya parecía estar instalada. Resultó haber sido a través del paquete de rastrillos de Debian y su sistema de integración rubygems. Instalar la gema de rastrillo nuevamente, según el Sr. Hammond, funcionó para mí hoy, ya que anuló la versión de Debian, por lo tanto, evitó el error subyacente. Bueno, primero dijo:
Después de aplicar una solución aguas arriba para el informe de errores, eso decía:
... lo que me llevó a tener éxito con:
Eso es suficiente para que rubygems encuentre el binario actualizado:
La solución de @ ShaunJackman también funcionó para mí. Esa podría ser la forma en que Debian debería solucionarlo, aunque preferiría no dejar archivos en un directorio en mi máquina que Debian podría querer cambiar más tarde.
Una solución menos dolorosa fue establecer
rake=/usr/bin/rake
el entorno desde el que instalé la gema que quería:... como ahora se señala en mi informe de fallos de Debian . Sudo podría necesitar --preserve-env para pasar por esa configuración.
(En una versión anterior de esta respuesta, afirmé que "el equivalente de lo
sudo gem install rainbow
resolvió", pero resulta que mi problema no era equivalente. Mi problema no era con gema, arco iris y rubocop, sino con gem2.1, mediawiki- gateway (o su sucesor, mediawiki_api) y no. La razón por la cual la instalación manual de la dependencia funcionó por primera vez para mi caso fue que gem2.1 tiene un error por el cual prefiere instalar versiones preliminares como dependencias. Sospecho, por el código en lugar del prosa, que el error es este, Cuando se le pide que instale unf, en su lugar, y con razón, elige una versión de lanzamiento, una que simplemente utiliza la ruta de código ExtConfBuilder de rubygem en lugar de su RakeBuilder. Eso no habría ayudado al póster original con su problema del arco iris, ya que no obtuvieron una versión preliminar. Perdón por la larga digresión, pero tal vez ayude a alguien más a enfrentar un problema similar).fuente
rake=rake
trabajado