Installing Catalyst Isn’t A Destination, It’s A Journey

When I’m learning some new thing, if I’m lucky, there’s a bunch of documentation, tutorials, and examples I can use to get started. Once I’m marginally proficient, I like to go back and revisit those items for a variety of reasons. For example:

  • I now have some context for ideas that weren’t clear before, and they make more sense.
  • I can understand why the author made some of the choices they did when selecting what to say (or not say) on a particular subject.
  • I have more ability to fiddle with the examples, and try some of the things I may have learned.

Generally, going back through some of the basics let’s me “fill in” some of the stuff I may have missed the first time around or “unlearn” some bad habits I may be acquiring. It also helps give me a more solid foundation and more complete understanding to build on.

So, I’m going back through the Catalyst Tutorial. Apparently, in the time between when I first went through it and today, elements of the tutorial have been updated (yay!) and I need to update a zillion components of Catalyst, DBIx, SQLite, etc. (boo!)

So far this evening, I’ve spent more time running CPAN than flipping through the tutorial.

I respect the fact that the Tutorial has been kept up-to-date. That’s really great. I get the point that “current” is a moving target, especially for projects (like Catalyst) that are composed of many moving parts. I just find it a bit daunting that every time I turn around, I need to stop what I’m doing and run CPAN to get the “latest and greatest” version(s) of whatever. I’m halfway to simply putting the damned thing in cron.

Ah! CPAN is done. Again. Back to the other window…

More as it happens.

Bob Simpson


  1. john napiorkowski


    I understand that these projects are quick moving. I recommend using a Makefile.PL to track versions, along with local::lib to manage your dependencies. That way you don’t get lost in the confusion.

  2. Bob

    We’re using Makefile.PL for various projects and have a local mirror of CPAN …which still blows my mind just a bit… and that seems to help.

    I really wasn’t thinking I needed to keep a list of dependencies for the Catalyst tutorial. I don’t think the tutorial can avoid this, though. It should be one of the most up-to-date items in the documentation set, right? Maybe the tutorial download should come with its own Makefile.PL, so folks can just run that and get the current software they’ll need.

    I’m trying to avoid using local::lib, as I am working on four very different machines. My main development environment for these projects is a remote machine I SSH to (SuSE), but I also work on or from my desktop (WinXP), a “throw away” laptop (WinXP), and a tiny laptop (SuSE).

    Trying to keep each environment up-to-date (which would require each have a local CPAN mirror ((which would need to be kept up-to-date, so I would either need to update that before I started work, or each machine would need to be left running on the network so it could do that automatically when I wasn’t using it)) or to download each update over the ‘net as necessary) sounds like much more trouble than it’s worth.

  3. Lou

    The tutorial does have a Makefile.PL, as part of Task::Catalyst::Tutorial.

    That still means you have to run that, and let it sit and update many modules. They all stop and ask questions and need attention. Once you’ve updated half of Catalyst, you have to go back and check that everything else that depends on it (since you’re installing globally instead of in local::lib) still works.

    One good thing is that the Catalyst guys are really careful with updates. I have yet to have a Catalyst update break a working app.

    • Bob

      > The tutorial does have a Makefile.PL, as part of
      > Task::Catalyst::Tutorial.

      Hm. I’m not seeing that. In the Intro it says, “You can obtain the code for all the tutorial examples from the catalyst subversion repository” — which I did, and … there it is in each chapter. Ah. I was looking for something in the top level. Well. I learn something new every day…

      I would agree (and am thrilled) that “the Catalyst guys are really careful with updates.” It’s one of the few Open Source projects I’m willing to just keep current without too much worry. (Gold Star to them.)


Leave a Reply

Your email address will not be published. Required fields are marked *