2015-03-28 20 views
58

Il messaggio di errore:Come utilizzare gemma installare Rails su Ubuntu

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

    /usr/bin/ruby2.1 -r ./siteconf20150328-1540-hff2f0.rb extconf.rb 
checking if the C compiler accepts ... *** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of necessary 
libraries and/or headers. Check the mkmf.log file for more details. You may 
need configuration options. 

Provided configuration options: 
    --with-opt-dir 
    --without-opt-dir 
    --with-opt-include 
    --without-opt-include=${opt-dir}/include 
    --with-opt-lib 
    --without-opt-lib=${opt-dir}/lib 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=/usr/bin/ruby2.1 
    --help 
    --clean 
/usr/lib/ruby/2.1.0/mkmf.rb:456:in `try_do': The compiler failed to generate an executable file. (RuntimeError) 
You have to install development tools first. 
    from /usr/lib/ruby/2.1.0/mkmf.rb:571:in `block in try_compile' 
    from /usr/lib/ruby/2.1.0/mkmf.rb:522:in `with_werror' 
    from /usr/lib/ruby/2.1.0/mkmf.rb:571:in `try_compile' 
    from extconf.rb:80:in `nokogiri_try_compile' 
    from extconf.rb:87:in `block in add_cflags' 
    from /usr/lib/ruby/2.1.0/mkmf.rb:621:in `with_cflags' 
    from extconf.rb:86:in `add_cflags' 
    from extconf.rb:337:in `<main>' 

extconf failed, exit code 1 

Gem files will remain installed in /var/lib/gems/2.1.0/gems/nokogiri-1.6.6.2 for inspection. 
Results logged to /var/lib/gems/2.1.0/extensions/x86_64-linux/2.1.0/nokogiri-1.6.6.2/gem_make.out 

Configurazioni:

  1. Ubuntu 14.10 (GNU/Linux x86_64 3.16.0-23-generic)
  2. gcc (Ubuntu 4.9.1-16ubuntu6) 4.9.1
  3. rubino 2.1.2p95 (2014/05/08) [x86_64-linux-gnu]

risposta

228

Dopo l'aggiornamento a Rails 4.2.4 su Ubuntu 14.04 utilizzando RVM avevo bisogno di fare questo:

sudo apt-get install libgmp-dev 

o

sudo apt-get install libgmp3-dev 

completa stacktrace: http://ruby-on-rails-eq8.blogspot.co.uk/2015/10/solving-ubuntu-1404-ruby-c-dependancy.html

+3

Possiamo per favore rendere questa la risposta accettata? –

+4

MacKinley Smith, di te per il Pensavo, ma mi dispiace, immagino "no" La risposta originale di Shivam era per un problema anni fa ed era una risposta valida. Per pura coincidenza la traccia dello stack della domanda originale era simile quando stavo cercando su Google per una soluzione del mio problema/risposta e questo è stato il primo successo in Google. Ecco perché applico la risposta qui. Quindi sono contento che la mia risposta sia d'aiuto, ma non voglio che qualcuno perda i loro punti per il gusto di farlo. – equivalent8

+0

Grazie per questa risposta, poiché è ciò di cui avevo bisogno. –

44

Sembra che manchi qualche requisito Ruby. Se si utilizza RVM, provare:

rvm requirements 

per ottenere l'elenco delle dipendenze e installarle manualmente.

In caso contrario, installare i requisiti di base noti direttamente utilizzando:

sudo apt-get install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libxml2-dev autoconf libc6-dev ncurses-dev automake libtool 
+5

Non uso rvm, ma la seconda soluzione ha funzionato per me. Grazie mille! – Allen

+0

il comando apt-get non funziona su Fedora guarda la mia risposta sotto –

+1

Non funziona, fallisce ancora con /home/peng/.rvm/rubies/ruby-2.2.3/lib/ruby/2.2.0/mkmf.rb: 456: in "try_do": il compilatore non è riuscito a generare un file eseguibile. (RuntimeError) Devi installare prima gli strumenti di sviluppo. – tribbloid

7

si ottiene questo errore perché le dipendenze di sviluppo per Ruby sono mancanti.

vi suggerisco di installare e utilizzare RVM per risolvere questo, controllare il funzionario e istruzioni aggiornate qui https://rvm.io/rvm/install

Nel momento in cui rispondo a questa domanda ho seguito questi passi:

gpg --keyserver hkp://keys.gnupg.net --recv-keys 
409B6B1796C275462A1703113804BB82D39DC0E3 

\curl -sSL https://get.rvm.io | bash 

Se ottenere questo avvertimento

* WARNING: You have '~/.profile' file, you might want to load it, 
    to do that add the following line to '/home/mao/.bash_profile': 

    source ~/.profile 

eseguire questo comando:

echo source ~/.profile >> ~/.bash_profile 

Quindi, ricaricare/applicare la bash_profile che hai appena aggiornato eseguendo questo:

source ~/.bash_profile 

Infine gestiscono questo per installare i requisiti:

rvm requirements 

Questo dovrebbe funzionare per qualsiasi distribuzione Linux come Ubuntu, Fedora, Debian, Redhat, Slackware.

+1

'" \ curl -sSL https://get.rvm.io | bash'' è una delle varie opzioni per installare RVM. Piuttosto che seguire questo piccolo estratto dalla documentazione di RVM qui, leggi e segui [le istruzioni di installazione] (https://rvm.io/rvm/install) sul sito di RVM. Sulla superficie RVM è facile da installare, ma riceviamo ripetutamente domande da persone che non hanno seguito ogni passo di debugging quando qualcosa va storto, e quella pagina copre tutto –

+0

@theTinMan Ho aggiornato la mia risposta per menzionare la pagina di installazione RVm come il modo aggiornato per farlo –

0

Per CentOS 7, Redhat 7:

yum -y install gcc ruby-dev