These are typical error messages / scenarios that you may encounter at various stages of building Rubinius, along with the typical causes and solutions.
Before anything else
-
Make certain that you do not have an old version of Rubinius installed somewhere. Executing new code using the old libraries will end in tears. The name should be
librubinius-*and the typical location is/usr/local/lib/or/usr/libbut you can usefindto make sure you get everything in case your install location is strange. - Old .rbc files may be getting in the way. 'rake clean build' should eliminate these problems.
C Compilation Errors
"undefined reference to '[some symbol]"
Try `rake distclean build` to make sure the entire C codebase is rebuilt.
"error: IN_DONT_FOLLOW not declared"
On Linux at least, the inotify library may be used but for some reason, some distributions' sys/inotify.h does not have the necessary constants. You can either disable it in the configuration or try to use updated header files at least from here .
"Unable to compile [extension].so/dylib/etc."
First, even if an extension fails to build, you should still be OK. Try shotgun/rubinius -v to verify that Rubinius itself works.
"glibtool: link: cannot build libtool library `librubinius.la' from non-libtool objects: ..." (Mac OS X)
Make sure your glibtool is at least version 1.5. You may also have multiple versions installed, use `which glibtool` to locate the one that is currently being picked up. Typically this problem occurs if you have an outdated version in /sw/bin/glibtool and a newer one in /usr/bin/glibtool.
"MACOSX_DEPLOYMENT_TARGET ..."
The error message is probably complaining that it is supposedly set to 10.1 or something; you can override this by giving the env explicitly on the command line. The Rubinius code seems to be correct though so it is likely you have that invalid #define in your system headers somewhere.
Ruby Build Errors
"... in `initialize': uninitialized constant Mutex::Channel"
Unset $RUBYOPT (usually set for Gems.)
"Unable to find [ClassName]"
These are caused by some load order dependency not being properly constructed. Determine which file needs which other file and insert a "depends on [file].rb", then rake build : load_order.
"Unable to find 'kernel/bootstrap/archive.rbc'" -- "Unable to run runtime/stable/bootstrap.rba"
Either:
-
You have accidentally deleted/moved/etc. something in
runtime/and you can probably restore it with a quickgit checkout runtime/; or - Something is breaking in the loader, break out the GDB.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
0.10—69% complete
Completed 9 of 13 tickets
Pages
- Home
- FAQ
- IRC Info and Who's Who
- Releases
- Using Git
- Installation
- Getting Started
- Common Build Problems and Solutions
- Howto - Contribute
- Howto - Write a ticket
- Howto - Run my Rails app with Rubinius
- Howto - Write a Ruby spec
- Howto - Write a Rubinius spec
- Howto - Fix a failing spec
- Howto - Develop with a separate RubySpec repo
- Howto - Debug shotgun
- The Rubinius specs
- Shotgun - The Rubinius Virtual Machine
- Developer Readme
- Core Library - Coding Guidelines
- Coding Style Guide
- Contributor Platforms
- Stuff to read
- Extending Standard Library Specs
- Improve Gem Support in Rubinius
- Actors - Concurrent Rubinius
- FFI or Foreign Function Interface
