This should be considered a provsional fix. See the comment in the install task. One problem with this approach is that the assumption is the .rb file will have an older date than the .rbc file. Another problem is that it simply masks very bad practice, like looking specifically for a something.rb file instead of relying on the require machinery to do its job. Rubinius will be susceptible to these sorts of bugs.
Rubinius is built with a hard-coded path for where it should locate the core (kernel) library files and the standard library. If the directory is moved, rbx will be unable to find the files. However, you can set RBX_RUNTIME to the location of the kernel files and RBX_LIB to the location of the standard library and rbx should run.
The ./configure script is the root of the configuration data tree. All basic configuration values should be defined by running this script. The data flows out to two primary places: ./config.rb and vm/gen/config.h. The data in config.rb can be loaded to access configuration values in e.g. rake tasks. The data in vm/gen/config.h is used to set the fundamental constants in the VM. All other configuration data is derived from these two locations. For example, lib/rbconfig.rb values are derived from the basic path constants defined via config.h.
Seems that -o /dev/null in gcc causes it to truncate and replace /dev/null, rather than writing to it like a shell would. Oops.