quand j'essaye "sudo gem install rubocop", j'obtiens ...
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
J'ai donc essayé un certain nombre de solutions, en particulier celles de /programming/22544754/failed-to-build-gem-native-extension-installing-compass (gemme différente, même erreur)
J'ai essayé de réinstaller RVM avec "rvm uninstall --disable-binary 2.2.0", ce qui a pris du temps mais je ne l'ai pas résolu
ensuite j'ai essayé $ "sudo apt-get install ruby-dev" qui donne
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.
J'ai aussi essayé "gem update --system" auquel j'arrive ...
Latest version currently installed. Aborting.
Toutes les suggestions seront grandement appréciées car je suis un noob total et je suis coincé.
rake
installé?Réponses:
Faites
sudo gem install rake
etsudo gem install rubocop
recommencez et cela devrait fonctionner.Il ne semble pas important que la bonne version de râteau soit installée. Pour moi
rake --version
signalé10.5.0
mais je recevais toujours le même message d'erreur que vous. En regardant le message d'erreur, il est à la rechercherake
à un chemin spécifique, non seulement nulle part sur monPATH
:/usr/bin/ruby2.3: No such file or directory -- /usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake (LoadError)
.which rake
rapports/usr/local/bin/rake
, non/usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake
. Et en fait, comme l'indique le message d'erreur, il n'y a pas de fichier à/usr/share/rubygems-integration/all/gems/rake-10.5.0/bin/rake
. Cela est probablement dû au fait d'rake
avoir étéapt-get install
édité plutôtgem install
qu'éd.sudo gem install rake
crée ce fichier.la source
J'ai pu résoudre ce problème avec
Voir ce commit sur GitHub .
la source
Lorsque j'ai répondu à cette question en 2017, j'étais sceptique quant à la solution de @ SeanHammond, car le rake gem semblait déjà installé. Cela s'est avéré être passé par le paquetage rake de Debian et leur système d'intégration rubygems. L'installation de la gemme de râteau à nouveau, selon M. Hammond, a fonctionné pour moi aujourd'hui, car elle a remplacé la version de Debian, évitant ainsi le bogue sous-jacent. Eh bien, d'abord, il a dit:
Après avoir appliqué un correctif en amont pour le rapport d'erreur, cela disait:
... ce qui m'a conduit à réussir avec:
Cela suffit pour que rubygems trouve le binaire mis à jour:
@ La solution de ShaunJackman a également fonctionné pour moi. C'est peut-être ainsi que Debian devrait le réparer, même si je préfère ne pas laisser de fichiers dans un répertoire sur ma machine que Debian pourrait vouloir changer plus tard.
Une solution de contournement moins pénible se déroulait
rake=/usr/bin/rake
dans l'environnement à partir duquel j'ai installé le joyau que je voulais:... comme indiqué dans mon rapport de bogue Debian . Votre sudo peut avoir besoin de --preserve-env pour passer par ce paramètre.
(Dans une version antérieure de cette réponse, j'ai affirmé que "l'équivalent de la
sudo gem install rainbow
résoudre" mais il s'avère que mon problème n'était pas équivalent. Mon problème n'était pas avec gem, arc-en-ciel et rubocop mais en fait avec gem2.1, mediawiki- passerelle (ou son successeur, mediawiki_api) et unf. La raison pour laquelle l'installation de la dépendance a d'abord fonctionné manuellement pour mon cas était que gem2.1 a un bogue par lequel il préfère installer les versions préliminaires en tant que dépendances. Je soupçonne, à partir du code plutôt que du prose, que le bug est celui-ci, Lorsqu'on lui a demandé d'installer unf lui-même, il choisit à la place, et à juste titre, une version finale, celle qui se trouve utiliser le chemin de code ExtConfBuilder de rubygem plutôt que son chemin RakeBuilder. Cela n'aurait pas aidé l'affiche originale avec son problème d'arc-en-ciel, car ils n'ont pas obtenu de version préliminaire. Désolé pour la longue digression, mais cela aidera peut-être quelqu'un d'autre face à un problème similaire.)la source
rake=rake
travaillé