Skip navigation.

Syndicate

Syndicate content

User login

Building ruby stuff from source on Ubuntu

I’ve been playing with CouchDB lately, and the CouchObject Ruby bindings. When I tried to install the latest CouchDB gem with sudo gem install couchobject-0.5.0 it fails because json isn’t installed. Then I ran sudo gem install json, which failed with:

Building native extensions.  This could take a while...
ERROR:  While executing gem ... (Gem::Installer::ExtensionBuildError)
    ERROR: Failed to build gem native extension.

ruby extconf.rb install json
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
        from extconf.rb:1

According to this article, Ubuntu breaks up Ruby stuff into multiple packages for various and irrelevant reasons, so doing sudo apt-get install ruby doesn’t cut it. sudo apt-get install ruby1.8-dev, however, installed the additional crap needed to build Ruby extensions from source.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I has the same problem

I has the same problem trying intall json-ruby gem with the same error , then I reinstall ruby with apt-get install ruby1.8-dev well, its installing successfully but when I try to installl with apt-get intall json I obtained this error :

gem install json

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

/usr/bin/ruby1.8 extconf.rb install json creating Makefile

make cc -I. -I/usr/lib/ruby/1.8/i486-linux -I/usr/lib/ruby/1.8/i486-linux -I. -fPIC -fno-strict-aliasing -g -g -O2 -fPIC -c unicode.c En el fichero incluído de unicode.h:5, de unicode.c:3: /usr/lib/ruby/1.8/i486-linux/ruby.h:40:21: error: stdlib.h: No existe el fichero ó directorio /usr/lib/ruby/1.8/i486-linux/ruby.h:44:21: error: string.h: No existe el fichero ó directorio /usr/lib/ruby/1.8/i486-linux/ruby.h:54:19: error: stdio.h: No existe el fichero ó directorio /usr/lib/ruby/1.8/i486-linux/ruby.h:71:20: error: alloca.h: No existe el fichero ó directorio En el fichero incluído de /usr/lib/gcc/i486-linux-gnu/4.2.3/include/syslimits.h:7, de /usr/lib/gcc/i486-linux-gnu/4.2.3/include/limits.h:11, de /usr/lib/ruby/1.8/i486-linux/ruby.h:91, de unicode.h:5, de unicode.c:3: /usr/lib/gcc/i486-linux-gnu/4.2.3/include/limits.h:122:61: error: limits.h: No existe el fichero ó directorio En el fichero incluído de /usr/lib/ruby/1.8/i486-linux/ruby.h:718, de unicode.h:5, de unicode.c:3: /usr/lib/ruby/1.8/i486-linux/missing.h:16:24: error: sys/time.h: No existe el fichero ó directorio /usr/lib/ruby/1.8/i486-linux/missing.h:25:25: error: sys/types.h: No existe el fichero ó directorio In file included from /usr/lib/ruby/1.8/i486-linux/ruby.h:719, from unicode.h:5, from unicode.c:3: /usr/lib/ruby/1.8/i486-linux/intern.h:219: error: expected declaration specifiers or ‘…’ before ‘fd_set’ /usr/lib/ruby/1.8/i486-linux/intern.h:219: error: expected declaration specifiers or ‘…’ before ‘fd_set’ /usr/lib/ruby/1.8/i486-linux/intern.h:219: error: expected declaration specifiers or ‘…’ before ‘fd_set’ /usr/lib/ruby/1.8/i486-linux/intern.h:219: aviso: se declaró ‘struct timeval’ dentro de la lista de parámetros /usr/lib/ruby/1.8/i486-linux/intern.h:219: aviso: su ámbito es solamente esta definición o declaración, lo cual probablemente no es lo que desea /usr/lib/ruby/1.8/i486-linux/intern.h:220: aviso: se declaró ‘struct timeval’ dentro de la lista de parámetros /usr/lib/ruby/1.8/i486-linux/intern.h:454: aviso: nombres de parámetros (sin tipos) en la declaración de la función En el fichero incluído de unicode.h:5, de unicode.c:3: /usr/lib/ruby/1.8/i486-linux/ruby.h:728:21: error: pthread.h: No existe el fichero ó directorio In file included from unicode.h:5, from unicode.c:3: /usr/lib/ruby/1.8/i486-linux/ruby.h:730: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘attribute’ before ‘rb_nativethread_t’ make: *** [unicode.o] Error 1

pdt.. sorry for my poor english

any advantage ??? thanks !!