"NotImplementedError: waitpid unsupported or native support failed to load" with 220.127.116.11 on Ubuntu if build tools not installed #3285
Installing JRuby 18.104.22.168 with rbenv and ruby-build in a Docker container running Ubuntu 14.04 and Oracle Java JDK 1.8.0_60.
If we do not install the build-essential package with apt-get first, installing JRuby fails, with the error message:
"NotImplementedError: waitpid unsupported or native support failed to load"
JRuby appears to depend on a library installed as a dependency of build-essentials, but it's not clear which one.
We would prefer not to install build-essentials on a production box, so this is currently a problem for us.
As a workaround, could you specify which .so(s) are required by JRuby to implement its POSIX runtime API?
The text was updated successfully, but these errors were encountered:
On Linux systems I believe all we try to load is libc and licrypt. Perhaps you could trace the startup of the JVM + JRuby and see which library is failing to load? You can also try passing
There are some systems where /tmp is not allowed to contain executable code, breaking our unpack+load of FFI libraries. I don't think that's the case here, though.
It appears that on Ubuntu, libcrypt is installed as libcrypt.so.1, not as libcrypt.so. For example:
Installing libc6-dev creates a symlink for libcrypt.so under /usr/lib. For example:
After that, the library can be loaded by the name libcrypt.so:
Not sure what the solution is, but JRuby should be able to run on production machines that do not have development tools installed.
For me jruby-22.214.171.124 installs just fine (without build essentials). But in order to be able to use it's gem command (to install bundler) I also had to resolve the libcrypy issue first with an
The error I had:
ubuntu@ip-10-0-3-36:~$ /opt/rubies/jruby-126.96.36.199/bin/gem install bundler Fetching: bundler-1.10.6.gem (100%) NotImplementedError: waitpid unsupported or native support failed to load flock at org/jruby/RubyFile.java:298 block in cache_update_path at /opt/rubies/jruby-188.8.131.52/lib/ruby/stdlib/rubygems/remote_fetcher.rb:316 open at org/jruby/RubyIO.java:1126 open at org/jruby/RubyKernel.java:310 cache_update_path at /opt/rubies/jruby-184.108.40.206/lib/ruby/stdlib/rubygems/remote_fetcher.rb:315 download at /opt/rubies/jruby-220.127.116.11/lib/ruby/stdlib/rubygems/remote_fetcher.rb:174 download at /opt/rubies/jruby-18.104.22.168/lib/ruby/stdlib/rubygems/source.rb:210 download at /opt/rubies/jruby-22.214.171.124/lib/ruby/stdlib/rubygems/resolver/activation_request.rb:60 block in install at /opt/rubies/jruby-126.96.36.199/lib/ruby/stdlib/rubygems/request_set.rb:160 each at org/jruby/RubyArray.java:1560 install at /opt/rubies/jruby-188.8.131.52/lib/ruby/stdlib/rubygems/request_set.rb:150 install_gem at /opt/rubies/jruby-184.108.40.206/lib/ruby/stdlib/rubygems/commands/install_command.rb:249 block in install_gems at /opt/rubies/jruby-220.127.116.11/lib/ruby/stdlib/rubygems/commands/install_command.rb:299 each at org/jruby/RubyArray.java:1560 install_gems at /opt/rubies/jruby-18.104.22.168/lib/ruby/stdlib/rubygems/commands/install_command.rb:295 execute at /opt/rubies/jruby-22.214.171.124/lib/ruby/stdlib/rubygems/commands/install_command.rb:202 invoke_with_build_args at /opt/rubies/jruby-126.96.36.199/lib/ruby/stdlib/rubygems/command.rb:307 process_args at /opt/rubies/jruby-188.8.131.52/lib/ruby/stdlib/rubygems/command_manager.rb:168 run at /opt/rubies/jruby-184.108.40.206/lib/ruby/stdlib/rubygems/command_manager.rb:138 run at /opt/rubies/jruby-220.127.116.11/lib/ruby/stdlib/rubygems/gem_runner.rb:54 <top> at /opt/rubies/jruby-18.104.22.168/bin/jgem:21 load at org/jruby/RubyKernel.java:957 <top> at /opt/rubies/jruby-22.214.171.124/bin/gem:4
And after an
/opt/rubies/jruby-126.96.36.199/bin/gem install bundler Fetching: bundler-1.10.6.gem (100%) Successfully installed bundler-1.10.6 1 gem installed