Catalystadventures in webdev with perl install on windowsNOTE: Yes, I know about CatInABox and no, I don't wanna use it for the same reason I don't wanna talk about FreeBSD ports or Debian packages, namely there wouldn't be much left to say, now would there? No action, no suspense, no justified rage and this page would then be too boring for you to read on. OK, let's start with the ingredients for the main dish:
First off, yes, it has to be made by Microsoft, you smartass, Linux is not part of this topic. WinXP Professional is recommended, but any WinXP or Win2K should work. Pretty please don't try this with DOS, as your head will explode and I will not deal with the resulting mess. Use Win9x or WinMe at your own risk as your head might still explode.
Please note that Perl 5.8 is required by Catalyst. Perl 6 will make your head explode. For now.
A decent bandwidth is recommended. Using some crappy 32 Kbit/s dial-up connection with guaranteed disconnect after 15 minutes won't make your head explode, but it will bore you to death. Some optional stuff you might wanna have for the sauce (you can do without it, but it's no fun):
or
Got everything? OK, my goal is to install Task::Catalyst and of course have a fairly complete and tasty install of this framework as a side effect. The PPM WaySince I use ActivePerl and it comes with a package manager (called ppm) let's try to use it, but see also the end of the ppm rant for complication related to upgrading packages from different repositories. Inspired by the Catalyst FAQ, I checked out chansen's ppm repository. Turns out this one is pretty stale (9 months old now, Catalyst version 5.23) and thus quite unpalatable for the discerning cook. What to do? Well, it just so happens that the other ppm repository mentioned there Theoryx5 there has the current version of Catalyst (5.65) so I will use that, adding the other repositort mentioned as a kind of fallback (though I don't think it's really necessary):
So, here we go, and the first to be installed is ... YAML! 0.35? WTF? There is major fuckup-ing going on here. First, it turns out the Task::Catalyst PPM is pretty outdated (1.50 vs. 1.70 current version) and second, ppm seems to install an ancient version of YAML. Meanwhile PPM is chugging on, the little package engine that could, installing like there's no tomorrow, there goes DBIx::Class and it's version 0.03003 (another out-of-date PPM, current version is 0.05007), blah, blah, confirm some Template-Toolkit install stuff (fetch me this and fetch me that), until, suddenly: BOOM Error: Failed to download URL http://home.ngmedia.net/chansen/catalyst/ppms/Catalyst-Plugin-I18N.ppd: 404 Not Found Looks like some dependencies don't even have a ppm provided. So how far did I manage to get along? There are 73 packages installed. I started out with 3 I think (ActivePerl-* and ActiveState-*) so that would make it 70 packages installed before crash (not sure about that). Catalyst is installed, along with DBIx::Class (and DBIC::Loader) and the required Model, Template-Toolkit for views, as well as Catalyst Session (no store) and Authentication (with DBIC store only) Plugins. I take it that Sessions aren't really usable (there's no storing backend) and therefore neither is Authentication (no Session to tie it to). So let's say the install so far is usable but still lacking. What are my options now? I can go to CPAN-based install (but there's no uninstall for that) or I can try to roll my own ppm packages from a fresh source tree of Catalyst. The latter it is then, the action and thrill of building my own packages like every true japh should do. Fetch ye yonder Source TreeSo, let's add to that list of ingredients:
It's the latest in Catalyst technology and therefore some things might explode in your face. In this case seek help either on IRC or on the mailing list while praying fervently to the God of Code Compatibility and Feature Integration, thusly: "Oh, dear Lord, please let this code work with the rest of the stuff, forgive us our sloppy refactoring and lead us not into framework migrations, but deliver us from incompatible API changes, amen". How did I get the source tree? Well, using TortoiseSVN and the aforementioned URL. Just like that. The Building of PackagesMost perl modules are built using one of the three main build systems: ExtUtils::MakeMaker, Module::Build and Module::Install. The first one needs a
So, where were we? Aha, Catalyst::Plugin::I18N. Well, I just went into its source directory (among the ones checked out fromSVN) and ran After that I started the Task::Catalyst install again (though it nagged me that I was actually installing version 1.5 while the fresh source of version 1.7 was already on my hard disk), and everything went smoothly for a while until, yes, you guessed right, another missing package, Catalyst::Plugin::Authentication::Store::Htpasswd this time. No problem, I tought, Back to Task::Catalyst and thar she blowed: Catalyst::Plugin::HTML::Widget, also depending on HTML::Widget which had no ppm, but this time, the sneaky Module::Build offered to install the missing module via CPAN. Oh no, you don't, amigo! I will do this the ppm way, because I promised to. HTML::Widget also had a number of missing dependencies, which I managed to find with ppm and soon we were back in business having Next stop, HTML::Prototype! This time the META.yml was b0rked, but a couple of judiciously placed "-" solved this problem too. Then we stumbled upon Catalyst::Plugin::Authorization::ACL, but this one was a no-brainer, just like Catalyst::Log::Log4perl, which came right after it and Catalyst::Plugin::StackTrace which was the last missing ppm. All solved with a And in the end there it was: Task::Catalyst (version 1.5 nonetheless) in all its glory on Windows. What a beautiful sight to behold! It was just time to move on to... The MoralIs there is anything to learn from this? Well, I learned this:
last updated 1 year ago # |