39

I'm running Crunchbang 11 (Debian-based).

I'm trying to install Ruby on Rails, like this:

gem install rails --version 4.0.0

I get the error "Failed to build gem native extension".

My ruby is version 2.0.0p247, my RubyGems is 2.0.0.

What's the issue here?


This is the full error output:

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

    /home/erlkoenig/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb
creating Makefile

make
compiling atomic_reference.c
linking shared-object atomic_reference.so

make install
/usr/bin/install -c -m 0755 atomic_reference.so /home/erlkoenig/.rvm/gems/ruby-2.0.0-p247/gems/atomic-1.1.10/lib/home/erlkoenig/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/x86_64-linux
/usr/bin/install: cannot create regular file `/home/erlkoenig/.rvm/gems/ruby-2.0.0-p247/gems/atomic-1.1.10/lib/home/erlkoenig/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/x86_64-linux': No such file or directory
make: *** [install-so] Error 1


Gem files will remain installed in /home/erlkoenig/.rvm/gems/ruby-2.0.0-p247/gems/atomic-1.1.10 for inspection.
Results logged to /home/erlkoenig/.rvm/gems/ruby-2.0.0-p247/gems/atomic-1.1.10/ext/gem_make.out

My env:

ORBIT_SOCKETDIR=/tmp/orbit-erlkoenig
SSH_AGENT_PID=2695
rvm_bin_path=/home/erlkoenig/.rvm/bin
GEM_HOME=/home/erlkoenig/.rvm/gems/ruby-2.0.0-p247
SHELL=/bin/bash
TERM=xterm-256color
XDG_SESSION_COOKIE=9e0343c07c890bd2d60ee6a750f36c6c-1373892339.852749-193038580
IRBRC=/home/erlkoenig/.rvm/rubies/ruby-2.0.0-p247/.irbrc
WINDOWID=39845892
GNOME_KEYRING_CONTROL=/home/erlkoenig/.cache/keyring-g6PRS5
MY_RUBY_HOME=/home/erlkoenig/.rvm/rubies/ruby-2.0.0-p247
USER=erlkoenig
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
rvm_path=/home/erlkoenig/.rvm
SSH_AUTH_SOCK=/tmp/ssh-XVmUxMD7LHwi/agent.2651
rvm_prefix=/home/erlkoenig
PATH=/home/erlkoenig/.rvm/gems/ruby-2.0.0-p247/bin:/home/erlkoenig/.rvm/gems/ruby-2.0.0-p247@global/bin:/home/erlkoenig/.rvm/rubies/ruby-2.0.0-p247/bin:/home/erlkoenig/.rvm/bin:/home/erlkoenig/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/erlkoenig/.rvm/bin:/home/erlkoenig/.scripts:/home/erlkoenig/.scripts/netlogo-5.0.3:/opt/node/bin
MAIL=/var/mail/erlkoenig
PWD=/home/erlkoenig
EDITOR=vim
GNOME_KEYRING_PID=2575
LANG=en_US.UTF-8
rvm_env_string=ruby-2.0.0-p247
rvm_version=1.21.9 (stable)
SHLVL=1
HOME=/home/erlkoenig
rvm_ruby_string=ruby-2.0.0-p247
LOGNAME=erlkoenig
GEM_PATH=/home/erlkoenig/.rvm/gems/ruby-2.0.0-p247:/home/erlkoenig/.rvm/gems/ruby-2.0.0-p247@global
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-9eOdnYZelY,guid=a5db4ca68e107a48a04c8b8e51e3eef4
DISPLAY=:0.0
RUBY_VERSION=ruby-2.0.0-p247
XAUTHORITY=/home/erlkoenig/.Xauthority
COLORTERM=gnome-terminal
_=/usr/bin/env
LonelyWebCrawler
  • 2,866
  • 4
  • 37
  • 57
  • 2
    try sudo gem install rails --version 4.0.0 – maximus ツ Jul 15 '13 at 13:49
  • I still get the error. – LonelyWebCrawler Jul 15 '13 at 13:52
  • 1
    You have problem with this dir `/home/erlkoenig/.rvm/gems/ruby-2.0.0-p247/gems/atomic-1.1.10/lib/home/erlkoenig/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/x86_64-linux` which means either you garbled the log while pasting or you have a mess in PATH – Mike Szyndel Jul 15 '13 at 13:53
  • can you first try gem update --system and them gem install rails --version 4.0.0? – maximus ツ Jul 15 '13 at 13:57
  • whoa, `gem update --system` doesn't work, even though I did it before: `ERROR: While executing gem ... (Errno::ENOENT) No such file or directory - getcwd sh: 0: getcwd() failed: No such file or directory ` – LonelyWebCrawler Jul 15 '13 at 13:58

15 Answers15

60

Rails 4.0 needs RubyGem version 2.0.3, Just update your system by using following command

gem update --system 2.0.3
shrikant1712
  • 4,336
  • 1
  • 24
  • 42
  • 2
    This did it, thanks. Out of curiosity, may I ask whence you got this piece of information? – LonelyWebCrawler Jul 15 '13 at 17:44
  • 17
    I know this isn't related to this issue in particular, but a Google search of my problem (installing Compass and getting `mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h`) led to this StackOverflow question, so in case anyone is having the same problem, the solution was to get ruby-dev (`sudo apt-get install ruby-dev`.) – River Tam Dec 17 '14 at 04:21
  • 2
    @River Tam A slightly cleaner way to go about that may be to run `rvm requirements` – kingsfoil Jan 22 '16 at 19:23
  • @RiverTam I came with the same issue, fresh "yum install ruby" on a CentOS 7 box, and the first gem I threw had the same error. I did "yum install ruby-devel sqlite-devel", and the gem (larch) built fine. Thanks! – Andrew White Apr 18 '16 at 12:54
  • I need to use `sudo` on ubuntu – xdevs23 May 23 '16 at 12:31
13

Run the following command:

sudo apt-get install ruby-dev zlib1g-dev liblzma-dev

Then,

sudo gem install rails
Lakhwinder Singh
  • 5,536
  • 5
  • 27
  • 52
Syed_Shahiq
  • 566
  • 6
  • 13
  • 2
    try to highlight the keywords and be clear with the format it will help to reach out your answer for others – Agilanbu Jan 02 '19 at 06:38
  • Got this error `Fetching nio4r-2.5.4.gem Fetching actioncable-6.1.0.gem ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/bin directory. ilesh:~ silicon$ ilesh:~ silicon$ ` – Ilesh P Jan 04 '21 at 11:43
10

Just a follow up ... on different solution...

it may be that you are on a mac and rails cannot find the right compiler for c headers.

just install xcode from apps store / homebrew or go to terminal ...

$ xcode-select --install

complete the installation and agree on the licensing etc, then ...

$ sudo gem install rails

mirageglobe
  • 2,446
  • 2
  • 24
  • 30
7

Got the same issue when installing rails with the command "gem install rails -v 5.1.2" on windows7, solved after installing "MSYS2 and MINGW development toolchain" (command ridk install then option 3)..It took a while to finish the installation and then i installed rails without any problem

Adel Ben Hamadi
  • 720
  • 10
  • 13
2

For me this helped:

sudo apt-get install ruby-dev
Irma
  • 31
  • 4
2

I could solve this way

rvm use ruby --install --default

and then try again.

gem install rails --no-document
2

This worked for me:

sudo ln -s /bin/mkdir /usr/bin/mkdir

I kept encountering this error when I ran gem install rails -v 5.2.0:

make: /usr/bin/mkdir: Command not found
make: *** [Makefile:199: .sitearchdir.-.racc.time] Error 127

make install failed, exit code 2

So I ran this command and it fixed it for me:

sudo ln -s /bin/mkdir /usr/bin/mkdir

Originally found: https://stackoverflow.com/a/64653052

1

Try

sudo gem install rails --version 2.0

to install libraries.

Andre Mesquita
  • 879
  • 12
  • 25
1

For anyone got the error:"Failed to build gem native extension”, while running sudo gem install rails, and it said somethings about "nokogiri".

It is possible because you are using the same ruby version as system is using (for mac user). The solution would be install RVM, use RVM to install another ruby version.

So now you have 2 Ruby versions on your machine, RVM will automatically switch to the newly installed version. now, you can run gem install rails without error and without sudo as well.

Trieu Nguyen
  • 933
  • 1
  • 11
  • 17
1

i'm running elementary os 5 and what i do is.

sudo gem update --system

and then try again.

sudo gem install rails
Edmundo
  • 11
  • 1
1

On Fedora 30, I ran into this problem "Failed to build gem native extension". The log error was "gcc: fatal error: cannot read spec file ‘/usr/lib/rpm/redhat/redhat-hardened-cc1’: No such file or directory". The solution was found here.

If you installed all the above, but the extensions would still not compile, you are probably running a Fedora image that misses redhat-rpm-config package. In that case gcc compiler would complain about one of the following:

gcc: error: conftest.c: No such file or directory
gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory
To solve this, simply run sudo dnf install redhat-rpm-config.
Nhan
  • 1,405
  • 1
  • 13
  • 16
1

While installing rails 7 when I ran the command

sudo gem install rails

I got the same errors. I tried several suggestions, but in vain. At last one suggestion from the web helped me. I have been asked to run following command :

sudo apt-get install libmagickwand-dev

and then try again installing rails. Here is the link to that site : https://askubuntu.com/questions/600068/cant-install-a-ruby-package-failed-to-build-gem-native-extension

It worked !!!

Raj
  • 51
  • 1
  • 5
0

I had the same error when installing rails, but I solved it by running the command: gem install rails without adding sudo.

cosmoonot
  • 2,161
  • 3
  • 32
  • 38
0

I got a similar error installing rails 7.0.4 because of websocket-driver 0.7.5

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

    current directory: /usr/local/bundle/gems/websocket-driver-0.7.5/ext/websocket-driver
/usr/local/bin/ruby -I /usr/local/lib/ruby/3.1.0 -r ./siteconf20221124-7-9o2qxo.rb extconf.rb
creating Makefile

current directory: /usr/local/bundle/gems/websocket-driver-0.7.5/ext/websocket-driver
make DESTDIR\= clean
current directory: /usr/local/bundle/gems/websocket-driver-0.7.5/ext/websocket-driver
make DESTDIR\=
make failedNo such file or directory - make

Gem files will remain installed in /usr/local/bundle/gems/websocket-driver-0.7.5 for inspection.
Results logged to /usr/local/bundle/extensions/aarch64-linux/3.1.0/websocket-driver-0.7.5/gem_make.out

The following command solved my problem

apt install -y build-essential
hfsaito
  • 39
  • 1
  • 3
0

In my case, my machine doesn't have make and cmake install yet (which need to be build package, cfile, etc...), so it gem can't be install rails

sudo apt install cmake make

Then

sudo gem install rails
Manh Duong
  • 21
  • 6