Search code examples
ruby-on-railsrubyruby-on-rails-3.1mongoidbson

Why do I get an error installing bson_ext?


When I execute the following command in the Rails project folder:

gem install bson_ext

I get the this error:

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

    /home/absolute/.rvm/rubies/ruby-1.9.3-p0/bin/ruby extconf.rb
checking for asprintf()... yes
checking for ruby/st.h... yes
checking for ruby/regex.h... yes
checking for ruby/encoding.h... yes
creating Makefile

make
compiling bson_buffer.c
compiling cbson.c
cbson.c: In function ‘write_element’:
cbson.c:439:17: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-    after-statement]
cbson.c: In function ‘write_doc’:
cbson.c:608:5: warning: implicit declaration of function ‘bson_buffer_get_max_size’     [-Wimplicit-function-declaration]
cbson.c: In function ‘objectid_generate’:
cbson.c:911:9: warning: implicit declaration of function ‘htonl’ [-Wimplicit-function-declaration]
cbson.c:919:5: warning: implicit declaration of function ‘htons’ [-Wimplicit-function-declaration]
compiling encoding_helpers.c
linking shared-object bson_ext/cbson.so

make install
/bin/install -c -m 0755 cbson.so /home/absolute/.rvm/gems/ruby-1.9.3-p0/gems/bson_ext-1.6.2/ext/bson_ext
make: /bin/install: Command not found
make: *** [/home/absolute/.rvm/gems/ruby-1.9.3-p0/gems/bson_ext-1.6.2/ext/bson_ext/cbson.so] Error 127


Gem files will remain installed in /home/absolute/.rvm/gems/ruby-1.9.3- p0/gems/bson_ext-1.6.2 for inspection.
Results logged to /home/absolute/.rvm/gems/ruby-1.9.3-p0/gems/bson_ext-1.6.2/ext/cbson/gem_make.out

I am using mongoid in my Rails project. Installing the bson_ext gem, it gives me the above error.

Can anybody tell me what is the problem?


Solution

  • Not sure why your make is not using the correct install. But it's easy to do a quick fix:

    sudo ln -s /usr/bin/install /bin/install
    

    This will link the existing install into /bin and should enable make to continue.