Modifying the PATH envariable


#1

Our app invokes some binary executables (imagine convert image.png).
In order to make deployment error free, I’d like to include them in our
source tree, and add the paths to the ENV[‘PATH’] dynamically.

Is there a cross platform way of doing this? Unix uses ‘:’ as a path
separator, Windows uses ‘;’.

In case you’re wondering how the binaries can be cross platform.
Imaging:
/vendor/bin/i386-linux/
/vendor/bin/i386-mswin32/
require ‘rbconfig’
add_to_path(‘vendor/bin/’ + Config::CONFIG[‘arch’] + ‘/’)

Not sure how to compile cross Linux binaries, though - they’re often
dependent on the distro and even version. Is it enough to compile them
statically linked?


#2

Robert J. wrote:

Our app invokes some binary executables (imagine convert image.png).
In order to make deployment error free, I’d like to include them in our
source tree, and add the paths to the ENV[‘PATH’] dynamically.

Is there a cross platform way of doing this? Unix uses ‘:’ as a path
separator, Windows uses ‘;’.

Not sure how to compile cross Linux binaries, though - they’re often
dependent on the distro and even version. Is it enough to compile them
statically linked?

Can anyobdy get me started with this?


#3

On 1/14/07, Robert J. removed_email_address@domain.invalid wrote:

Robert J. wrote:

Our app invokes some binary executables (imagine convert image.png).
In order to make deployment error free, I’d like to include them in our
source tree, and add the paths to the ENV[‘PATH’] dynamically.

If it’s in the source tree, maybe you can use full paths in the
invocation.

Is there a cross platform way of doing this? Unix uses ‘:’ as a path
separator, Windows uses ‘;’.

File::PATH_SEPARATOR, http://www.rubycentral.com/book/ref_c_file.html
ENV[‘PATH’] << File::PATH_SEPARATOR << ‘new.dir’

See also File::SEPARATOR and File#join