Martin Boese
10/22/2008 7:43:00 AM
I suggest to use rubygems, even if you don't write libraries or plan to=20
publish your program.
Your layout then should look something like:
=2E
|-- bin
|-- lib
| `-- your_project_name
`-- tests
Now, for all executables that are in 'bin' first line of code:
$: << File.expand_path(File.dirname(__FILE__) + '/../lib')
This allows you to run the development code, but once installed it will use=
=20
the installed files from rubygems.
To deploy, just 'gem install your_project.gem' .. your libs will be found a=
nd=20
the executables are copied in the right place no matter which OS (assuming=
=20
your gemspec file defines 'bindir' and 'executables').
Martin
On Wednesday 22 October 2008 07:21:03 Greg Willits wrote:
> Looking for best practice guidance on dealing with differing paths to
> libraries & gems amongst OSes.
>
> I can write some reasonably decent Ruby at this point, but still a
> padawan when it comes to really understanding the whole *nix ENV thing.
>
> I get that ruby has some default places it looks, and that I can
> manually add paths to $LOAD_PATH, but now I'm starting to develop and
> deploy on different OSes, and I find that my dev system finds libs and
> gems that my server doesn't find.
>
> I can use symlinks to force common paths, or I can put both dev and
> server paths into $LOAD_PATHS, but both of these methods are obviously
> hokey. I bet there's a better way, and I bet that somehow it involves
> paths in etc/profile file, but just not sure how it all goes together.
> Is setting path vars in profile on multiple machines really any better
> than setting up symlinks? It's still customizing each box (automation is
> my friend I know).
>
> I have at least found #!/usr/bin/env ruby to get past hard coded paths
> for that.
>
> dev system =3D OS X 10.4, servers will be 10.4, 10.5, and sometimes Cent
> OS variants.
>
> So, any suggestions for the Right Way=E2=84=A2 ?
>
> -- gw