Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
"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?
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.
referenced this issue
Sep 3, 2015
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