From: TDR Date: 2007-08-10T23:25:03+09:00 Subject: ENV['LD_LIBRARY_PATH'] not changing env Ruby 1.8.6 on solaris 9. I am a newbie. I need to set LD_LIBRARY_PATH within my script as follows: ENV['LD_LIBRARY_PATH'] = '/usr/local/mysql/lib/mysql:/usr/local/ easysoft/unixODBC/lib:/usr /local/easysoft/lib' but it doesn't seem to be "taking". I get the error I would expect to get when LD_LIBRARY_PATH is not set: s00c166.ssa.gov# ruby -r debug process_ond.rb Debug.rb Emacs support available. process_ond.rb:29:def lookup_cid(off_id) (rdb:1) b 95 Set breakpoint 1 at process_ond.rb:95 (rdb:1) c Breakpoint 1, toplevel at process_ond.rb:95 process_ond.rb:95:ENV['LD_LIBRARY_PATH'] = '/usr/local/mysql/lib/ mysql:/usr/local/easysoft/unixODBC/lib:/usr/local/easysoft/lib' (rdb:1) n process_ond.rb:99:$dbh_ditm = DBI.connect("DBI:Mysql:ditm:localhost", "ditmusr", "xxxxxx") (rdb:1) n /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:344: `Could not load driver (ld.so.1: ruby: fatal: libmysqlclient.so.15: open failed: No such file or directory - /usr/local/lib/ruby/site_ruby/1.8/sparc-solaris2.9/ mysql.so)' (DBI::InterfaceError) from /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:344:in `load_driver' from /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:227:in `_get_full_driver' from /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:213:in `connect' from process_ond.rb:99 /usr/local/lib/ruby/site_ruby/1.8/dbi.rb:344: raise InterfaceError, "Could not load driver (#{$!.message})" (rdb:1) But when I set LD_LIBRARY_PATH in my shell, prior to running the script, I don't get this error: s00c166.ssa.gov# setenv LD_LIBRARY_PATH '/usr/local/mysql/lib/mysql:/ usr/local/easysoft/unixODBC/lib:/usr/local/easysoft/lib' s00c166.ssa.gov# ruby -r debug process_ond.rb Debug.rb Emacs support available. process_ond.rb:29:def lookup_cid(off_id) (rdb:1) b 99 Set breakpoint 1 at process_ond.rb:99 (rdb:1) c Breakpoint 1, toplevel at process_ond.rb:99 process_ond.rb:99:$dbh_ditm = DBI.connect("DBI:Mysql:ditm:localhost", "ditmusr", "xxxxxx") (rdb:1) n What am I doing wrong here? TDR