Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: why isn't cpan like npm?

by CodeDmitry (Initiate)
on Apr 20, 2018 at 15:31 UTC ( [id://1213259]=note: print w/replies, xml ) Need Help??


in reply to Re: why isn't cpan like npm?
in thread why isn't cpan like npm?

1. Here's a direct paste of me running cpan install Parse::Lex, :\ not a very great experience

quote: As someone who dabbles in JS/JQuery very, very infrequently, can you elaborate on what NPM is for so that those in this neighbourhood who may be ignorant (like me) can get a better picture?

NPM is a package manager that comes with NodeJS installations. I mention it because I want to understand why Perl, a language with much older and experienced scripting community has so much harder to use package manager than NodeJS.

quote: Perl data structures match more closely to JSON structures than any other language.

I have to sidetrack a bit here, Perl modules are largely package based(a weird version of hash tables that are less intuitive to use yet somehow benchmark faster than hash tables). NodeJS modules are just hash tables with a bunch of memory leaks in them.

Replies are listed 'Best First'.
Re^3: why isn't cpan like npm?
by Your Mother (Archbishop) on Apr 20, 2018 at 15:43 UTC

    You got several replies that said you should be using cpanm instead of cpan. I reiterate it. App::cpanminus is easier, and probably better, than the regular cpan tool in every way I can think. The docs show how it can be bootstrapped to install without using cpan.

Re^3: why isn't cpan like npm?
by marto (Cardinal) on Apr 20, 2018 at 15:41 UTC

    Here I run cpan Parse::Lex on an Intel atom based netbook from >10 years ago, with 1GB RAM (559MB currently in use), note that I've run CPAN before so don't have to tell configure it:

    sudo cpan Parse::Lex [sudo] password for marto: CPAN: Storable loaded ok (v2.53_01) Reading '/home/marto/.local/share/.cpan/Metadata' Database was generated on Fri, 16 Feb 2018 10:41:02 GMT Reading '/home/marto/.local/share/.cpan/sources/authors/01mailrc.txt.g +z' CPAN: Compress::Zlib loaded ok (v2.068) ...................................................................... +......DONE Reading '/home/marto/.local/share/.cpan/sources/modules/02packages.det +ails.txt.gz' Database was generated on Fri, 20 Apr 2018 11:17:02 GMT CPAN: HTTP::Date loaded ok (v6.02) ............. New CPAN.pm version (v2.16) available. [Currently running version is v2.11] You might want to try install CPAN reload cpan to both upgrade CPAN.pm and run the new version without leaving the current session. ...............................................................DONE CPAN: LWP::UserAgent loaded ok (v6.15) Fetching with LWP: http://www.cpan.org/modules/03modlist.data.gz CPAN: YAML loaded ok (v1.15) Reading '/home/marto/.local/share/.cpan/sources/modules/03modlist.data +.gz' DONE Writing /home/marto/.local/share/.cpan/Metadata Running install for module 'Parse::Lex' Fetching with LWP: http://www.cpan.org/authors/id/P/PS/PSCUST/ParseLex-2.21.tar.gz CPAN: Digest::SHA loaded ok (v5.95) Fetching with LWP: http://www.cpan.org/authors/id/P/PS/PSCUST/CHECKSUMS Checksum for /home/marto/.local/share/.cpan/sources/authors/id/P/PS/PS +CUST/ParseLex-2.21.tar.gz ok CPAN: File::Temp loaded ok (v0.2304) CPAN: CPAN::Meta::Requirements loaded ok (v2.140) CPAN: Parse::CPAN::Meta loaded ok (v1.4414) CPAN: CPAN::Meta loaded ok (v2.150005) CPAN: Module::CoreList loaded ok (v5.20151213) Configuring P/PS/PSCUST/ParseLex-2.21.tar.gz with Makefile.PL Checking if your kit is complete... Looks good Warning: prerequisite Parse::Template 3.04 not found. Generating a Unix-style Makefile Writing Makefile for Parse::Lex Writing MYMETA.yml and MYMETA.json PSCUST/ParseLex-2.21.tar.gz /usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK Running make for P/PS/PSCUST/ParseLex-2.21.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PSCUST/ParseLex-2.21.tar.gz ---- Parse::Template [requires] Running install for module 'Parse::Template' Fetching with LWP: http://www.cpan.org/authors/id/P/PS/PSCUST/ParseTemplate-3.08.tar.gz Checksum for /home/marto/.local/share/.cpan/sources/authors/id/P/PS/PS +CUST/ParseTemplate-3.08.tar.gz ok Configuring P/PS/PSCUST/ParseTemplate-3.08.tar.gz with Makefile.PL Checking if your kit is complete... Looks good Generating a Unix-style Makefile Writing Makefile for Parse::Template Writing MYMETA.yml and MYMETA.json PSCUST/ParseTemplate-3.08.tar.gz /usr/bin/perl Makefile.PL INSTALLDIRS=site -- OK Running make for P/PS/PSCUST/ParseTemplate-3.08.tar.gz cp lib/Parse/Template.pm blib/lib/Parse/Template.pm Manifying 1 pod document PSCUST/ParseTemplate-3.08.tar.gz /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::H +arness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/l +ib', 'blib/arch')" t/*.t t/debug.t ..... ok t/rt_58128.t .. ok t/test1.t ..... ok t/test2.t ..... ok t/test3.t ..... ok t/test4.t ..... ok t/test5.t ..... ok t/test6.t ..... ok All tests successful. Files=8, Tests=32, 2 wallclock secs ( 0.20 usr 0.02 sys + 1.22 cusr + 0.12 csys = 1.56 CPU) Result: PASS PSCUST/ParseTemplate-3.08.tar.gz /usr/bin/make test -- OK Running make install Manifying 1 pod document Installing /usr/local/share/perl/5.22.1/Parse/Template.pm Installing /usr/local/man/man3/Parse::Template.3pm Appending installation info to /usr/lib/i386-linux-gnu/perl/5.22/perll +ocal.pod PSCUST/ParseTemplate-3.08.tar.gz /usr/bin/make install -- OK PSCUST/ParseLex-2.21.tar.gz Has already been unwrapped into directory /home/marto/.local/share/. +cpan/build/ParseLex-2.21-SyvmkU PSCUST/ParseLex-2.21.tar.gz Has already been prepared Running make for P/PS/PSCUST/ParseLex-2.21.tar.gz cp lib/Parse/ALex.pm blib/lib/Parse/ALex.pm cp lib/Parse/LexEvent.pm blib/lib/Parse/LexEvent.pm cp lib/Parse/Token-t.pm blib/lib/Parse/Token-t.pm cp lib/Parse/Token.pm blib/lib/Parse/Token.pm cp lib/Parse/CLex.pm blib/lib/Parse/CLex.pm cp lib/Parse/Lex.pm blib/lib/Parse/Lex.pm cp lib/Parse/Trace.pm blib/lib/Parse/Trace.pm cp lib/Parse/YYLex.pm blib/lib/Parse/YYLex.pm Manifying 7 pod documents PSCUST/ParseLex-2.21.tar.gz /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::H +arness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/l +ib', 'blib/arch')" t/*.t t/debug.t ..... ok t/rt_58128.t .. ok t/test1.t ..... ok t/test2.t ..... ok t/test3.t ..... ok t/test4.t ..... ok t/test5.t ..... ok t/test6.t ..... ok t/test7.t ..... ok t/test8.t ..... ok All tests successful. Files=10, Tests=29, 3 wallclock secs ( 0.21 usr 0.03 sys + 2.76 cus +r 0.19 csys = 3.19 CPU) Result: PASS PSCUST/ParseLex-2.21.tar.gz /usr/bin/make test -- OK Running make install Manifying 7 pod documents Installing /usr/local/share/perl/5.22.1/Parse/LexEvent.pm Installing /usr/local/share/perl/5.22.1/Parse/Token-t.pm Installing /usr/local/share/perl/5.22.1/Parse/Token.pm Installing /usr/local/share/perl/5.22.1/Parse/Lex.pm Installing /usr/local/share/perl/5.22.1/Parse/CLex.pm Installing /usr/local/share/perl/5.22.1/Parse/YYLex.pm Installing /usr/local/share/perl/5.22.1/Parse/Trace.pm Installing /usr/local/share/perl/5.22.1/Parse/ALex.pm Installing /usr/local/man/man3/Parse::CLex.3pm Installing /usr/local/man/man3/Parse::LexEvent.3pm Installing /usr/local/man/man3/Parse::Token.3pm Installing /usr/local/man/man3/Parse::Trace.3pm Installing /usr/local/man/man3/Parse::ALex.3pm Installing /usr/local/man/man3/Parse::YYLex.3pm Installing /usr/local/man/man3/Parse::Lex.3pm Appending installation info to /usr/lib/i386-linux-gnu/perl/5.22/perll +ocal.pod PSCUST/ParseLex-2.21.tar.gz /usr/bin/make install -- OK

    Are you sure you're not hitting a limit (for example) enforced on your user? Also perl 5.8 is ancient, and as explained earlier, cpanm is much better than cpan. Essentially it looks like you're hitting a system limit and are running a very old perl when the modern world is much better :)

Re^3: why isn't cpan like npm?
by Anonymous Monk on Apr 20, 2018 at 22:22 UTC
    /usr/lib/perl5/5.8/CPAN/Config.pm initialized.

    that answers the question: youre complaining about Perl from 13 years ago

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1213259]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (4)
As of 2024-04-19 21:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found