`require ': no ​​se carga ese archivo - mkmf (LoadError)

563

Intenté instalar rieles en Ubuntu Natty Narwhal 11.04, usando ruby1.9.1.

Instalé ruby ​​usando el apt-get install ruby1.9.1-fullque contiene el paquete dev. Busqué en Google el error y todos me han sugerido que instale el 1.9.1-dev que ya tengo.

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
Omar S.
fuente
1
Tuve un error paralelo al intentar instalar watir-webdriver. También se corrigió instalando ruby1.0.1-dev
kaleidic
posible duplicado de la instalación
David LeBauer

Respuestas:

979

Después de alguna búsqueda de una solución, resulta que el -devpaquete es necesario, no solo ruby1.8. Así que si han ruby1.9.1de hacer

sudo apt-get install ruby1.9.1-dev

o para instalar la versión genérica de ruby, use (según el comentario de @lamplightdev):

sudo apt-get install ruby-dev

Debería arreglarlo.

Intenta locate mkmfver si el archivo está realmente allí.

Emil Ivanov
fuente
220
lo siguiente instalará el paquete de desarrollo que coincida con su versión de ruby ​​instalada actualmente: sudo apt-get install ruby-dev
lamplightdev
Sí, funcionó para mí. ejecute ruby ​​-v para encontrar la versión si solo desea instalar la versión actual de ruby.
Dan Bradbury
3
@lamplightdev No funcionó para mí, la versión ruby ​​era 1.9.3 y se estaba instalando 1.8 Si intenté instalar ruby-dev
Karthik T
1
He instalado ruby-all-dev, probablemente funcionará para todas las versiones.
jcubic
Esto también es necesario para aws-sdk ahora que SOAP está en desuso para AWS. Una preocupación si las partes interesadas se oponen a cualquier cosa: dispositivo en una compilación de producción. (Los SDK tampoco los emocionan).
mckenzm
185

Esta es la respuesta que me funcionó. Estaba en los comentarios anteriores, pero merece su lugar legítimo como respuesta para 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
jmontross
fuente
También vale la pena señalar que si desea utilizar el centro de software ubuntu hay un complemento para ruby-dev que puede seleccionar para 'Archivos de encabezado para compilar módulos de extensión'.
RightHandedMonkey
Utilicé sudo apt-get install ruby1.9.1-devcon ruby ​​1.9.3 antes de ver el comentario o esta respuesta, y eso me permitió construir la extensión de rieles. No estoy seguro de si las versiones no coincidentes como esa me causarán algún dolor de cabeza más adelante, pero debe tenerse en cuenta que los rieles se instalaron correctamente usando una ligera alteración de la respuesta oficialmente aceptada.
DWils
¿Qué pasa si tienes RVM? Entonces, ¿ya no tienes la versión rubí que necesitas?
thesecretmaster
37

También necesitaba instalar build-essential:

sudo apt-get install build-essential
James Dunmore
fuente
Este fue el boleto aquí mismo. Me imagino que también tuve que instalar ruby-dev pero no funcionó hasta que instalé build-essential también. un millón de gracias
conectado
30

El problema aún es recursivo en Ubuntu 13/04 / 13.10 / 14.04

y

sudo apt-get install ruby1.9.1-dev

me funcionó bien. Entonces, si está usando Ubuntu 13.04 / 13.10 / 14.04, usar esto realmente será útil.

Esto funciona incluso si la versión ruby ​​es 1.9.3. Esto se debe a que no hay ruby1.9.3-dev disponible en el Repositorio ...

kenju254
fuente
1
Sí, este también funcionó para mí en ruby1.9.3. No había un paquete en el repositorio de ubuntu para ruby1.9.3-dev.
DWils
no más ... funcionó después de instalar rvm desde rvm.io con --ruby - y probablemente sea mejor eliminar apt-ruby antes
dagelf
18

Has probado:

sudo apt-get install ruby1.8-dev
Matteo Alessani
fuente
3
Estoy usando 1.9.1, ¿por qué debo instalar ruby1.8-dev?
Omar S.
Esto es tan extraño que instalé 1.9.1 pero dice 1.8, cuando ejecuto ruby ​​-v obtengo: ruby ​​1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
Omar S.
2
tienes ruby ​​1.8 configurado como ruby ​​predeterminado en tu sistema
Matteo Alessani
10

Recibí un error similar al instalar el paquete

sudo apt-get install ruby-dev

Funciona muy bien para mí y resuelve el problema Mint 16 ruby1.9.3

Sergey Nikolaev
fuente
0

Puede usar RVM (administrador de versiones de Ruby) que ayuda a administrar todas las versiones de ruby ​​en su máquina, lo cual es muy útil para su desarrollo (cuando migra a una versión inestable a una versión estable)

o para Linux (ubuntu) ve por sudo apt-get install ruby1.8-dev

luego, sudo gem install railspara verificarlo rails -v, mostrará la versión en rieles

después de eso puedes instalar paquetes (gemas necesarias para el desarrollo)

Mohit Verma
fuente
Todavía puede usar RVM en Linux. Estoy haciendo eso (pero todavía tengo el problema de este error de mkmf al instalar rieles)
thesecretmaster