I'm setting up Rails environment using Vagrant with the box ubuntu/trusty32 in Windows 7 32-bit host. I'm stuck with bundle install --path=./vendor/bundle
. I got the following error:
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /vagrant/vendor/bundle/ruby/2.4.0/gems/nio4r-2.1.0/ext/nio4r
/home/vagrant/.rbenv/versions/2.4.1/bin/ruby -r ./siteconf20170911-24730-8nkvsn.rb extconf.rb
checking for unistd.h... yes
checking for sys/select.h... yes
checking for poll.h... yes
checking for sys/epoll.h... yes
checking for sys/event.h... no
checking for port.h... no
checking for sys/resource.h... yes
creating Makefile
Text file busy @ unlink_internal - ./siteconf20170911-24730-8nkvsn.rb
Gem files will remain installed in /vagrant/vendor/bundle/ruby/2.4.0/gems/nio4r-2.1.0 for inspection.
Results logged to /vagrant/vendor/bundle/ruby/2.4.0/extensions/x86-linux/2.4.0-static/nio4r-2.1.0/gem_make.out
An error occurred while installing nio4r (2.1.0), and Bundler cannot continue.
Make sure that `gem install nio4r -v '2.1.0'` succeeds before bundling.
In Gemfile:
rails_admin was resolved to 1.2.0, which depends on
rails was resolved to 5.0.6, which depends on
actioncable was resolved to 5.0.6, which depends on
nio4r
The problem seems to be the issue of the gem nio4r
. I have tried these:
gem install bundler
bundle update
gem uninstall nio4r
gem install nio4r
(this successfully installed the gem)rm Gemfile.lock
bundle install
None of the above works. I also tried this:
sudo apt-get install ruby2.2-dev
But it couldn't find the package.
E: Unable to locate package ruby2.2-dev
E: Couldn't find any package by regex 'ruby2.2-dev'
The error mainly addresses to the message
Text file busy @ unlink_internal - ./siteconf20170911-24730-8nkvsn.rb
. I found a solution and I followed the steps described in the article.By changing bundle path to a directory that's local to the VM (not on a shared folder) made the error gone away.
Create a new directory
Add this to
/vagrant/.bundle/config
bundle install