web-dev-qa-db-fra.com

Comment utiliser gem pour installer Rails sur Ubuntu

Le message d'erreur:

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

Configurations:

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

Après la mise à niveau vers Rails 4.2.4 sur Ubuntu 14.04 en utilisant RVM, je devais le faire:

Sudo apt-get install libgmp-dev

ou

Sudo apt-get install libgmp3-dev

Pile complète: http://Ruby-on-Rails-eq8.blogspot.co.uk/2015/10/solving-ubuntu-1404-Ruby-c-dependancy.html

228
equivalent8

Vous semblez manquer certaines exigences Ruby. Si vous utilisez RVM, essayez:

rvm requirements

pour obtenir la liste des dépendances et les installer manuellement.

Sinon, installez directement les exigences de base connues en utilisant:

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
50
shivam

Vous obtenez cette erreur car les dépendances de développement pour Ruby sont manquantes.

Je suggère que vous installiez et utilisiez RVM pour résoudre ce problème, vérifiez les instructions officielles et mises à jour ici https://rvm.io/rvm/install

Au moment où je réponds à cette question, j'ai suivi ces étapes:

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

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

Si vous recevez cet avertissement

  * 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

exécutez cette commande:

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

Ensuite, rechargez/appliquez le bash_profile que vous venez de mettre à jour en exécutant ceci:

source ~/.bash_profile

Enfin, lancez ceci pour installer la configuration requise:

rvm requirements

Cela devrait fonctionner pour toutes les distributions Linux comme Ubuntu, Fedora, Debian, Redhat, Slackware.

Pour Centos 7, Redhat 7:

yum -y install gcc Ruby-dev
0
Abdennour TOUMI