[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