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
confused):
=====
ppm> install DBIx-Simple # or "i DBIx-Simple"
# --installs distribution
ppm> install DBIx::Simple
Searching for 'DBIx::Simple' returned multiple results. Using 'search'
instead..
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
possible
5. DBIx-SimpleQuery [0.02] Query databases using as little code as
possible
=====
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
reduced verbosity.
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.
--davidm
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.