Front page | perl.module-authors |
Postings from November 2005
Re: When CPAN shell cannot find a module
From: David Manura
November 23, 2005 19:49
Re: When CPAN shell cannot find a module
Message ID: 438537AF.email@example.com
Well, I'm glad someone brought this up.
I've always gotten the CPAN shell's "i" and "install" commands mixed up
and have often wanted to pass a distribution name to it. First, the
online help ("?" command) and error messages are not entirely helpful.
Second, "i" appears too much like a shortcut for "install". And third,
the CPAN shell's "install" command very much resembles ActiveState's PPM
"install" command, but the latter expects you to specify a distribution
name and also has "i" as a shortcut (you can see why one would get
ppm> install DBIx-Simple # or "i DBIx-Simple"
# --installs distribution
ppm> install DBIx::Simple
Searching for 'DBIx::Simple' returned multiple results. Using 'search'
Searching in Active Repositories
1. DBIx-Simple [1.26] Easy-to-use OO interface to DBI
2. DBIx-Simple-OO [0.01] Retrieve database rows as objects
3. DBIx-Simple-OO [0.01] Retrieve database rows as objects
4. DBIx-SimpleQuery [0.02] Query databases using as little code as
5. DBIx-SimpleQuery [0.02] Query databases using as little code as
The other gripes I've had about the CPAN shell are it's verbosity (e.g.
tons of meaningless messages like "LWP not available"), the
cumbersomeness in figuring out how to fix a broken urllist, and the
sheer number of questions it asks you when you go to first configure
it. I don't want to specify that my pager will be /usr/bin/less. In
fact, I don't want to configure anything. I just want to say "install
ABC-XYZ" (much like PPM), and _iff_ there is any ambiguity, then prompt
me with suggestions (help me out a little). All-in-all, it seems that a
simple thing like this should be simple:
"I just want to install ABC-XYZ (i.e. the latest version of this
distribution, and I don't care how you do it)."
I tried out CPANPLUS tonight, which I read is the next generation CPAN
shell. I find some improvements here in terms of online help and
Cygwin (www.cygwin.com) has an example of a fairly user-friendly
installer. However, even this could be improved: it could ask fewer
questions (or not repeat them every time it is run), and a
search/filtering tool would be useful since the Cygwin package list is
getting quite lengthy.
Christopher Hicks wrote:
> On Mon, 21 Nov 2005, Ken Williams wrote:
>> Think about what would happen if Satan uploaded a malicious
>> distribution called "PathTools" with a higher version number than
>> mine. You'd want the whole world to get Satan's distribution by
>> default, just so they can save a couple keystrokes?
> Any ambigious situations such as that could easily be handled by
> asking the user "KWILLIAMS and SATAN both are providing PathTools,
> which would you like?" or having it spit out a list of choices and let
> the user implicitly pick by then doing the "install AUTH/dist...gz" at
> that point. Is there some REAL chance of harm in what we're talking
> about here that couldn't be trivially ameliorated such as here?
> My previous suggestion of having an explicit mapping would help avoid
> getting the wrong person's PathTools. It wouldn't have to track
> versions in the map since "PathTools" could map to KWILLIAMS/PathTools
> and determine the latest from that. And as I pointed out the issue
> here isn't merely distnames, but common misimpressions. Being able to
> "install Template::Toolkit" won't cause the universe to blow-up.
>> Also, "lack of distname support" is overblowing the situation.
>> Distnames are supported perfectly fine as long as you put it in the
>> proper syntax with author's ID and version.
> The proper syntax in this case is unnecessarily complex and utterly
> nonobvious to all but the Perl cognescenti. That seems a pretty harsh
> way to treat sysadmins stuck with installing Perl-based applications
> who may have no prior Perl experience whatsoever. If there were some
> real harm in making it easier it might make sense to me, but maybe
> somebody can share with me something that's not a red herring that
> will help me get it.