[lug] hyperbolic sin() {was: (not)Using CPAN}

Tom Christiansen tchrist at perl.com
Wed Oct 21 13:36:11 MDT 2009


In-Reply-To: Message from Rob Nagler <nagler at bivio.biz>
   of "Wed, 21 Oct 2009 12:17:50 MDT." 
   <3a9f8bfb0910211117n1bc271bes47d9f9240220ae20 at mail.gmail.com>

Rob, I'm not sure how to trim down your message to something 
to do a point-by-point commentary on, but I don't think I need to.

It sounds like you are providing a real add-on service for your customers,
something that sits on top of the massively replicated CPAN repository
and provides quite a bit of important functionality than CPAN.pm itself
does.  This is good.  If I were dealing with customers, I'd certainly want 
a lot more than what I currently know about what CPAN.pm does, or can do.
In fact, I have, although it was long ago and far away.  Standing between
support and development (which was my job, before moving on to internal
tools and later to real-time kernels), I pressed for and got the installation
framework to support some of the things you mentioned.  I think anybody 
in that job who looked at such things would do the same.

I was starting to smell what seemed at best a misunderstanding and at worst
actively spreading some FUD or leyenda negra about CPAN. I was mostly
disagreeing with the idea that there was something inherently "wrong" with
CPAN.  I have no quibble with adding functionality above it and around it.
I don't even have a problem with changing it in a safe and sound fashion.

That said, there's more going on with it now than I've ever used.  Have
you read about the YAML bits?  I don't know whether any of the metadata
you enjoy is there.  The CPAN.pm manpage does say:

    If the "YAML" or the "YAML::Syck" module is installed a record of the
    internal state of all modules is written to disk after each step.  The
    files contain a signature of the currently running perl version for
    later perusal.

But I really don't know how rich those state data are.  I haven't looked
into it; the manpage for CPAN.pm alone is more than 2,000 lines.  I can't
blame anyone for not knowing all its ins or outs.  I don't myself.

And then there's Jos Boumans's CPANPLUS.pm module, which is a whole nother
take on matters.  Jos is pretty darned clever, so there are probably things
there I should play with.

As for conflicts between vendor packages and CPAN installations, oh gosh yes
I've certainly encountered Catch-22 problems with packaging systems fighting
it out with CPAN, where you just could not win.  I tried for a while
to have shared trees, but it just grew too complicated for me.  That's why
I have separate trees now.  All my own are shared, but the system ones,
even from getting a vendor-package, are distinct.  It was too hard otherwise.

I've also had problems with some of the ways that the Linux RPMs for Perl 
work (or rather, don't).  That's why I gave up on them, too.

Vendor stuff goes in vendor trees.  My development kits go in my trees.
If I say package install, then it goes to the vendor, whether in /opt
or /usr/local/bin/ or wherever the platform feels like.  If I say 
"perl -MCPAN -e 'install X::Y::Z' " then it does in my trees.  It's 
the only way I've been able to keep them from breaking each other.

--tom



More information about the LUG mailing list