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.


Reply via email to