`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

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í.


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

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

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 ...


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

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




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)


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.