ruby libraly である、POpen4 をインストールします。
関連するページはこちら、
MacOSX & Cygwin on Windows のソフトの事
Mail関係はこちら
ruby 標準のライブラリー open3 では、子プロセスの終了ステータスを得る事が出来ません。なので、open4 を使います。
解凍して、
$ ruby install.rb
するだけ。
その侭インストールしようとすると、パスが無いよと云って怒られます。ruby のロードパスを調べると、次のようになっています。
$ ruby -e 'puts $:' /Library/Ruby/Site/1.8 /Library/Ruby/Site/1.8/powerpc-darwin9.0 /Library/Ruby/Site/1.8/universal-darwin9.0 /Library/Ruby/Site /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin9.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0 .
又、site_ruby は、次のようになっていました。
$ ls -l /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/site_ruby lrwxr-xr-x 1 root wheel 47 Oct 27 10:45 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/site_ruby -> ../../../../../../../../../../Library/Ruby/Site
と云う事で、ユーザーライブラリは、/Library/Ruby/Site 以下にインストールするのが良さそうです。で、Ruby のバージョンにも関係なさそうだったので、
$ ruby ./install.rb -l /Library/Ruby/Site
と、しました。
解凍して、
$ ruby install.rb
するだけ。
特に無し。
open4 附属の、sample/simple.rb から、
require "open4"
pid, stdin, stdout, stderr = Open4::popen4 "sh"
stdin.puts "echo 42.out"
stdin.puts "echo 42.err 1>&2"
stdin.close
ignored, status = Process::waitpid2 pid
puts "pid : #{ pid }"
puts "stdout : #{ stdout.read.strip }"
puts "stderr : #{ stderr.read.strip }"
puts "status : #{ status.inspect }"
puts "exitstatus : #{ status.exitstatus }"