Installing a ruby application and data into /opt/<myapp>

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.

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

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.

Has anyone written such an installer before?

As for what this is: It's a kind of web-based forum intended for medical hospitals, complete with web pages, sample data, etc. It wouldn't really fit anywhere else, and putting it into /usr/bin, /usr/share, etc would be a bit of a stretch.

Thanks!

- Greg

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

ยทยทยท

On Thu, 16 Feb 2006, Greg Millam wrote:

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