4

I can't install Rails. I followed this tutorial from RyanBigg, and downloaded a lot of dev tools. ruby-dev and build essential are installed and up to date.

This is basically the answer i found on stackoverflow : install development tools. It looks like a classic problem, but no classic solution seems to fix it.

This question and this other one are related to the exact same problem, and no one leads to a solution.

I'm currently moving my work from Archlinux to Ubuntu 12.04. I'm learning web developement with Ruby 2.0.0 and Rails 4.0. I'm using rvm 1.25.15.

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

  /home/remy/.rvm/rubies/ruby-2.0.0-p353/bin/ruby extconf.rb
  *** 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=/home/remy/.rvm/rubies/ruby-2.0.0-p353/bin/ruby
            --with-atomic_reference-dir
            --without-atomic_reference-dir
            --with-atomic_reference-include
            --without-atomic_reference-include=${atomic_reference-dir}/include
            --with-atomic_reference-lib
            --without-atomic_reference-lib=${atomic_reference-dir}/
        /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:434:in `try_do':

  The compiler failed to generate an executable file. (RuntimeError)
  You have to install development tools first.
  from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:519:in`try_link0'
  from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:817:in `try_run'
  from extconf.rb:26:in `<main>'

  extconf failed, exit code 1

  Gem files will remain installed in 
  /home/remy/.rvm/gems/ruby-2.0.0-p353@global/gems/atomic-1.1.14 for inspection.
  Results logged to 
  /home/remy/.rvm/gems/ruby-2.0.0-p353@global/extensions/x86_64-linux/2.0.0
  /atomic-1.1.14/gem_make.out

The solution proposed by mhartl here (basically: use rubygem 2.0.3) don't work better.

This is the output of gem env

RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.1
  - RUBY VERSION: 2.0.0 (2013-11-22 patchlevel 353) [x86_64-linux]
  - INSTALLATION DIRECTORY: /home/remy/.rvm/gems/ruby-2.0.0-p353@global
  - RUBY EXECUTABLE: /home/remy/.rvm/rubies/ruby-2.0.0-p353/bin/ruby
  - EXECUTABLE DIRECTORY: /home/remy/.rvm/gems/ruby-2.0.0-p353@global/bin
  - SPEC CACHE DIRECTORY: /home/remy/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /home/remy/.rvm/gems/ruby-2.0.0-p353@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /home/remy/.rvm/gems/ruby-2.0.0-p353@global/bin
     - /home/remy/.rvm/rubies/ruby-2.0.0-p353/bin
     - /home/remy/.rvm/bin
     - /usr/lib/lightdm/lightdm
     - /usr/local/sbin
     - /usr/local/bin
     - /usr/sbin
     - /usr/bin
     - /sbin
     - /bin
     - /usr/games

And this comes after rvm info

ruby-2.0.0-p353:

  system:
    uname:       "Linux Ruff 3.8.0-35-generic #50~precise1-Ubuntu SMP Wed Dec 4 17:25:51 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux"
    system:      "ubuntu/12.04/x86_64"
    bash:        "/bin/bash => GNU bash, version 4.2.25(1)-release (x86_64-pc-linux-gnu)"
    zsh:         " => not installed"

  rvm:
    version:      "rvm 1.25.15 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]"
    updated:      "1 hour 54 minutes 23 seconds ago"
    path:         "/home/remy/.rvm"

  ruby:
    interpreter:  "ruby"
    version:      "2.0.0p353"
    date:         "2013-11-22"
    platform:     "x86_64-linux"
    patchlevel:   "2013-11-22 revision 43784"
    full_version: "ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]"

  homes:
    gem:          "/home/remy/.rvm/gems/ruby-2.0.0-p353"
    ruby:         "/home/remy/.rvm/rubies/ruby-2.0.0-p353"

  binaries:
    ruby:         "/home/remy/.rvm/rubies/ruby-2.0.0-p353/bin/ruby"
    irb:          "/home/remy/.rvm/rubies/ruby-2.0.0-p353/bin/irb"
    gem:          "/home/remy/.rvm/rubies/ruby-2.0.0-p353/bin/gem"
    rake:         "/home/remy/.rvm/gems/ruby-2.0.0-p353@global/bin/rake"

  environment:
    PATH:         "/home/remy/.rvm/gems/ruby-2.0.0-p353/bin:/home/remy/.rvm/gems/ruby-2.0.0-p353@global/bin:/home/remy/.rvm/rubies/ruby-2.0.0-p353/bin:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/remy/.rvm/bin"
    GEM_HOME:     "/home/remy/.rvm/gems/ruby-2.0.0-p353"
    GEM_PATH:     "/home/remy/.rvm/gems/ruby-2.0.0-p353:/home/remy/.rvm/gems/ruby-2.0.0-p353@global"
    MY_RUBY_HOME: "/home/remy/.rvm/rubies/ruby-2.0.0-p353"
    IRBRC:        "/home/remy/.rvm/rubies/ruby-2.0.0-p353/.irbrc"
    RUBYOPT:      ""
    gemset:       ""

I found interesting the result of locate mkmf, but what i found there is clearly out of my range technicaly.

locate mkmf
/home/remy/.rvm/gems/ruby-2.0.0-p353/gems/atomic-1.1.14/ext/mkmf.log
/home/remy/.rvm/gems/ruby-2.0.0-p353@global/gems/bigdecimal-1.2.5/mkmf.log
/home/remy/.rvm/gems/ruby-2.0.0-p353@global/gems/psych-2.0.2/ext/psych/mkmf.log
/home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb
/usr/lib/ruby/1.8/mkmf.rb
/var/lib/gems/1.8/gems/atomic-1.1.14/ext/mkmf.log

I tryed the installation process of this RailsApp tutorial. Under the section "RVM’s Global Gemset", using the initial global gemset, the gem update command return 3 errors : bigdecimal, json and psych. First and last errors messages are quite the same, but the json one is much more interesting. Or seems like, I don't really get it.

1 bigdecimal

    Updating bigdecimal
    Fetching: bigdecimal-1.2.5.gem (100%)
    ERROR:  Error installing bigdecimal:
    ERROR: Failed to build gem native extension.

    /home/remy/.rvm/rubies/ruby-2.0.0-p353/bin/ruby extconf.rb
    checking for labs() in stdlib.h... 
    *** 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=/home/remy/.rvm/rubies/ruby-2.0.0-p353/bin/ruby
    /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:434:in `try_do': The compiler failed to generate an executable file. (RuntimeError)

You have to install development tools first.
        from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:519:in `try_link0'
        from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:534:in `try_link'
        from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:720:in `try_func'
        from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:1004:in `block in have_func'
        from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:895:in `block in checking_for'
        from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:340:in `block (2 levels) in postpone'
        from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:310:in `open'
        from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:340:in `block in postpone'
        from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:310:in `open'
        from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:336:in `postpone'
        from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:894:in `checking_for'
        from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:1003:in `have_func'
        from extconf.rb:3:in `<main>'

    extconf failed, exit code 1

    Gem files will remain installed in /home/remy/.rvm/gems/ruby-2.0.0-p353@global/gems/bigdecimal-1.2.5 for inspection.
    Results logged to /home/remy/.rvm/gems/ruby-2.0.0-p353@global/extensions/x86_64-linux/2.0.0/bigdecimal-1.2.5/gem_make.out

2 Json

Updating json
Fetching: json-1.8.1.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing json:
ERROR: Failed to build gem native extension.

/home/remy/.rvm/rubies/ruby-2.0.0-p353/bin/ruby extconf.rb
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling generator.c
make: I. : commande introuvable
make: [generator.o] Erreur 127 (ignorée)
linking shared-object json/ext/generator.so
make: shared : commande introuvable
make: [generator.so] Erreur 127 (ignorée)

make "DESTDIR=" install
compiling generator.c
make: I. : commande introuvable
make: [generator.o] Erreur 127 (ignorée)
linking shared-object json/ext/generator.so
make: shared : commande introuvable
make: [generator.so] Erreur 127 (ignorée)
/usr/bin/install -m 0755 generator.so ./.gem.20140129-22923-temaos/json/ext
/usr/bin/install: impossible d'évaluer «generator.so»: Aucun fichier ou dossier de ce type
make: *** [install-so] Erreur 1

make install failed, exit code 2

Gem files will remain installed in /home/remy/.rvm/gems/ruby-2.0.0-p353@global/gems/json-1.8.1 for inspection.
Results logged to /home/remy/.rvm/gems/ruby-2.0.0-p353@global/extensions/x86_64-linux/2.0.0/json-1.8.1/gem_make.out

3 Psych

Updating psych
Fetching: psych-2.0.2.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing psych:
ERROR: Failed to build gem native extension.

/home/remy/.rvm/rubies/ruby-2.0.0-p353/bin/ruby extconf.rb
checking for yaml.h... *** 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=/home/remy/.rvm/rubies/ruby-2.0.0-p353/bin/ruby
    --with-libyaml-dir
    --without-libyaml-dir
    --with-libyaml-include
    --without-libyaml-include=${libyaml-dir}/include
    --with-libyaml-lib
    --without-libyaml-lib=${libyaml-dir}/
    --enable-bundled-libyaml
    --disable-bundled-libyaml
/home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:434:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:565:in `try_cpp'
    from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:1097:in `block in find_header'
    from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:895:in `block in checking_for'
    from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:340:in `block (2 levels) in postpone'
    from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:310:in `open'
    from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:340:in `block in postpone'
    from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:310:in `open'
    from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:336:in `postpone'
    from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:894:in `checking_for'
    from /home/remy/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/mkmf.rb:1096:in `find_header'
    from extconf.rb:9:in `<main>'

extconf failed, exit code 1

Gem files will remain installed in /home/remy/.rvm/gems/ruby-2.0.0-p353@global/gems/psych-2.0.2 for inspection.
Results logged to /home/remy/.rvm/gems/ruby-2.0.0-p353@global/extensions/x86_64-linux/2.0.0/psych-2.0.2/gem_make.out
Community
  • 1
  • 1
Ruff9
  • 1,163
  • 15
  • 34
  • show us your: `/etc/gemrc`, `~/.gemrc` and output from: `gem env` – mpapis Jan 29 '14 at 20:29
  • I updated the question with the result of gem env. But both gemrc files are empty. – Ruff9 Jan 29 '14 at 21:08
  • 4
    I don't really understand why this question has been put "on hold as off-topic". I read what i found in the help center, like this : _if your question generally covers [...] software tools commonly used by programmers [...] then you’re in the right place to ask your question!_ The Rails gem isn't a tool commonly used by programmers? – Ruff9 Jan 30 '14 at 00:52
  • 1
    The problem is solved. gcc was here, but under a wrong path. I'm suppose to write a detailed answer to explain that, but i can't since the question is on hold. – Ruff9 Jan 30 '14 at 15:15

0 Answers0