Previously i’d been using ubuntu in a VM in windows. Finally i’ve taken
the plunge and wiped windows completely and done a proper ubuntu
install. (which was the easiest OS install i’ve EVER done btw - no
driver hassles or anything).
Anyway, i’m trying to get everything set up again for my work (rails
dev). I’ve installed ruby and ruby-gems with apt. Now i’m trying to
get some more gems, but i keep getting this problem (for hpricot in this
case but i also had it with ferret).
max@max-laptop:~$ sudo gem install hpricot
Select which gem to install for your platform (i486-linux)
hpricot 0.6 (jruby)
hpricot 0.6 (mswin32)
hpricot 0.6 (ruby)
hpricot 0.5 (ruby)
hpricot 0.5 (mswin32)
Skip this gem
Cancel installation
3
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 hpricot
extconf.rb:1:in `require’: no such file to load – mkmf (LoadError)
from extconf.rb:1
Gem files will remain installed in /var/lib/gems/1.8/gems/hpricot-0.6 for >inspection.
Results logged to /var/lib/gems/1.8/gems/hpricot-0.6/ext/hpricot_scan/gem_make.out
Doing “gem list” gives me these:
*** LOCAL GEMS ***
rake (0.8.1)
Ruby based make-like utility.
sources (0.0.1)
This package provides download sources for remote gem installation
Actually, looking at this error “no such file to load – mkmf”
makes me think that maybe i need to install ‘make’: is that the case?
If so, is it just a simple “sudo apt-get install make”?
i did “apt-get install ruby1.8-dev” and now i get this massive error
report (follows). In reference to ‘a little gcc’ do you mean that i
need gcc to compile the c code used in the gems? Is that just an
apt-get?
max@max-laptop:~$ sudo gem install hpricot
Select which gem to install for your platform (i486-linux)
hpricot 0.6 (jruby)
hpricot 0.6 (mswin32)
hpricot 0.6 (ruby)
hpricot 0.5 (ruby)
hpricot 0.5 (mswin32)
Skip this gem
Cancel installation
3
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 hpricot
checking for main() in -lc… no
creating Makefile
make
cc -I. -I. -I/usr/lib/ruby/1.8/i486-linux -I. -fPIC
-fno-strict-aliasing -g -g -O2 -fPIC -c hpricot_scan.c
In file included from ext/hpricot_scan/hpricot_scan.rl:9:
/usr/lib/ruby/1.8/i486-linux/ruby.h:40:21: error: stdlib.h: No such file
or directory
/usr/lib/ruby/1.8/i486-linux/ruby.h:44:21: error: string.h: No such file
or directory
/usr/lib/ruby/1.8/i486-linux/ruby.h:54:19: error: stdio.h: No such file
or directory
/usr/lib/ruby/1.8/i486-linux/ruby.h:71:20: error: alloca.h: No such file
or directory
In file included from
/usr/lib/gcc/i486-linux-gnu/4.2.3/include/syslimits.h:7,
from
/usr/lib/gcc/i486-linux-gnu/4.2.3/include/limits.h:11,
from /usr/lib/ruby/1.8/i486-linux/ruby.h:91,
from ext/hpricot_scan/hpricot_scan.rl:9:
/usr/lib/gcc/i486-linux-gnu/4.2.3/include/limits.h:122:61: error:
limits.h: No such file or directory
In file included from /usr/lib/ruby/1.8/i486-linux/ruby.h:718,
from ext/hpricot_scan/hpricot_scan.rl:9:
/usr/lib/ruby/1.8/i486-linux/missing.h:16:24: error: sys/time.h: No such
file or directory
/usr/lib/ruby/1.8/i486-linux/missing.h:25:25: error: sys/types.h: No
such file or directory
In file included from /usr/lib/ruby/1.8/i486-linux/ruby.h:719,
from ext/hpricot_scan/hpricot_scan.rl:9:
/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: warning: ‘struct timeval’
declared inside parameter list
/usr/lib/ruby/1.8/i486-linux/intern.h:219: warning: its scope is only
this definition or declaration, which is probably not what you want
/usr/lib/ruby/1.8/i486-linux/intern.h:220: warning: ‘struct timeval’
declared inside parameter list
/usr/lib/ruby/1.8/i486-linux/intern.h:455: warning: parameter names
(without types) in function declaration
In file included from ext/hpricot_scan/hpricot_scan.rl:9:
/usr/lib/ruby/1.8/i486-linux/ruby.h:728:21: error: pthread.h: No such
file or directory
In file included from ext/hpricot_scan/hpricot_scan.rl:9:
/usr/lib/ruby/1.8/i486-linux/ruby.h:730: error: expected ‘=’, ‘,’, ‘;’,
‘asm’ or ‘__attribute__’ before ‘rb_nativethread_t’
ext/hpricot_scan/hpricot_scan.rl: In function ‘hpricot_scan’:
ext/hpricot_scan/hpricot_scan.rl:185: warning: incompatible implicit
declaration of built-in function ‘memcpy’
ext/hpricot_scan/hpricot_scan.rl:244: warning: incompatible implicit
declaration of built-in function ‘memmove’
make: *** [hpricot_scan.o] Error 1
Gem files will remain installed in /var/lib/gems/1.8/gems/hpricot-0.6
for inspection.
Results logged to
/var/lib/gems/1.8/gems/hpricot-0.6/ext/hpricot_scan/gem_make.out
/usr/lib/ruby/1.8/i486-linux/ruby.h:40:21: error: stdlib.h: No such file
or directory
I would guess you need libglib2.0-dev…
…but the bigger topic here, with one-terabyte notebook hard drives
these days,
is could the GNU packagers relax and start pushing things together into
bigger
and more useful components? Instead of nickel-and-diming us to death
with tiny
and individually useless ~80 kB packages?
As a note, for those that may come across this thread in the future…
‘sudo apt-get install build-essential’
Bit odd that it’s not a dependency of the ruby dev package, isn’t it ?
Hey guys. I’m not sorted after all, argh. Humbly asking for more
help…
My problem is with trying to install the mysql gem.
I did the build-essential install above, that worked fine, but i get ths
when i try to install the mysql gem:
max@max-laptop:~$ sudo gem install mysql
Need to update 1 gems from http://gems.rubyforge.org
.
complete
Select which gem to install for your platform (i486-linux)
mysql 2.7.3 (mswin32)
mysql 2.7.1 (mswin32)
mysql 2.7 (ruby)
mysql 2.6 (ruby)
Skip this gem
Cancel installation
3
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 mysql
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lm… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lz… no
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lsocket… no
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lnsl… yes
checking for mysql_query() in -lmysqlclient… no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
I looked in the relevant mkmf.log file and found a load of stuff that’s
way over my head. There’s loads of errors in it, i’ll just post the
first up:
find_library: checking for mysql_query() in -lmysqlclient… >-------------------- no
“cc -o conftest -I. -I/usr/lib/ruby/1.8/i486-linux -I. -I/usr/local/include -fno-strict-aliasing -g -g -O2 -fPIC conftest.c -L”." -L"/us$
conftest.c: In function ‘t’:
conftest.c:3: error: ‘mysql_query’ undeclared (first use in this function)
conftest.c:3: error: (Each undeclared identifier is reported only once
conftest.c:3: error: for each function it appears in.)
checked program was:
/* begin /
1: /top/
2: int main() { return 0; }
3: int t() { void ((volatile p)()); p = (void (()()))mysql_query; return 0; }
/ end */
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.