i(nstalling)Perl

2shortplanks on 2003-04-19T10:23:44

As it was a blindingly sunny day yesterday, I decided that since I now have a garden I was going to use it. Sitting in the sun with wireless is nice.

While loafing around in the sun I decided to get round to setting up my iBook properly. I've had it for about a month an a half now, and I've been using it side by side with my Linux laptop. The only thing really tying me to using the IBM was the crappy perl installation on the iBook. So I decided to upgrade.

Stop reading here if you don't give two hoots about Perl on a Mac OS X box...I promise you, this is really boring

Installing 5.8.0 to /usr/local/perl5.8.0 and then tweaking the path was easy. It failed two tests, but everyone tells me this is normal - the database libs that ship with 10.2.X are knackered apparently. So, I was feeling pleased with myself, until I booted up the CPAN shell and tried to install something and perl crashed out. Eeek.

Much fiddling later I realise that it's a problem with perl trying to load a 5.6 module from somewhere. Look in @INC...ah, it's trying to load stuff from /sw/lib/perl5 which is where fink stores its modules. Seems the fink startup script sets PERL5LIB. One 'export PERL5LIB=""' in my .bashrc later and everything's working okay. Qudos to pudge for some post that google found that pointed me in the right direction on this one.

I install all the modules I want (including the development version of the Template Toolkit - Andy: it works) and then I get onto installing the XML modules. In particular, I want to install XML::LibXML. Uh-oh, this is a binary module with external dependencies. Worse than that, it requires an old version of libxml2 - everything after 2.4.26 will cause XML::LibXML to fail it's test suite - features it relies on no longer work properly in later versions of the lib.

Of course the easy thing to do would be to install it via fink, but I notice from the website that fink will install 2.5.X...so no go. Much hunting around later (the main mirrors for libxml2 no longer have 2.4.X on them) I manage to get a copy of the original source and then I try compiling it. Oops, need libiconv. Install that to /usr/local/xml and then try endlessly to get libxml2 to compile against it. Problems, problems, problems. richardc helped me hit the Makefile and the libtool setup over the head many times, taking tips from the fink setup, but in the end it had us stumpted. Which is when we notice that fink is out of date on this machine. I upgrade, and just as we're looking for the updated version I notice that there's a install file for libxml2-2.4.24. So simply typing 'fink install libxml2-2.4.24-4' into the terminal caused the computer to magically get the library I wanted. Gah! There's two hours of my life wasted (well apart from the work on my tan.)

Everything else installed smoothly, apart from Text::IconV which is needed for XML::SAX::Machines. It couldn't find libiconv at all (which fink had installed.) I'm not sure what you have to do to get this to work. Sitting richardc down at your computer with a copy of emacs pointing at the Makefile seemed to work for me.

So now I have a working laptop I can do work on with a battery life of more than ten minutes. Hooray. Now all I have to do is make some kind of dent in Mt. Todo.

Spoke too soon. Meta-X ispell-buffer. ispell not found. To fink!


Easy life

Matts on 2003-04-19T18:00:17

There's a perl 5.8.0 on apple's web site (somewhere). It's got an installer. Works beautifully ;-)

Re:Easy life

2shortplanks on 2003-04-20T11:47:08

Interesting. Still, my PERL5LIB would have still been set and it still wouldn't have worked.

Silly fink