Installing gems fails in deployment - AWS Elastic Beanstalk - ruby-on-rails

The native gems are not installing while I try to deploy the app in AWS Elastic Beanstalk(EB) environment.
eb-activity.log
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and
installing your bundle as root will break this application for all non-root
users on this machine.
Warning: the running version of Bundler is older than the version that created the lockfile. We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
Fetching gem metadata from https://rubygems.org/
Fetching version metadata from https://rubygems.org/
Fetching dependency metadata from https://rubygems.org/
Resolving dependencies...
Installing rake 11.2.2
Installing i18n 0.7.0
Using json 1.8.3
Installing minitest 5.9.0
Installing thread_safe 0.3.5
Installing builder 3.2.2
Installing erubis 2.7.0
Installing mini_portile2 2.1.0
Installing pkg-config 1.1.7
Installing rack 1.6.4
Installing mime-types-data 3.2016.0521
Installing arel 6.0.3
Installing jmespath 1.3.1
Installing bcrypt 3.1.11 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /var/app/ondeck/gems/bundle/gems/bcrypt-3.1.11/ext/mri
/opt/rubies/ruby-2.3.1/bin/ruby -r ./siteconf20160916-26394-19gpiil.rb extconf.rb
Cannot allocate memory - /opt/rubies/ruby-2.3.1/bin/ruby -r ./siteconf20160916-26394-19gpiil.rb extconf.rb 2>&1
Gem files will remain installed in /var/app/ondeck/gems/bundle/gems/bcrypt-3.1.11 for inspection.
Results logged to /var/app/ondeck/gems/bundle/extensions/x86_64-linux/2.3.0-static/bcrypt-3.1.11/gem_make.out
Using bundler 1.12.1
Installing rubyzip 1.2.0
Installing coderay 1.1.1
Installing coffee-script-source 1.10.0
Installing execjs 2.7.0
Installing thor 0.18.1
Installing concurrent-ruby 1.0.2
Installing orm_adapter 0.5.0
Installing unf_ext 0.0.7.2 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /var/app/ondeck/gems/bundle/gems/unf_ext-0.0.7.2/ext/unf_ext
/opt/rubies/ruby-2.3.1/bin/ruby -r ./siteconf20160916-26394-1kl25wy.rb extconf.rb
Cannot allocate memory - /opt/rubies/ruby-2.3.1/bin/ruby -r ./siteconf20160916-26394-1kl25wy.rb extconf.rb 2>&1
Gem files will remain installed in /var/app/ondeck/gems/bundle/gems/unf_ext-0.0.7.2 for inspection.
Results logged to /var/app/ondeck/gems/bundle/extensions/x86_64-linux/2.3.0-static/unf_ext-0.0.7.2/gem_make.out
Installing hashie 3.4.4
Installing htmlentities 4.3.4
Installing multi_xml 0.5.5
Installing multi_json 1.12.1
Installing jwt 1.5.4
Installing method_source 0.8.2
Installing mimemagic 0.3.0
Installing mqtt 0.4.0
Installing netrc 0.11.0
Installing pg 0.18.4 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /var/app/ondeck/gems/bundle/gems/pg-0.18.4/ext
/opt/rubies/ruby-2.3.1/bin/ruby -r ./siteconf20160916-26394-4s0qe7.rb extconf.rb
Cannot allocate memory - /opt/rubies/ruby-2.3.1/bin/ruby -r ./siteconf20160916-26394-4s0qe7.rb extconf.rb 2>&1
Gem files will remain installed in /var/app/ondeck/gems/bundle/gems/pg-0.18.4 for inspection.
Results logged to /var/app/ondeck/gems/bundle/extensions/x86_64-linux/2.3.0-static/pg-0.18.4/gem_make.out
Installing slop 3.6.0
Installing rack-cors 0.4.0
Installing sass 3.4.22
Installing tilt 2.0.5
Installing turbolinks-source 5.0.0
Installing will_paginate 3.1.0
Installing apipie-rails 0.3.6
Installing rdoc 4.2.2
Installing tzinfo 1.2.2
Installing nokogiri 1.6.8 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /var/app/ondeck/gems/bundle/gems/nokogiri-1.6.8/ext/nokogiri
/opt/rubies/ruby-2.3.1/bin/ruby -r ./siteconf20160916-26394-13djrm9.rb extconf.rb
Cannot allocate memory - /opt/rubies/ruby-2.3.1/bin/ruby -r ./siteconf20160916-26394-13djrm9.rb extconf.rb 2>&1
Gem files will remain installed in /var/app/ondeck/gems/bundle/gems/nokogiri-1.6.8 for inspection.
Results logged to /var/app/ondeck/gems/bundle/extensions/x86_64-linux/2.3.0-static/nokogiri-1.6.8/gem_make.out
Installing rack-test 0.6.3
Installing warden 1.2.6
Installing mime-types 3.1
Installing aws-sdk-core 2.6.1
An error occurred while installing bcrypt (3.1.11), and Bundler cannot continue.
Make sure that `gem install bcrypt -v '3.1.11'` succeeds before bundling. (Executor::NonZeroExitStatus)
I tried the following:
updating bundler using gem update bundler command in EB /var/app/current directory and the is no improvements.
Removing gemfile.lock and bundle install in local and deployed updated gemfile.lock.
The same above error occurs everytime.
I am using Rails 4.2.4 with ruby 2.3 version.
Please help me. Thanks.

I finally solved the issue by caching the gem.
I ran bundle package in local and it creates the gem caches in the vendor/cache directory.
Now, while deploying in AWS with those cached gems it tries to use the cached gem instead of installing it. I don't know whether it is a good practice but, it solved my issue.
I got this solution from the AWS blog: Locally Packaging Gem Dependencies for Ruby Applications in Elastic Beanstalk
Edit #1: Adding #sybind's comment in answer
bundle package --all will include all :git references
If there is any better solution please let me know.

Related

nio4r gem failed to build with native extensions (trying to install redmine_knowledgebase plugin)

Downloaded and installed Redmine from last Linux bitnami installer (4.2) on Ubuntu server 20.04.
No issue with installation, redmine is up and running correctly:
Redmine version 4.2.0.stable
Ruby version 2.5.8-p224 (2020-03-31) [x86_64-linux]
Rails version 5.2.5
Environment production
Database adapter Mysql2
However when trying to install knowledgebase plugin i get compiler build error with nio4r gem:
bruno#Vostro:~/redmine-4.1.1-8/apps/redmine/htdocs/plugins$ git clone git://github.com/alexbevi/redmine_knowledgebase.git
bundle install --no-deployment
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32.
The dependency ffi (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32.
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/.
Resolving dependencies.....
Fetching rake 13.0.3
Installing rake 13.0.3
Fetching concurrent-ruby 1.1.8
Installing concurrent-ruby 1.1.8
Fetching i18n 1.8.9
Installing i18n 1.8.9
Fetching minitest 5.14.4
Installing minitest 5.14.4
Using thread_safe 0.3.6
Fetching tzinfo 1.2.9
Installing tzinfo 1.2.9
Fetching activesupport 5.2.5
Installing activesupport 5.2.5
Using builder 3.2.4
Fetching erubi 1.10.0
Installing erubi 1.10.0
Fetching mini_portile2 2.5.0
Installing mini_portile2 2.5.0
Fetching racc 1.5.2
Installing racc 1.5.2 with native extensions
Fetching nokogiri 1.11.2 (x86_64-linux)
Installing nokogiri 1.11.2 (x86_64-linux)
Using rails-dom-testing 2.0.3
Using crass 1.0.6
Fetching loofah 2.9.0
Installing loofah 2.9.0
Using rails-html-sanitizer 1.3.0
Fetching actionview 5.2.5
Installing actionview 5.2.5
Using rack 2.2.3
Fetching rack-test 1.1.0
Installing rack-test 1.1.0
Fetching actionpack 5.2.5
Installing actionpack 5.2.5
Fetching nio4r 2.5.7
Installing nio4r 2.5.7 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /home/bruno/redmine-4.2.0-0/ruby/lib/ruby/gems/2.5.0/gems/nio4r-2.5.7/ext/nio4r
/home/bruno/redmine-4.2.0-0/ruby/bin/ruby -r ./siteconf20210329-18642-1yfhj63.rb extconf.rb
checking for unistd.h... yes
checking for linux/aio_abi.h... yes
checking for linux/io_uring.h... yes
checking for sys/select.h... yes
checking for port_event_t in poll.h... no
checking for sys/epoll.h... yes
checking for sys/event.h... no
checking for port_event_t in port.h... no
checking for sys/resource.h... yes
creating Makefile
current directory: /home/bruno/redmine-4.2.0-0/ruby/lib/ruby/gems/2.5.0/gems/nio4r-2.5.7/ext/nio4r
make "DESTDIR=" clean
current directory: /home/bruno/redmine-4.2.0-0/ruby/lib/ruby/gems/2.5.0/gems/nio4r-2.5.7/ext/nio4r
make "DESTDIR="
compiling bytebuffer.c
compiling monitor.c
compiling nio4r_ext.c
In file included from nio4r_ext.c:6:
../libev/ev.c:2136:31: warning: ‘ev_default_loop_ptr’ initialized and declared ‘extern’
2136 | EV_API_DECL struct ev_loop ev_default_loop_ptr = 0; / needs to be initialised to make it a definition
despite extern */
| ^~~~~~~~~~~~~~~~~~~
../libev/ev.c: In function ‘ev_time’:
../libev/ev.c:2172:7: internal compiler error: Illegal instruction
2172 | return EV_TS_GET (ts);
| ^~~~~~
Please submit a full bug report,
with preprocessed source if appropriate.
See for instructions.
make: *** [Makefile:243: nio4r_ext.o] Error 1
make failed, exit code 2
Gem files will remain installed in /home/bruno/redmine-4.2.0-0/ruby/lib/ruby/gems/2.5.0/gems/nio4r-2.5.7 for
inspection.
Results logged to
/home/bruno/redmine-4.2.0-0/ruby/lib/ruby/gems/2.5.0/extensions/x86_64-linux/2.5.0-static/nio4r-2.5.7/gem_make.out_
An error occurred while installing nio4r (2.5.7), and Bundler cannot continue.
Make sure that gem install nio4r -v '2.5.7' --source 'https://rubygems.org/' succeeds before bundling.
In Gemfile:
redmine_crm was resolved to 0.0.54, which depends on
rails was resolved to 5.2.5, which depends on
actioncable was resolved to 5.2.5, which depends on nio4r
Same compiler build errors when trying to install gem nio4r directly before bundling:
gem install nio4r -v '2.5.7' --source 'https://rubygems.org/'
.../gems/2.5.0/extensions/x86_64-linux/2.5.0-static/nio4r-2.5.7/mkmf.log error log:
...
conftest.c:6:9: error: unknown type name ‘port_event_t’
...
conftest.c:3:10: fatal error: sys/event.h: No such file or directory
...
conftest.c:3:10: fatal error: port.h: No such file or directory
...
Any insights ?
Thanks
I have been able to install the plugin in a fresh instance of Ubuntu 20 using Bitnami Redmine 4.1.X (knowledgebase plugin doesn't officially supports Redmine 4.2) with the plugin's installation’s commands after loading the Bitnami console. Could you please try the plugin's installation following these commands:
cd INSTALLDIR
./use_redmine
. ./scripts/setenv.sh
cd apps/redmine/htdocs/
bundle install
bundle exec ./bin/rake redmine:plugins:migrate NAME=redmine_knowledgebase RAILS_ENV=production
INSTALLDIR/ctlscript.sh restart

Having problems with running bundle install on windows

Using method_source 1.0.0
Using thor 1.0.1
Using ffi 1.12.2 (x86-mingw32)
Fetching puma 3.12.4
Installing puma 3.12.4 with native extensions
Using rb-fsevent 0.10.3
Fetching rubyzip 2.3.0
Installing rubyzip 2.3.0
Using tilt 2.0.10
Fetching sqlite3 1.4.2
Installing sqlite3 1.4.2 with native extensions
Using turbolinks-source 5.2.0
Using i18n 1.8.2
Using tzinfo 1.2.7
Using nokogiri 1.10.9 (x86-mingw32)
Using rack-test 1.1.0
Using sprockets 3.7.2
Using websocket-driver 0.6.5
Using mail 2.7.1
Using addressable 2.7.0
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: D:/installation
data/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/bindex-0.8.1/ext/skiptrace
"D:/installation data/RailsInstaller/Ruby2.3.3/bin/ruby.exe" -r
./siteconf20200429-5116-m9ymp2.rb extconf.rb
creating Makefile
current directory: D:/installation
data/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/bindex-0.8.1/ext/skiptrace
make "DESTDIR=" clean
Makefile:264: *** multiple target patterns. Stop.
current directory: D:/installation
data/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/bindex-0.8.1/ext/skiptrace
make "DESTDIR="
Makefile:264: *** multiple target patterns. Stop.
make failed, exit code 2
Gem files will remain installed in D:/installation
data/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/bindex-0.8.1 for
inspection.
Results logged to D:/installation
data/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/extensions/x86-mingw32/2.3.0/bindex-0.8.1/gem_make.out
An error occurred while installing bindex (0.8.1), and Bundler cannot continue.
Make sure that `gem install bindex -v '0.8.1'` succeeds before bundling.
In Gemfile:
web-console was resolved to 3.7.0, which depends on
bindex
It should be a bug in the version of Ruby you are using. Try upgrading your Ruby version to latest version of 2.3.
My suggestion is not to use RailsInstaller at all. It's an outdated package that causes a lot of problems during development. If you want to install Ruby on Rails on Windows, RubyInstaller is the best option right now. It uses Windows Subsystem for Linux which provides a Linux environment on top of Windows.

Gem::Ext::BuildError: ERROR: Failed to build gem native extension on json 1.8.6 and sqlite3 1.3.13

I am created new application and then run in command line bundle show so show this error :-
Fetching gem metadata from https://rubygems.org/...........
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Resolving dependencies............................................
Using rake 12.0.0
Using i18n 0.8.1
Using minitest 4.7.5
Using multi_json 1.12.1
Using thread_safe 0.3.6
Using tzinfo 0.3.53
Using builder 3.1.4
Using erubis 2.7.0
Using rack 1.5.5
Using mime-types-data 3.2016.0521
Using activerecord-deprecated_finders 1.0.4
Using arel 4.0.2
Using bundler 1.11.2
Using coffee-script-source 1.12.2
Using execjs 2.7.0
Using thor 0.19.4
Using hike 1.2.3
Installing json 1.8.6 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /tmp/bundler20170330-4696-17s1gfujson-1.8.6/gems/json-1.8.6/ext/json/ext/generator
/usr/bin/ruby2.3 -r ./siteconf20170330-4696-1cm0oql.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
extconf failed, exit code 1
Gem files will remain installed in /tmp/bundler20170330-4696-17s1gfujson-1.8.6/gems/json-1.8.6 for inspection.
Results logged to /tmp/bundler20170330-4696-17s1gfujson-1.8.6/extensions/x86_64-linux/2.3.0/json-1.8.6/gem_make.out
Using tilt 1.4.1
Using rdoc 4.3.0
Using sass 3.2.19
Installing sqlite3 1.3.13 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /tmp/bundler20170330-4696-5gxxursqlite3-1.3.13/gems/sqlite3-1.3.13/ext/sqlite3
/usr/bin/ruby2.3 -r ./siteconf20170330-4696-1s2vax3.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
extconf failed, exit code 1
Gem files will remain installed in /tmp/bundler20170330-4696-5gxxursqlite3-1.3.13/gems/sqlite3-1.3.13 for inspection.
Results logged to /tmp/bundler20170330-4696-5gxxursqlite3-1.3.13/extensions/x86_64-linux/2.3.0/sqlite3-1.3.13/gem_make.out
Using turbolinks-source 5.0.0
Using activesupport 4.0.13
Using rack-test 0.6.3
Using mime-types 3.1
Using coffee-script 2.4.1
Using uglifier 3.1.11
An error occurred while installing json (1.8.6), and Bundler cannot continue.
Make sure that `gem install json -v '1.8.6'` succeeds before bundling.
I am use this all version :-
Ruby version:- ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]
Rails version:- Rails 4.0.13
Gem version:- 2.5.1
Bundle version:- Bundler version 1.14.6
Mongo version:- MongoDB shell version: 2.4.14
Please tell us! How to solve this problem? I am search so many solution but does not find out suitable solutions.
apt install ruby-dev
or
apt-get install ruby-dev
as per github post here, have you tried running the following command to fix it:
sudo apt-get install libgmp3-dev
I was trying to set up Ruby/Rails on a Mint 18.1 and "apt-get install libgmp3-dev" did not help but "apt-get install ruby-dev"seemed to fix the problem. Running "bundle-install" after that went off without a hitch.

Native Extension Error After Installing Git & Heroku

I've been searching for a solution since yesterday and everything I've tried leads to a dead end.
New to RoR and walking through tutorials. Everything was working fine, until I started setting up GIT and Heroku. I had to install jruby_windows and heroku-toolbelt, and I believe this botched things up.
Now when I run bundle install I receive the following output errors
\BookReview>bundle install
Fetching gem metadata from https://rubygems.org/...........
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Resolving dependencies........
Using rake 11.2.2
Using i18n 0.7.0
Using json 1.8.3
Using minitest 5.9.0
Using thread_safe 0.3.5
Using builder 3.2.2
Using erubis 2.7.0
Using nokogiri 1.6.8
Using rack 1.6.4
Using mime-types-data 3.2016.0521
Using arel 6.0.3
Using execjs 2.7.0
Using bcrypt 3.1.11
Using bcrypt-ruby 3.0.1
Using debug_inspector 0.0.2
Using sass 3.4.22
Using bundler 1.12.5
Installing byebug 9.0.5 with native extensions
C:/jruby-9.0.0.0/lib/ruby/stdlib/rubygems/ext/ext_conf_builder.rb:39: warning: Tempfile#unlink or delete called on open file; ignoring
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
C:/jruby-9.0.0.0/bin/jruby.exe -r ./siteconf20160621-9244-az7xx.rb extconf.rb
NotImplementedError: C extensions are not supported
<top> at C:/jruby-9.0.0.0/lib/ruby/stdlib/mkmf.rb:1
require at org/jruby/RubyKernel.java:940
(root) at C:/jruby-9.0.0.0/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1
<top> at extconf.rb:1
extconf failed, exit code 1
Gem files will remain installed in C:/jruby-9.0.0.0/lib/ruby/gems/shared/gems/byebug-9.0.5 for inspection.
Results logged to C:/jruby-9.0.0.0/lib/ruby/gems/shared/extensions/universal-java-1.8/2.2.0/byebug-9.0.5/gem_make.out
Using coffee-script-source 1.10.0
Using thor 0.19.1
Using concurrent-ruby 1.0.2
Using orm_adapter 0.5.0
Using multi_json 1.12.1
Using mimemagic 0.3.0
Installing mysql2 0.4.4 with native extensions
C:/jruby-9.0.0.0/lib/ruby/stdlib/rubygems/ext/ext_conf_builder.rb:39: warning: Tempfile#unlink or delete called on open file; ignoring
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
C:/jruby-9.0.0.0/bin/jruby.exe -r ./siteconf20160621-9244-13ylh37.rb extconf.rb
NotImplementedError: C extensions are not supported
<top> at C:/jruby-9.0.0.0/lib/ruby/stdlib/mkmf.rb:1
require at org/jruby/RubyKernel.java:940
(root) at C:/jruby-9.0.0.0/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1
<top> at extconf.rb:2
extconf failed, exit code 1
Gem files will remain installed in C:/jruby-9.0.0.0/lib/ruby/gems/shared/gems/mysql2-0.4.4 for inspection.
Results logged to C:/jruby-9.0.0.0/lib/ruby/gems/shared/extensions/universal-java-1.8/2.2.0/mysql2-0.4.4/gem_make.out
Using raty_ratings 1.2.0
Using tilt 2.0.5
Using rdoc 4.2.2
Using tzinfo 1.2.2
Using loofah 2.0.3
Using rack-test 0.6.3
Using warden 1.2.6
Using mime-types 3.1
Using autoprefixer-rails 6.3.6.2
Using uglifier 3.0.0
Installing binding_of_caller 0.7.2 with native extensions
C:/jruby-9.0.0.0/lib/ruby/stdlib/rubygems/ext/ext_conf_builder.rb:39: warning: Tempfile#unlink or delete called on open file; ignoring
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
C:/jruby-9.0.0.0/bin/jruby.exe -r ./siteconf20160621-9244-wni27b.rb extconf.rb
NotImplementedError: C extensions are not supported
<top> at C:/jruby-9.0.0.0/lib/ruby/stdlib/mkmf.rb:1
require at org/jruby/RubyKernel.java:940
(root) at C:/jruby-9.0.0.0/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:1
<top> at extconf.rb:19
extconf failed, exit code 1
Gem files will remain installed in C:/jruby-9.0.0.0/lib/ruby/gems/shared/gems/binding_of_caller-0.7.2 for inspection.
Results logged to C:/jruby-9.0.0.0/lib/ruby/gems/shared/extensions/universal-java-1.8/2.2.0/binding_of_caller-0.7.2/gem_make.out
An error occurred while installing byebug (9.0.5), and Bundler cannot continue.
Make sure that `gem install byebug -v '9.0.5'` succeeds before bundling.
This probably isnt an official fix. I gave up on trying different things, so I ended up reinstalling by using the railsinstaller. After setting things up again I am able to bundle install with no errors.

ERROR: Failed to build gem native extension message (Linux) installing rubygems

I'm going through the rails tutorial atm. (I'm a beginner so bear with me.)
As you can see below, when I try and install the rubygems using 'bundle install', I get the error message saying that I need to make sure 'gem install json -v '1.8.1' succeeds before I try again.
But when I try and sudo gem install json -v '1.8.1', I get the
.
If I'm asking a stupid question, or if I've left out any necessary info, just let me know. I'm new to this -- CodeAcademy & RailsForZombies are the extent of my knowledge.
ben#ben-X551CA ~/first_rails_project/bens_first_app $ bundle install
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
Using rake 10.3.2
Using i18n 0.6.11
Using minitest 4.7.5
Using multi_json 1.10.1
Using thread_safe 0.3.4
Using tzinfo 0.3.41
Using activesupport 4.0.8
Using builder 3.1.4
Using erubis 2.7.0
Using rack 1.5.2
Using rack-test 0.6.2
Using actionpack 4.0.8
Using mime-types 1.25.1
Using polyglot 0.3.5
Using treetop 1.4.15
Using mail 2.5.4
Using actionmailer 4.0.8
Using activemodel 4.0.8
Using activerecord-deprecated_finders 1.0.3
Using arel 4.0.2
Using activerecord 4.0.8
Using bundler 1.7.2
Using coffee-script-source 1.8.0
Using execjs 2.2.1
Using coffee-script 2.3.0
Using thor 0.19.1
Using railties 4.0.8
Using coffee-rails 4.0.1
Using hike 1.2.3
Using jbuilder 1.0.2
Using jquery-rails 3.0.4
Your user account isn't allowed to install to the system Rubygems.
You can cancel this installation and run:
bundle install --path vendor/bundle
to install the gems into ./vendor/bundle/, or you can enter your password
and install the bundled gems to Rubygems using sudo.
Password:
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- mkmf (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:inrequire'
from extconf.rb:1:in `'
Gem files will remain installed in /tmp/bundler20140908-2757-18q0kfn/json-1.8.1/gems/json-1.8.1 for inspection.
Results logged to /tmp/bundler20140908-2757-18q0kfn/json-1.8.1/gems/json-1.8.1/ext/json/ext/generator/gem_make.out
An error occurred while installing json (1.8.1), and Bundler cannot continue.
Make sure that gem install json -v '1.8.1' succeeds before bundling.
ben#ben-X551CA ~/first_rails_project/bens_first_app $ gem install json -v '1.8.1'
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /var/lib/gems/1.9.1 directory.
ben#ben-X551CA ~/first_rails_project/bens_first_app $ sudo gem install json -v '1.8.1'
Building native extensions. This could take a while...
ERROR: Error installing json:
ERROR: Failed to build gem native extension.
/usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- mkmf (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:inrequire'
from extconf.rb:1:in `'
Gem files will remain installed in /var/lib/gems/1.9.1/gems/json-1.8.1 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/json-1.8.1/ext/json/ext/generator/gem_make.out
ben#ben-X551CA ~/first_rails_project/bens_first_app $
So running this worked for me:
sudo apt-get install ruby1.9.1-dev
Suppose the -dev package was needed?
If #BenLawton answer doesn't work try this (work for me on Ubuntu 16.04):
sudo apt-get install ruby-full
https://www.ruby-lang.org/en/documentation/installation/#apt

Resources