Perl Modules: Difference between revisions

From SlackWiki
Jump to navigation Jump to search
(Copy from old, had no category, placed in Tutorials)
 
(ADDED: upgrade modules)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category::Tutorials]]
[[Category:Tutorials]]
==Getting To The CPAN Prompt==
==Getting To The CPAN Prompt==
To administer your Perl modules you must use the CPAN prompt. To get to the CPAN prompt, <b>as root</b> type:
To administer your Perl modules you must use the CPAN prompt. To get to the CPAN prompt, <b>as root</b> type:


::<code>perl -MCPAN -e shell</code>
::<code>cpan</code>


If this is the first time that you have entered the CPAN shell, you will be asked some set-up questions that will allow the shell to access CPAN's servers to get modules.  Just read the questions and answer them.
If this is the first time that you have entered the CPAN shell, you will be asked some set-up questions that will allow the shell to access CPAN's servers to get modules.  Just read the questions and answer them.
Line 11: Line 11:
::<code>o conf init</code>
::<code>o conf init</code>


==Listing The Installed Modules==
From the BASH prompt:


==Listing The Installed Modules==
'''Easy way'''
As of Slackware 10.2 and Perl 5.8.7- you can look the <code>perllocal.pod</code> file and see the modules.
    instmodsh
    l (L)


::<code>cat /usr/lib/perl5/5.8.7/i486-linux/perllocal.pod</code>


'''Hard way'''
use this Perl program:


A much cleaner way is by using this Perl program:
    #!/usr/bin/perl
    use ExtUtils::Installed;
    my $instmod = ExtUtils::Installed->new();
    foreach my $module ($instmod->modules())
    {
    my $version = $instmod->version($module) || "???";
    print "$module -- $version\n";
    }


::<code>#!/usr/bin/perl</code>
::<code>use ExtUtils::Installed;</code>
::<code>my $instmod = ExtUtils::Installed->new();</code>
::<code>foreach my $module ($instmod->modules())</code>
:::<code>{</code>
:::<code>my $version = $instmod->version($module) || "???";</code>
:::<code>print "$module -- $version\n";</code>
:::<code>}</code>


==Installing New Modules==
==Installing New Modules==
From the CPAN shell prompt, type:
From the CPAN prompt, type:


::<code>install &lt;Some::Module&gt;</code>
    install &lt;Some::Module&gt;




Line 38: Line 41:
==Removing Modules==
==Removing Modules==


A clean way is by using this Perl program:
A clean way is by using this Perl program from the BASH prompt:
 
    #!/usr/bin/perl -w
    use ExtUtils::Packlist;
    use ExtUtils::Installed;
    $ARGV[0] or die "Usage: $0 Module::Name\n";
    my $mod = $ARGV[0];
    my $inst = ExtUtils::Installed->new();
    foreach my $item (sort($inst->files($mod)))
    {
    print "removing $item\n";
    unlink $item;
    }
    my $packfile = $inst->packlist($mod)->packlist_file();
    print "removing $packfile\n";
    unlink $packfile;
 
 
==Upgrade Modules==
From the CPAN prompt, type:
 
    upgrade MODULE::NAME (to upgrade an individual module)
 
'''or'''


::<code>#!/usr/bin/perl -w</code>
    upgrade (to upgrade ALL modules)
::<code>use ExtUtils::Packlist;</code>
::<code>use ExtUtils::Installed;</code>
::<code>$ARGV[0] or die "Usage: $0 Module::Name\n";</code>
::<code>my $mod = $ARGV[0];</code>
::<code>my $inst = ExtUtils::Installed->new();</code>
::<code>foreach my $item (sort($inst->files($mod)))</code>
:::<code>{</code>
:::<code>print "removing $item\n";</code>
:::<code>unlink $item;</code>
:::<code>}</code>
::<code>my $packfile = $inst->packlist($mod)->packlist_file();</code>
::<code>print "removing $packfile\n";</code>
::<code>unlink $packfile;</code>

Latest revision as of 19:48, 29 August 2012

Getting To The CPAN Prompt

To administer your Perl modules you must use the CPAN prompt. To get to the CPAN prompt, as root type:

cpan

If this is the first time that you have entered the CPAN shell, you will be asked some set-up questions that will allow the shell to access CPAN's servers to get modules. Just read the questions and answer them.

If you ever need to re-run the set-up again, enter the CPAN shell and then type:

o conf init

Listing The Installed Modules

From the BASH prompt:

Easy way

    instmodsh
    l (L)


Hard way use this Perl program:

    #!/usr/bin/perl
    use ExtUtils::Installed;
    my $instmod = ExtUtils::Installed->new();
    foreach my $module ($instmod->modules())
    {
    my $version = $instmod->version($module) || "???";
    print "$module -- $version\n";
    }


Installing New Modules

From the CPAN prompt, type:

    install <Some::Module>


Removing Modules

A clean way is by using this Perl program from the BASH prompt:

    #!/usr/bin/perl -w
    use ExtUtils::Packlist;
    use ExtUtils::Installed;
    $ARGV[0] or die "Usage: $0 Module::Name\n";
    my $mod = $ARGV[0];
    my $inst = ExtUtils::Installed->new();
    foreach my $item (sort($inst->files($mod)))
    {
    print "removing $item\n";
    unlink $item;
    }
    my $packfile = $inst->packlist($mod)->packlist_file();
    print "removing $packfile\n";
    unlink $packfile;


Upgrade Modules

From the CPAN prompt, type:

    upgrade MODULE::NAME (to upgrade an individual module)

or

    upgrade (to upgrade ALL modules)