On Thu, 16 Feb 2006, Greg Millam wrote:

> And lo, the client came from afar and said, "Thou shalt make me a web 
> application," and mod_ruby and PageTemplate came to my rescue. And lo, he 
> then said, "Thou shalt interface it with mysql," and ruby-mysql did steppeth 
> up mightily to the task.
>
> But then, said he: "And now, thou shalt maketh an installer to checketh for 
> required versions of installed packages, and thou shalt maketh it install 
> into /opt/thineapp, with subdirectories of cgi-bin, sql, rbsource, data, 
> templates, and all else as thine wish.
>
> And, having said, he left, leaving me with a blank stare as I didst ply the 
> ruby application archive and the mighty rubyforge, looking for a prior 
> example, an application installer, anything to assuage the client.
>
> I'm about to just give in and make a ./configure --prefix=/opt/myapp ; make ; 
> make install script for this, but wanted to ask if there's any ruby 
> installers out there that could do this. setup.rb has served me so well in 
> the past.
>
> In particular, I need these features:
>
> * Check for the needed versions of Ruby, ruby-mysql, etc.

if it were me, i'd simply install the right version of each into /opt.  that
was the client would break your app by doing something like

   gem install mysql  # oops, upgrade breaks everything

so

   ruby :

       export LD_LIBRARY_PATH=/opt/lib
       export LD_RUN_PATH=/opt/lib
       export PATH=/opt/bin

       ./configure --prefix=/opt && make && make install


   gem :

       /opt/bin/ruby setup.rb


   mysql :

     /opt/bin/gem install mysql

> * Do a straight cp into /opt, or a configurable directory, and edit some ruby 
> files to replace a PREFIX with.

i'd consider using yaml here so you don't have to 'edit' them but can easily
generate them.

> And optionally:
>
> * Run some configuring scripts to set up the database, to edit the config.rb 
> for the application (sql passwords, etc), and the like.

same here.

> Has anyone written such an installer before?


similar but simpler

   http://codeforpeople.com/lib/ruby/rq/rq-all-2.3.1/install.sh

if it did this again i'd just install ruby using /bin/sh and then do the rest
in ruby - not sure why i did the whole thing this way.

cheers.


-a

-- 
judge your success by what you had to give up in order to get it.
- h.h. the 14th dali lama