`request ': nessun file da caricare - mkmf (LoadError)


563

Stavo cercando di installare i binari su Ubuntu Natty Narwhal 11.04, usando ruby1.9.1.

Ho installato ruby ​​usando apt-get install ruby1.9.1-fullquale contiene il pacchetto dev. Ho cercato su Google l'errore e tutti hanno suggerito di installare 1.9.1-dev che ho già.

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
Ho avuto un errore parallelo nel tentativo di installare watir-webdriver. Inoltre è stato corretto installando ruby1.0.1-dev
kaleidic

possibile duplicato dell'installazione
David LeBauer,

Risposte:


979

Dopo qualche ricerca di una soluzione risulta che il -devpacchetto è necessario, non solo ruby1.8. Quindi se lo stai ruby1.9.1facendo

sudo apt-get install ruby1.9.1-dev

o per installare la versione ruby ​​generica, usare (come da commento @lamplightdev):

sudo apt-get install ruby-dev

dovrebbe risolverlo.

Prova locate mkmfa vedere se il file è effettivamente lì.


220
il seguente installerà il pacchetto dev abbinato alla tua versione ruby ​​attualmente installata: sudo apt-get install ruby-dev
lamplightdev

sì ha funzionato per me. eseguire ruby ​​-v per trovare la versione se si desidera installare solo la versione corrente di ruby.
Dan Bradbury,

3
@lamplightdev Non ha funzionato per me, la versione ruby ​​era 1.9.3 e stava installando 1.8 Se avessi provato a installare ruby-dev
Karthik T

1
Ho installato ruby-all-dev, probabilmente funzionerà per tutte le versioni.
jcubic,

Ciò è necessario anche per aws-sdk ora che SOAP è obsoleto per AWS. Una preoccupazione se gli stakeholder si oppongono a qualsiasi cosa -dev in una build di produzione. (Gli SDK non li entusiasmano neanche).
mckenzm,

185

Questa è la risposta che ha funzionato per me. È stato nei commenti sopra, ma merita il suo giusto posto come risposta per 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

Vale anche la pena notare che se si desidera utilizzare il centro software Ubuntu è disponibile un componente aggiuntivo per ruby-dev che è possibile selezionare per "File di intestazione per la compilazione dei moduli di estensione".
RightHandedMonkey

Ho usato sudo apt-get install ruby1.9.1-devcon ruby ​​1.9.3 prima di vedere il commento o questa risposta, e questo mi ha permesso di costruire l'estensione delle rotaie. Non sono sicuro se le versioni non corrispondenti di questo tipo mi causeranno mal di testa in seguito, ma va notato che le guide sono installate correttamente usando una leggera alterazione della risposta ufficialmente accettata.
DWils,

Cosa succede se si dispone di RVM? Allora non hai già la versione ruby ​​di cui hai bisogno?
segretario

37

Avevo anche bisogno di installare build-essential:

sudo apt-get install build-essential

Questo era il biglietto qui .. Immagino che dovessi installare anche ruby-dev ma non ha funzionato fino a quando non ho installato anche build-essential. un milione di grazie
uncnnnected il

30

Il problema è ancora ricorsivo su Ubuntu 13/04 / 13.10 / 14.04

e

sudo apt-get install ruby1.9.1-dev

ha funzionato per me va bene. Quindi, se si utilizza Ubuntu 13.04 / 13.10 / 14.04, l'utilizzo di questo sarà davvero utile.

Funziona anche se la versione ruby ​​è 1.9.3. Questo perché non esiste ruby1.9.3-dev disponibile nel repository ...


1
Sì, questo ha funzionato anche per me su ruby1.9.3. Non c'era un pacchetto nel repository ubuntu per ruby1.9.3-dev.
DWils,

non più ... ha funzionato dopo aver installato rvm da rvm.io con --ruby - e probabilmente è meglio apt-get rimuovere ruby ​​prima
dagelf

18

Hai provato:

sudo apt-get install ruby1.8-dev

3
Sto usando 1.9.1, perché dovrei installare ruby1.8-dev?
Omar S.

Questo è così strano che ho installato 1.9.1 ma legge 1.8, quando eseguo ruby ​​-v ottengo: ruby ​​1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux]
Omar S.

2
hai ruby ​​1.8 impostato come ruby ​​predefinito sul tuo sistema
Matteo Alessani,

10

Ho riscontrato l'errore simile durante l'installazione del bundle

sudo apt-get install ruby-dev

Funziona benissimo per me e risolve il problema Mint 16 ruby1.9.3




0

Puoi usare RVM (Ruby version manager) che aiuta a gestire tutte le versioni di ruby ​​sul tuo computer, il che è molto utile per lo sviluppo (durante la migrazione da una versione instabile a una versione stabile)

o per Linux (Ubuntu) andare per sudo apt-get install ruby1.8-dev

quindi sudo gem install railsper verificarlo, rails -vmostrerà la versione su binari

successivamente è possibile installare bundle (gemme necessarie per lo sviluppo)


Puoi ancora usare RVM su Linux. Lo sto facendo (ma ho ancora il problema di questo errore mkmf durante l'installazione dei binari)
segretario
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.