Wenn ich "sudo gem install rubocop" versuche, bekomme ich ...
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
Daher habe ich eine Reihe von Lösungen ausprobiert, insbesondere die von /programming/22544754/failed-to-build-gem-native-extension-installing-compass (anderes Juwel, gleicher Fehler).
Ich habe versucht, RVM mit "rvm restart --disable-binary 2.2.0" neu zu installieren, was eine Weile gedauert hat, es aber nicht behoben hat
Als nächstes habe ich $ "sudo apt-get install ruby-dev" ausprobiert
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.
Ich habe auch "gem update --system" ausprobiert, auf das ich ...
Latest version currently installed. Aborting.
Irgendwelche Vorschläge werden sehr geschätzt, da ich ein totaler Neuling bin und feststecke.
rake
installiert?Antworten:
Tun
sudo gem install rake
und dannsudo gem install rubocop
wieder tun und es sollte funktionieren.Es scheint nicht wichtig zu sein, dass Sie die richtige Version von Rake installiert haben. Bei mir
rake --version
hat sich10.5.0
aber gemeldet , dass ich immer noch die selbe Fehlermeldung wie du bekomme. Mit Blick auf die Fehlermeldung, wird er suchtrake
auf einem bestimmten Pfad, nicht irgendwo auf meinePATH
:/usr/bin/ruby2.3: No such file or directory -- /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake (LoadError)
.which rake
Berichte/usr/local/bin/rake
, nicht/usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake
. Und in der Tat, wie die Fehlermeldung besagt, gibt es keine Datei an/usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake
. Dies hat wahrscheinlich damit zu tun,rake
dass man nichtapt-get install
redigiert, sonderngem install
redigiert wurde.sudo gem install rake
erstellt diese Datei.quelle
Ich konnte dieses Problem mit lösen
Siehe dieses Commit auf GitHub .
quelle
Als ich dies 2017 beantwortete, war ich skeptisch gegenüber der Lösung von @ SeanHammond, da der Rake-Edelstein bereits installiert zu sein schien. Es stellte sich heraus, dass dies durch das Rake-Paket von Debian und dessen Rubygems-Integrationssystem geschehen ist. Das erneute Installieren des Rake-Gems, laut Mr. Hammond, funktionierte heute für mich, da es Debians Version überschritt und somit den zugrundeliegenden Fehler verhinderte. Nun, zuerst hieß es:
Nachdem ich einen Upstream-Fix für die Fehlerberichterstattung angewendet hatte, lautete dieser:
... was mich zum Erfolg geführt hat:
Damit können Rubygems die aktualisierte Binärdatei finden:
@ ShaunJackmans Lösung hat auch bei mir funktioniert. Auf diese Weise sollte Debian das Problem möglicherweise beheben, obwohl ich lieber keine Dateien in einem Verzeichnis auf meinem Computer belassen möchte, das Debian später möglicherweise ändern möchte.
In
rake=/usr/bin/rake
der Umgebung, in der ich den gewünschten Edelstein installiert habe, war die Problemumgehung weniger schmerzhaft :... wie jetzt in meinem Debian-Fehlerbericht vermerkt . Ihr Sudo benötigt möglicherweise --preserve-env, um diese Einstellung zu durchlaufen.
(In einer früheren Version dieser Antwort habe ich behauptet, "das Äquivalent von
sudo gem install rainbow
gelöst", aber es stellte sich heraus, dass mein Problem nicht äquivalent war. Mein Problem war nicht mit gem, rainbow und rubocop, sondern tatsächlich mit gem2.1, mediawiki gateway (oder dessen Nachfolger, mediawiki_api) und unf. Der Grund, warum die manuelle Installation der Abhängigkeit in meinem Fall zuerst funktionierte, war, dass gem2.1 einen Fehler aufweist, bei dem es bevorzugt, Vorabversionen als Abhängigkeiten zu installieren Prosa, dass der Fehler dieser istWenn Sie aufgefordert werden, unf selbst zu installieren, wird stattdessen zu Recht eine Release-Version ausgewählt, die nur den ExtConfBuilder-Codepfad von rubygem und nicht den RakeBuilder-Codepfad verwendet. Das hätte dem Original-Poster bei ihrem Regenbogenproblem nicht geholfen, da sie keine Vorabversion bekamen. Entschuldigen Sie den langen Exkurs, aber vielleicht hilft er jemandem, der sich einem ähnlichen Problem gegenübersieht.)quelle
rake=rake
gearbeitet