Code Comments

Programming Forum and web based access to our favorite programming groups.
For Programmers: Free Programming Magazines | New: Database administration forum
Registration is free! Edit your profileCalendarFind other membersFrequently Asked QuestionsSearch -> 
Post New Thread











Thread
Author

Syntax error using cpan leads to bizarre behavior
I would like to report some bizarre behavior I observed when I
accidentally used the wrong syntax when using the 'cpan' command-line
utility.  The environment is Darwin (Mac OS 10.3), Perl 5.8.4.

According to the documentation, the correct way to install a module
using the command-line utility is:

$ cpan module_name

If instead I had simply called

$ cpan

the cpan shell would have been activated, and I would then install a
module as follows:

cpan>install module_name

Recently I  the two when trying to install CPAN module
List::Utils.  I called

$ sudo cpan install List::Utils

Note the extraneous 'install'.  After providing my password, the
output was at first as expected:

CPAN: Storable loaded ok
Going to read /Users/jimk/.cpan/Metadata
Database was generated on Fri, 20 Aug 2004 22:05:12 GMT
CPAN: LWP::UserAgent loaded ok
Fetching with LWP:
ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz
Going to read /Users/jimk/.cpan/sources/authors/01mailrc.txt.gz
CPAN: Compress::Zlib loaded ok
Fetching with LWP:
ftp://ftp.perl.org/pub/CPAN/modules....details.txt.gz
Going to read /Users/jimk/.cpan/sources/modules/02packages.details.txt.gz
Database was generated on Tue, 07 Sep 2004 13:05:17 GMT
Fetching with LWP:
ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz
Going to read /Users/jimk/.cpan/sources/modules/03modlist.data.gz
Going to write /Users/jimk/.cpan/Metadata
Running install for module install

Then, all of a sudden, cpan started to install a *completely
different* module ... something called 'junoscript-perl-6.4I0' that I
had not requested or even heard of.

Running make for J/JU/JUNOS/junoscript-perl-6.4I0.tar.gz
Fetching with LWP:
ftp://ftp.perl.org/pub/CPAN/authors...JUNOS/CHECKSUMS
Checksum for /Users/jimk/.cpan/sources/authors/id/J/JU/JUNOS/junoscript-perl
-6.4I0.tar.gz
ok
Scanning cache /Users/jimk/.cpan/build for sizes
junoscript-perl-6.4I0/
junoscript-perl-6.4I0/lib/
junoscript-perl-6.4I0/lib/JUNOS/
junoscript-perl-6.4I0/lib/JUNOS/Access/

[snip long list of files in junoscript distribution]

CPAN.pm: Going to build J/JU/JUNOS/junoscript-perl-6.4I0.tar.gz

Checking if your kit is complete...
Looks good
Warning: prerequisite Date::Manip 0 not found.
Warning: prerequisite IO::Tty 0 not found.
Warning: prerequisite Parse::Yapp::Driver 0 not found.
Warning: prerequisite XML::DOM 0 not found.
Warning: prerequisite XML::Parser 0 not found.
Warning: prerequisite XML::Parser::PerlSAX 0 not found.
Writing Makefile for junoscript-perl
---- Unsatisfied dependencies detected during
[J/JU/JUNOS/junoscript-perl-6.4I0.tar.gz] -----
IO::Tty
XML::DOM
XML::Parser::PerlSAX
Date::Manip
XML::Parser
Parse::Yapp::Driver
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes] no

At this point I had the presence of mind to say 'no'.  cpan went on to
try to install junoscript but, lacking the dependencies, predictably
(and thankfully) failed.

cp lib/JUNOS/Access/clear_text.pm
blib/lib/JUNOS/Access/clear_text.pm
cp lib/JUNOS/Access/stubs.pm blib/lib/JUNOS/Access/stubs.pm

[snip list of files copied]

Manifying blib/man3/JUNOS::Access::clear_text.3
Manifying blib/man3/JUNOS::Access::stubs.3

[snip list of manifyings]

/usr/bin/make  -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/base-1....Can't locate IO/Pty.pm in @INC (@INC contains:
/Users/jimk/.cpan/build/junoscript-perl-6.4I0/blib/lib
/Users/jimk/.cpan/build/junoscript-perl-6.4I0/blib/arch
/usr/local/lib/perl5/5.8.4/darwin-2level
/usr/local/lib/perl5/5.8.4/darwin-2level /usr/local/lib/perl5/5.8.4
/usr/local/lib/perl5/site_perl/5.8.4/darwin-2level
/usr/local/lib/perl5/site_perl/5.8.4/darwin-2level
/usr/local/lib/perl5/site_perl/5.8.4
/usr/local/lib/perl5/site_perl/5.8.4/darwin-2level
/usr/local/lib/perl5/site_perl/5.8.4 /usr/local/lib/perl5/site_perl .
/usr/local/lib/perl5/5.8.4/darwin-2level /usr/local/lib/perl5/5.8.4
/usr/local/lib/perl5/site_perl/5.8.4/darwin-2level
/usr/local/lib/perl5/site_perl/5.8.4 /usr/local/lib/perl5/site_perl .)
at /Users/jimk/.cpan/build/junoscript-perl-6.4I0/blib/lib/JUNOS/Access.pm
line 41.

[snip list of test failures]

make: *** [test_dynamic] Error 2
/usr/bin/make test -- NOT OK
Running make install
make test had returned bad status, won't install without force

Only at this point did cpan turn to doing what I wanted, i.e.,
installing List::Utils:

Running install for module List::Utils
Running make for T/TB/TBONE/List-Utils-0.06.tar.gz
Fetching with LWP:
ftp://ftp.perl.org/pub/CPAN/authors...ils-0.06.tar.gz
Fetching with LWP:
ftp://ftp.perl.org/pub/CPAN/authors...TBONE/CHECKSUMS
Checksum for /Users/jimk/.cpan/sources/authors/id/T/TB/TBONE/List-Utils-0.06
.tar.gz
ok
List-Utils-0.06/
List-Utils-0.06/Changes
List-Utils-0.06/Makefile.PL
List-Utils-0.06/MANIFEST
List-Utils-0.06/META.yml
List-Utils-0.06/t/
List-Utils-0.06/t/all_tests.t
List-Utils-0.06/Utils.pm

CPAN.pm: Going to build T/TB/TBONE/List-Utils-0.06.tar.gz

Checking if your kit is complete...
Looks good
Writing Makefile for List::Utils
cp Utils.pm blib/lib/List/Utils.pm
Manifying blib/man3/List::Utils.3
/usr/bin/make  -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/all_tests....ok
All tests successful.
Files=1, Tests=7,  0 wallclock secs ( 0.25 cusr +  0.05 csys =  0.30
CPU)
/usr/bin/make test -- OK
Running make install
Installing /usr/local/lib/perl5/site_perl/5.8.4/List/Utils.pm
Installing /usr/local/man/man3/List::Utils.3
Writing /usr/local/lib/perl5/site_perl/5.8.4/darwin-2level/auto/List/Utils/.
packlist
Appending installation info to
/usr/local/lib/perl5/5.8.4/darwin-2level/perllocal.pod
/usr/bin/make install  -- OK

I had installed List::Utils on other systems, so I doubted it had
anything to do with Junoscript -- a fact confirmed by the module's
author.  I then used this same mistaken syntax on two other, similarly
named modules, List::MoreUtils and List::Compare.  Same bizarre
behavior, i.e., first an attempt to install the Junoscript module,
then, once I stopped that from happening, correct installation of the
requested module.  I've looked through the code for List::MoreUtils;
no reference to Junoscript there.  And I wrote List::Compare, so I
know there's no reference to Junoscript there, either.

Once I read the docs more closely, I realize that that extraneous
'install' was triggering the bizarre behavior.  But I have no idea
what the relation is between the extraneous 'install' and Junoscript.

Any ideas?

Report this thread to moderator Post Follow-up to this message
Old Post
Jim Keenan
09-11-04 01:55 AM


Re: Syntax error using cpan leads to bizarre behavior
Also sprach Jim Keenan:

> I would like to report some bizarre behavior I observed when I
> accidentally used the wrong syntax when using the 'cpan' command-line
> utility.  The environment is Darwin (Mac OS 10.3), Perl 5.8.4.
>
> According to the documentation, the correct way to install a module
> using the command-line utility is:
>
>     $ cpan module_name
>
> If instead I had simply called
>
>     $ cpan
>
> the cpan shell would have been activated, and I would then install a
> module as follows:
>
>     cpan>install module_name
>
> Recently I  the two when trying to install CPAN module
> List::Utils.  I called
>
>     $ sudo cpan install List::Utils
>
> Note the extraneous 'install'.  After providing my password, the
> output was at first as expected:
>
>   CPAN: Storable loaded ok
>   Going to read /Users/jimk/.cpan/Metadata
>     Database was generated on Fri, 20 Aug 2004 22:05:12 GMT
>   CPAN: LWP::UserAgent loaded ok
>   Fetching with LWP:
>     ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz
>   Going to read /Users/jimk/.cpan/sources/authors/01mailrc.txt.gz
>   CPAN: Compress::Zlib loaded ok
>   Fetching with LWP:
>     ftp://ftp.perl.org/pub/CPAN/modules....details.txt.gz
>   Going to read /Users/jimk/.cpan/sources/modules/02packages.details.txt.g
z
>     Database was generated on Tue, 07 Sep 2004 13:05:17 GMT
>   Fetching with LWP:
>     ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz
>   Going to read /Users/jimk/.cpan/sources/modules/03modlist.data.gz
>   Going to write /Users/jimk/.cpan/Metadata
>   Running install for module install
>
> Then, all of a sudden, cpan started to install a *completely
> different* module ... something called 'junoscript-perl-6.4I0' that I
> had not requested or even heard of.

[...]

> Once I read the docs more closely, I realize that that extraneous
> 'install' was triggering the bizarre behavior.  But I have no idea
> what the relation is between the extraneous 'install' and Junoscript.

The reason is that Junoscript has a file called 'install.pm' in the
toplevel-directory of the tarball. Since CPAN doesn't need to be fed the
toplevel name of a module but just the name of one of its packages,
trying to install 'install' will yield the above behaviour.

Tassilo
--
$_=q#",}])!JAPH!qq(tsuJ[{@"tnirp}3..0}_$;//::niam/s~=)]3[))_$-3(rellac(=_$({
 pam{rekcahbus})(rekcah{lrePbus})(lreP{re
htonabus})!JAPH!qq(rehtona{tsuJbus#;
$_=reverse,s+(?<=sub).+q#q!'"qq.\t$&."'!#+sexisexiixesixeseg;y~\n~~dddd;eval

Report this thread to moderator Post Follow-up to this message
Old Post
Tassilo v. Parseval
09-11-04 08:55 AM


Re: Syntax error using cpan leads to bizarre behavior
"Tassilo v. Parseval" <tassilo.von.parseval@rwth-aachen.de> wrote in message news:<2qfg6bFu
p3jpU1@uni-berlin.de>...
> Also sprach Jim Keenan:
> 
>
> The reason is that Junoscript has a file called 'install.pm' in the
> toplevel-directory of the tarball. Since CPAN doesn't need to be fed the
> toplevel name of a module but just the name of one of its packages,
> trying to install 'install' will yield the above behaviour.
>
> Tassilo

Which I might have deduced if I had paid more attention to this line
in the printout:
 

And since the cpan utility can take a *list* of module names, once I
frustrated its attempt to install the Junoscript distro, it proceeded
to install the package I wanted in the first place.

Thanks.

jimk

Report this thread to moderator Post Follow-up to this message
Old Post
Jim Keenan
09-11-04 08:55 PM


Re: Syntax error using cpan leads to bizarre behavior
"Tassilo v. Parseval" <tassilo.von.parseval@rwth-aachen.de> wrote in message news:<2qfg6bFu
p3jpU1@uni-berlin.de>...
> Also sprach Jim Keenan:
> 
>
> The reason is that Junoscript has a file called 'install.pm' in the
> toplevel-directory of the tarball. Since CPAN doesn't need to be fed the
> toplevel name of a module but just the name of one of its packages,
> trying to install 'install' will yield the above behaviour.
>
> Tassilo

Which I might have deduced if I had paid more attention to this line
in the printout:
 

And since the cpan utility can take a *list* of module names, once I
frustrated its attempt to install the Junoscript distro, it proceeded
to install the package I wanted in the first place.

Thanks.

jimk

Report this thread to moderator Post Follow-up to this message
Old Post
Jim Keenan
09-13-04 01:56 PM


Re: Syntax error using cpan leads to bizarre behavior
Also sprach Jim Keenan:

> I would like to report some bizarre behavior I observed when I
> accidentally used the wrong syntax when using the 'cpan' command-line
> utility.  The environment is Darwin (Mac OS 10.3), Perl 5.8.4.
>
> According to the documentation, the correct way to install a module
> using the command-line utility is:
>
>     $ cpan module_name
>
> If instead I had simply called
>
>     $ cpan
>
> the cpan shell would have been activated, and I would then install a
> module as follows:
>
>     cpan>install module_name
>
> Recently I  the two when trying to install CPAN module
> List::Utils.  I called
>
>     $ sudo cpan install List::Utils
>
> Note the extraneous 'install'.  After providing my password, the
> output was at first as expected:
>
>   CPAN: Storable loaded ok
>   Going to read /Users/jimk/.cpan/Metadata
>     Database was generated on Fri, 20 Aug 2004 22:05:12 GMT
>   CPAN: LWP::UserAgent loaded ok
>   Fetching with LWP:
>     ftp://ftp.perl.org/pub/CPAN/authors/01mailrc.txt.gz
>   Going to read /Users/jimk/.cpan/sources/authors/01mailrc.txt.gz
>   CPAN: Compress::Zlib loaded ok
>   Fetching with LWP:
>     ftp://ftp.perl.org/pub/CPAN/modules....details.txt.gz
>   Going to read /Users/jimk/.cpan/sources/modules/02packages.details.txt.g
z
>     Database was generated on Tue, 07 Sep 2004 13:05:17 GMT
>   Fetching with LWP:
>     ftp://ftp.perl.org/pub/CPAN/modules/03modlist.data.gz
>   Going to read /Users/jimk/.cpan/sources/modules/03modlist.data.gz
>   Going to write /Users/jimk/.cpan/Metadata
>   Running install for module install
>
> Then, all of a sudden, cpan started to install a *completely
> different* module ... something called 'junoscript-perl-6.4I0' that I
> had not requested or even heard of.

[...]

> Once I read the docs more closely, I realize that that extraneous
> 'install' was triggering the bizarre behavior.  But I have no idea
> what the relation is between the extraneous 'install' and Junoscript.

The reason is that Junoscript has a file called 'install.pm' in the
toplevel-directory of the tarball. Since CPAN doesn't need to be fed the
toplevel name of a module but just the name of one of its packages,
trying to install 'install' will yield the above behaviour.

Tassilo
--
$_=q#",}])!JAPH!qq(tsuJ[{@"tnirp}3..0}_$;//::niam/s~=)]3[))_$-3(rellac(=_$({
 pam{rekcahbus})(rekcah{lrePbus})(lreP{re
htonabus})!JAPH!qq(rehtona{tsuJbus#;
$_=reverse,s+(?<=sub).+q#q!'"qq.\t$&."'!#+sexisexiixesixeseg;y~\n~~dddd;eval

Report this thread to moderator Post Follow-up to this message
Old Post
Tassilo v. Parseval
09-16-04 02:22 AM


Re: Syntax error using cpan leads to bizarre behavior
"Tassilo v. Parseval" <tassilo.von.parseval@rwth-aachen.de> wrote in message news:<2qfg6bFu
p3jpU1@uni-berlin.de>...
> Also sprach Jim Keenan:
> 
>
> The reason is that Junoscript has a file called 'install.pm' in the
> toplevel-directory of the tarball. Since CPAN doesn't need to be fed the
> toplevel name of a module but just the name of one of its packages,
> trying to install 'install' will yield the above behaviour.
>
> Tassilo

Which I might have deduced if I had paid more attention to this line
in the printout:
 

And since the cpan utility can take a *list* of module names, once I
frustrated its attempt to install the Junoscript distro, it proceeded
to install the package I wanted in the first place.

Thanks.

jimk

Report this thread to moderator Post Follow-up to this message
Old Post
Jim Keenan
09-16-04 09:52 AM


Sponsored Links




Last Thread Next Thread Next
Search this forum -> 
Post New Thread

PERL Modules archive

Show a Printable Version Send to friend Email This Page to Someone! subscribe to this thread Receive updates to this thread
Computer Consultants
Programming Jobs
Visual Basic Controls
SQL Server Programming
Webservices
Java Security
Visual Studio
C# Programming
Visual J++
Software engineering
Open source Software
Perl Programming
PHP Programming
ASP Programming
ASP .NET Programming
Visual Basic Programming
Windows Scripting Host
Java Programming
Java Help
Java Beans
VBScript
Cobol
MAC Applications
Unix Programming
Forum Jump:
All times are GMT. The time now is 05:12 PM.

 
Free MCSE Braindumps | Real Estate Topics

Programming forum archive

Copyrights CodeComments.com 2004 - 2006

Powered by vBulletin Copyright 2000-2006 Jelsoft Enterprises Limited.