From: shyouhei@... Date: 2016-11-02T02:46:03+00:00 Subject: [ruby-core:77859] [Ruby trunk Bug#8004] spawn does not honor its passed PATH Issue #8004 has been updated by Shyouhei Urabe. Subject changed from Open3 not finding binaries when PATH env var is passed as first arg to spawn does not honor its passed PATH ---------------------------------------- Bug #8004: spawn does not honor its passed PATH https://bugs.ruby-lang.org/issues/8004#change-61174 * Author: Josh Cheek * Status: Open * Priority: Normal * Assignee: * ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.0] * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- =begin #!/bin/sh # make an executable echo '#!/usr/bin/env ruby' > my_bin echo 'puts "omg"' >> my_bin chmod +x my_bin # run it in 1.9 ruby1.9 -v # >> ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0] ruby1.9 -r open3 -e 'p Open3.capture3({"PATH" => ".:#{ENV["PATH"]}"}, "my_bin")' # >> ["omg\n", "", #] # run it in 2.0 ruby2 -v # >> ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin12.2.0] ruby2 -r open3 -e 'p Open3.capture3({"PATH" => ".:#{ENV["PATH"]}"}, "my_bin")' # >> /Users/joshcheek/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open3.rb:211:in `spawn': No such file or directory - my_bin (Errno::ENOENT) # >> from /Users/joshcheek/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open3.rb:211:in `popen_run' # >> from /Users/joshcheek/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open3.rb:99:in `popen3' # >> from /Users/joshcheek/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/open3.rb:279:in `capture3' # >> from -e:1:in `
' # the above fails, but this one works ruby2 -r open3 -e 'ENV["PATH"] = ".:#{ENV["PATH"]}"; p Open3.capture3("my_bin")' # >> ["omg\n", "", #] # it is setting the path, though, so idk what the problem is ruby2 -r open3 -e 'p Open3.capture3({"PATH" => ".:#{ENV["PATH"]}"}, "echo $PATH")' # >> [".:/Users/joshcheek/.rbenv/shims: ... =end -- https://bugs.ruby-lang.org/ Unsubscribe: