Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ERROR: Error installing racc: ERROR: Failed to build gem native extension

  • Ubuntu 20.04.2 LTS
  • Installing Rails 6.1.3.1
  • Ruby: 2.6.5

Installing rails:

gem install rails -v 6.1.3.1 --no-doc

Fails to install racc-1.5.2

Trying to manually install racc-1.5.2:

gem install racc -v '1.5.2' --source 'https://rubygems.org/' --no-doc

produces the same error.

The following is an 'edited' output of the error:

$ gem install rails -v 6.1.3.1 --no-doc

Fetching racc-1.5.2.gem
Fetching zeitwerk-2.4.2.gem
...
Successfully installed rack-2.2.3
Successfully installed rack-test-1.1.0
Building native extensions. This could take a while...
ERROR:  Error installing rails:
    ERROR: Failed to build gem native extension.

    current directory: /home/user/.rvm/gems/ruby-2.6.5@gemset/gems/racc-1.5.2/ext/racc/cparse
/home/user/.rvm/rubies/ruby-2.6.5/bin/ruby -I /home/user/.rvm/rubies/ruby-2.6.5/lib/ruby/site_ruby/2.6.0 -r ./siteconf20210503-658786-pkp97m.rb extconf.rb
checking for rb_ary_subseq()... yes
creating Makefile

current directory: /home/user/.rvm/gems/ruby-2.6.5@gemset/gems/racc-1.5.2/ext/racc/cparse
make "DESTDIR=" clean

current directory: /home/user/.rvm/gems/ruby-2.6.5@gemset/gems/racc-1.5.2/ext/racc/cparse
make "DESTDIR="
compiling cparse.c
linking shared-object racc/cparse.so

current directory: /home/user/.rvm/gems/ruby-2.6.5@gemset/gems/racc-1.5.2/ext/racc/cparse
make "DESTDIR=" install
make: /usr/bin/mkdir: Command not found
make: *** [Makefile:202: .sitearchdir.-.racc.time] Error 127

make install failed, exit code 2

Gem files will remain installed in /home/user/.rvm/gems/ruby-2.6.5@gemset/gems/racc-1.5.2 for inspection.
Results logged to /home/user/.rvm/gems/ruby-2.6.5@gemset/extensions/x86_64-linux/2.6.0/racc-1.5.2/gem_make.out


like image 411
Eric Wanchic Avatar asked May 03 '21 21:05

Eric Wanchic


1 Answers

The main problem here is that the command mkdir is being called at a specific location, and it's just not there:

make: /usr/bin/mkdir: Command not found

To fix this, you need to add a symbolic link to that location:

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

Run gem install again on rails and all should be good!

Thanks to user dem1tris from brining up a related topic, and providing the answer: make: /usr/bin/mkdir: Command not found during `gem install nokogiri` in Ubuntu 20.04

like image 108
Eric Wanchic Avatar answered Oct 25 '22 11:10

Eric Wanchic