From: Erik Veenstra Date: 2005-01-18T20:11:06+09:00 Subject: Re: Ignoring RUBYOPT ? - The Solution The problem with RUBYOPT is fixed! Or rather worked-around... I had to add "-T1" to the command line, so ruby.exe didn't parse RUBYOPT, while the application itself still had to run in safe mode 0. Conflicting requirements. The trick is to put "-T1" on the *right place* on the command line: *After* the real work is done, but *before* the main script ruby.exe is going to run. I came up with this: ruby -r ./bootstrap -T1 empty.rb ./realstuff.rb This bootstrap.rb simply loads ARGV.shift (=realstuff.rb). This means that the real stuff is done in safe mode 0. After realstuff.rb and bootstrap.rb have ended, ruby.exe switches to safe mode 1, skips RUBYOPT and runs the main script, which is empty. Voila! Thanks for your ideas. All of you. All ideas and thoughts together put my thoughts in the right direction. Thanks. Oh, by the way... Why is my situation so restrictive? Well, the above contructed command line is run by a little Pascal program, EEE [1], which is the bootstrapping part of RubyScript2Exe [2]. EEE creates an environment (Ruby + App), executes the command line in this environment and finally deletes all temporary files. Because RubyScript2Exe is run on a lot of Ruby installations, I couldn't use a customized Ruby and I couldn't control the environment. The executable created by RubyScript2Exe is run on machines which are even less controled: The ones of the customers... Please send me reports of all bugs and glitches you find when using RubyScript2Exe. Propositions for enhancements are welcome, too. This helps us to make our software better. This thread indicates how complex a tool like RubyScript2Exe can be(come). Someday, I reach a point where it's not possible to do everything myself. I need you, guys! Thanks a lot! gegroet, Erik V. [1] http://www.erikveen.dds.nl/eee/index.html [2] http://www.erikveen.dds.nl/rubyscript2exe/index.html ---------------------------------------------------------------- Show the environment: s:> echo %RUBYOPT% rubygems ---------------------------------------------------------------- Show the scripts: s:> type bootstrap.rb p ["BOOTSTRAP", $SAFE] script = ARGV.shift $0 = script load(script) s:> type empty.rb p ["EMPTY", $SAFE] s:> type realstuff.rb p ["REALSTUFF", $SAFE] p $0 p ARGV ---------------------------------------------------------------- Show the original problem (with RUBYOPT): s:> ruby ./realstuff.rb 'a b' c L:\\prog\\ruby-mingw32\\usr\\local\bin\\ruby: No such file to load -- ubygems (LoadError) ---------------------------------------------------------------- Show the solution: s:> ruby -r ./bootstrap -T1 empty.rb ./realstuff.rb 'a b' c ["BOOTSTRAP", 0] ["REALSTUFF", 0] "./realstuff.rb" ["a b", "c"] ["EMPTY", 1] ----------------------------------------------------------------