568 votes

`require' : no such file to load -- mkmf (LoadError)

J'ai essayé d'installer rails sur Ubuntu Natty Narwhal 11.04, en utilisant ruby1.9.1.

J'ai installé ruby en utilisant apt-get install ruby1.9.1-full qui contient le paquet dev. J'ai cherché l'erreur sur Google et tous m'ont suggéré d'installer la version 1.9.1-dev que j'ai déjà.

Building native extensions.  This could take a while...
ERROR:  Error installing rails:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.8 extconf.rb
extconf.rb:36:in `require': no such file to load -- mkmf (LoadError)
    from extconf.rb:36

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out

1 votes

J'ai eu une erreur parallèle en essayant d'installer watir-webdriver. Elle a également été corrigée en installant ruby1.0.1-dev

980voto

Emil Ivanov Points 18594

Après avoir cherché une solution, il s'avère que la -dev est nécessaire, et pas seulement ruby1.8 . Donc si vous avez ruby1.9.1 en faisant

sudo apt-get install ruby1.9.1-dev

ou pour installer une version générique de ruby, utilisez (selon le commentaire de @lamplightdev) :

sudo apt-get install ruby-dev

devrait le réparer.

Essayez locate mkmf pour voir si le fichier est bien là.

220 votes

Ce qui suit installera le paquet dev correspondant à votre version de ruby actuellement installée : sudo apt-get install ruby-dev

0 votes

Oui, ça a marché pour moi. Exécutez ruby -v pour trouver la version si vous voulez seulement installer la version actuelle de ruby.

3 votes

@lamplightdev Cela n'a pas marché pour moi, la version de ruby était 1.9.3 et il installait la 1.8 si j'essayais d'installer ruby-dev.

186voto

jmontross Points 1882

C'est la réponse qui a fonctionné pour moi. Était dans les commentaires ci-dessus, mais mérite sa place légitime comme réponse pour ubuntu 12.04 ruby 1.8.7

sudo apt-get install ruby-dev
# if above doesnt work make sure you have build essential
sudo apt-get install build-essential

0 votes

Il est également intéressant de noter que si vous souhaitez utiliser le centre logiciel Ubuntu, il existe un module complémentaire pour ruby-dev que vous pouvez sélectionner pour les "fichiers d'en-tête pour la compilation des modules d'extension".

0 votes

Utilicé sudo apt-get install ruby1.9.1-dev avec ruby 1.9.3 avant de voir le commentaire ou cette réponse, et cela m'a permis de construire l'extension rails. Je ne suis pas sûr que le fait de faire correspondre des versions comme celle-là va me causer des maux de tête plus tard, mais il faut noter que rails s'est installé correctement en utilisant une légère modification de la réponse officiellement acceptée.

0 votes

Que faire si vous avez un RVM ? Alors n'avez-vous pas déjà la version de ruby dont vous avez besoin ?

37voto

James Dunmore Points 401

J'avais aussi besoin d'installer build-essential :

sudo apt-get install build-essential

0 votes

C'était le ticket juste ici J'imagine que je devais également installer ruby-dev mais cela n'a pas fonctionné jusqu'à ce que j'installe build-essential également. un million de merci

30voto

kenju254 Points 161

Le problème est toujours récursif sur Ubuntu 13/04/13.10/14.04

y

sudo apt-get install ruby1.9.1-dev

ça a bien marché pour moi. Donc, si vous utilisez Ubuntu 13.04/13.10/14.04, l'utilisation de ce logiciel vous sera vraiment utile.

Cela fonctionne même si la version de ruby est 1.9.3. C'est parce qu'il n'y a pas de ruby1.9.3-dev disponible dans le Dépôt...

1 votes

Yep, celui-ci a fonctionné pour moi aussi sur ruby1.9.3. Il n'y avait pas de paquet dans le dépôt ubuntu pour ruby1.9.3-dev.

1 votes

Plus maintenant... cela a fonctionné après avoir installé rvm à partir de rvm.io avec --ruby - et il est probablement préférable de supprimer ruby avant d'installer apt-get.

18voto

Matteo Alessani Points 6368

Avez-vous essayé :

sudo apt-get install ruby1.8-dev

3 votes

J'utilise la version 1.9.1, pourquoi devrais-je installer ruby1.8-dev ?

0 votes

C'est vraiment bizarre, en effet, j'ai installé la 1.9.1 mais je lis 1.8, quand je lance ruby -v j'obtiens : ruby 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux].

2 votes

Ruby 1.8 est la version par défaut de ruby sur votre système.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X