[Catalyst] Distributing and updating Cat apps

Toby Corkindale toby.corkindale at strategicdata.com.au
Thu Apr 1 07:51:00 GMT 2010


On 30/03/10 19:32, Tomáš Znamenáček wrote:
> Hello!
>
> I have a Catalyst application that I would like to upload from the
> development box to the production server. Is there some kind of best
> practice to do that? My requirements:
>
> 1) The process should take care of the dependencies and run the tests
>     before installing. (Let’s say the deps are declared in Makefile.PL
>     or Build.PL.)
> 2) It would be nice to keep the application isolated in one directory
>     so that I can keep several instances under the same account to do
>     primitive staging.
>
> Right now I am updating the application using Git. I push from the
> development box to a headless repository on the production server and
> there is a hook that updates the working copy. This fails (1).
>
> I’ve read something about local::lib, but I’m still not sure about how
> to put things together. This has to be a common scenario, isn’t it? When
> you are finished updating the development version, what do you call to
> upload the update to the production server and what exactly happens
> along the way?

We package things up into Debian-style packages, and then upload those 
to a local repository of packages.
Then servers can just be updated using the standard system tools (apt).
This works quite well.

You have a choice of either packaging up every single Perl dependency 
into a Debian package too (which is a world of pain), or installing all 
your dependencies into a local directory that you ship with the 
application. I recommend the latter.. (you'll still need to include 
dependencies on things like the C libraries for your database client, 
etc though, in the debian control file.)



More information about the Catalyst mailing list