赞
踩
Perl 学习交流QQ群,欢迎加入:909619846
CPAN(Comprehensive Perl Archive Network : 全面的Perl存档网络)
CPAN 安装工具有以下几种:
其中 CPANM 是目前最常用的一种
这里我们搜索 restful,第一个得到 Mojolicious::Plugin::RESTful - A Mojolicious Plugin for RESTful HTTP Actions
https://metacpan.org/pod/Mojolicious::Plugin::RESTful
点击左边 Tools – Install Instructions
我们可以得到两种安装方式: cpanm
和 cpan
,下面具体介绍下这两个安装工具的使用
Mac 预装了 cpan,终端输入 cpan,第一次会提示你一些配置信息
第一次使用
$ cpan
Loading internal logger. Log::Log4perl recommended for better logging CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.
Would you like to configure as much as possible automatically? [yes] yes
Use of uninitialized value $what in concatenation (.) or string at /System/Library/Perl/5.30/App/Cpan.pm line 679, <STDIN> line 1.
<install_help>
Warning: You do not have write permission for Perl library directories.
To install modules, you need to configure a local Perl library directory or escalate your privileges.
CPAN can help you by bootstrapping the local::lib module or by configuring itself to use 'sudo' (if available).
You may also resolve this problem manually if you need to customize your setup.
What approach do you want? (Choose 'local::lib', 'sudo' or 'manual')
[local::lib]
Autoconfiguration complete.
Attempting to bootstrap local::lib...
Writing /Users/xx/.cpan/CPAN/MyConfig.pm for bootstrap...
commit: wrote '/Users/xx/.cpan/CPAN/MyConfig.pm'
Fetching with LWP: http://www.cpan.org/authors/01mailrc.txt.gz
Reading '/Users/xx/.cpan/sources/authors/01mailrc.txt.gz'
............................................................................DONE
Fetching with LWP: http://www.cpan.org/modules/02packages.details.txt.gz
Reading '/Users/xx/.cpan/sources/modules/02packages.details.txt.gz'
Database was generated on Wed, 10 Aug 2022 08:29:03 GMT
..............
New CPAN.pm version (v2.34) available.
[Currently running version is v2.22]
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
Fetching with LWP:
http://www.cpan.org/modules/03modlist.data.gz
Reading '/Users/xx/.cpan/sources/modules/03modlist.data.gz'
DONE
Writing /Users/xx/.cpan/Metadata
Fetching with LWP:
http://www.cpan.org/authors/id/H/HA/HAARG/local-lib-2.000029.tar.gz
Fetching with LWP:
HASH(0x7fc8d6af25c8)authors/id/H/HA/HAARG/CHECKSUMS
Fetching with LWP:
HASH(0x7fc8d6af25c8)authors/id/H/HA/HAARG/CHECKSUMS.gz
Fetching with LWP:
http://www.cpan.org/authors/id/H/HA/HAARG/CHECKSUMS
Checksum for /Users/xx/.cpan/sources/authors/id/H/HA/HAARG/local-lib-2.000029.tar.gz ok
Configuring H/HA/HAARG/local-lib-2.000029.tar.gz with Makefile.PL
Attempting to create directory /Users/xx/perl5
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for local::lib
Writing MYMETA.yml and MYMETA.json
HAARG/local-lib-2.000029.tar.gz
/usr/bin/perl Makefile.PL --bootstrap -- OK
Running make for H/HA/HAARG/local-lib-2.000029.tar.gz
cp lib/local/lib.pm blib/lib/local/lib.pm
cp lib/lib/core/only.pm blib/lib/lib/core/only.pm
cp lib/POD2/DE/local/lib.pod blib/lib/POD2/DE/local/lib.pod
cp lib/POD2/PT_BR/local/lib.pod blib/lib/POD2/PT_BR/local/lib.pod
Manifying 4 pod documents
HAARG/local-lib-2.000029.tar.gz
/usr/bin/make -- OK
Running make test for HAARG/local-lib-2.000029.tar.gz
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-I/Users/xx/perl5/lib/perl5" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/bad_variables.t ...... ok
t/carp-mismatch.t ...... ok
t/classmethod.t ........ ok
t/de-dup.t ............. ok
t/lib-core-only.t ...... ok
t/pipeline.t ........... ok
t/shell.t .............. ok
t/stackable.t .......... ok
t/subroutine-in-inc.t .. ok
t/taint-mode.t ......... ok
All tests successful.
Files=10, Tests=245, 5 wallclock secs ( 0.06 usr 0.03 sys + 2.21 cusr 1.59 csys = 3.89 CPU)
Result: PASS
HAARG/local-lib-2.000029.tar.gz
/usr/bin/make test -- OK
Running make install for HAARG/local-lib-2.000029.tar.gz
Manifying 4 pod documents
Installing /Users/xx/perl5/lib/perl5/POD2/PT_BR/local/lib.pod
Installing /Users/xx/perl5/lib/perl5/POD2/DE/local/lib.pod
Installing /Users/xx/perl5/lib/perl5/local/lib.pm
Installing /Users/xx/perl5/lib/perl5/lib/core/only.pm
Installing /Users/xx/perl5/man/man3/lib::core::only.3pm
Installing /Users/xx/perl5/man/man3/POD2::DE::local::lib.3pm
Installing /Users/xx/perl5/man/man3/local::lib.3pm
Installing /Users/xx/perl5/man/man3/POD2::PT_BR::local::lib.3pm
Appending installation info to /Users/xx/perl5/lib/perl5/darwin-thread-multi-2level/perllocal.pod
HAARG/local-lib-2.000029.tar.gz
/usr/bin/make install -- OK
local::lib is installed. You must now add the following environment variables
to your shell configuration files (or registry, if you are on Windows) and
then restart your command line shell and CPAN before installing modules:
PATH="/Users/xx/perl5/bin${PATH:+:${PATH}}"; export PATH;
PERL5LIB="/Users/xx/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/Users/xx/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/Users/xx/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/Users/xx/perl5"; export PERL_MM_OPT;
commit: wrote '/Users/xx/.cpan/CPAN/MyConfig.pm'
You can re-run configuration any time with 'o conf init' in the CPAN shell
Terminal does not support AddHistory.
To fix enter> install Term::ReadLine::Perl
cpan shell -- CPAN exploration and modules installation (v2.22)
Enter 'h' for help.
cpan[1]> # 这里进入了交互模式
安装包位于目录: ~/.cpan/build
相关配置文件为:~/.cpan/FTPstats.yml
方式一:进入交互模式,安装
$ cpan
# $ perl -MCPAN -e shell 效果同上
...
cpan[1]> install Switch
cpan[2]> exit # 退出交互模式
方式二:直接使用 cpan install 安装
$ cpan install Switch
$ cpan install XML::LibXML
perl -e 'use XML::LibXML'
不报错即代表安装成功
$ cpan -i Switch
$ brew install cpanminus
安装成功校验
查看版本信息
$ cpanm -V
cpanm (App::cpanminus) version 1.9018 (/usr/local/bin/cpanm)
perl version 5.030003 (perl)
%Config:
archname=darwin-thread-multi-2level
installsitelib=/Library/Perl/5.30
installsitebin=/usr/local/bin
installman1dir=/usr/share/man/man1
installman3dir=/usr/share/man/man3
sitearchexp=/Library/Perl/5.30/darwin-thread-multi-2level
sitelibexp=/Library/Perl/5.30
vendorarch=/Network/Library/Perl/5.30/darwin-thread-multi-2level
vendorlibexp=/Network/Library/Perl/5.30
archlibexp=/System/Library/Perl/5.30/darwin-thread-multi-2level
privlibexp=/System/Library/Perl/5.30
%ENV:
@INC:
FatPacked::140563055820376=HASH(0x7fd76302be58)
/Library/Perl/5.30/darwin-thread-multi-2level
/Library/Perl/5.30
/Network/Library/Perl/5.30/darwin-thread-multi-2level
/Network/Library/Perl/5.30
/Library/Perl/Updates/5.30.3
/System/Library/Perl/5.30/darwin-thread-multi-2level
/System/Library/Perl/5.30
/System/Library/Perl/Extras/5.30/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.30
查看帮助
$ cpanm -h
Usage: cpanm [options] Module [...]
Options:
-v,--verbose Turns on chatty output
-q,--quiet Turns off the most output
--interactive Turns on interactive configure (required for Task:: modules)
-f,--force force install
-n,--notest Do not run unit tests
--test-only Run tests only, do not install
-S,--sudo sudo to run install commands
--installdeps Only install dependencies
--showdeps Only display direct dependencies
--reinstall Reinstall the distribution even if you already have the latest version installed
--mirror Specify the base URL for the mirror (e.g. http://cpan.cpantesters.org/)
--mirror-only Use the mirror's index file instead of the CPAN Meta DB
-M,--from Use only this mirror base URL and its index file
--prompt Prompt when configure/build/test fails
-l,--local-lib Specify the install base to install modules
-L,--local-lib-contained Specify the install base to install all non-core modules
--self-contained Install all non-core modules, even if they're already installed.
--auto-cleanup Number of days that cpanm's work directories expire in. Defaults to 7
Commands:
--self-upgrade upgrades itself
--info Displays distribution info on CPAN
--look Opens the distribution with your SHELL
-U,--uninstall Uninstalls the modules (EXPERIMENTAL)
-V,--version Displays software version
Examples:
cpanm Test::More # install Test::More
cpanm MIYAGAWA/Plack-0.99_05.tar.gz # full distribution path
cpanm http://example.org/LDS/CGI.pm-3.20.tar.gz # install from URL
cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz # install from a local file
cpanm --interactive Task::Kensho # Configure interactively
cpanm . # install from local directory
cpanm --installdeps . # install all the deps for the current directory
cpanm -L extlib Plack # install Plack and all non-core deps into extlib
cpanm --mirror http://cpan.cpantesters.org/ DBI # use the fast-syncing mirror
cpanm -M https://cpan.metacpan.org App::perlbrew # use only this secure mirror and its index
You can also specify the default options in PERL_CPANM_OPT environment variable in the shell rc:
export PERL_CPANM_OPT="--prompt --reinstall -l ~/perl --mirror http://cpan.cpantesters.org"
Type `man cpanm` or `perldoc cpanm` for the more detailed explanation of the options.
直接使用 cpanm xx:xxx
就可以安装了,如
cpanm Mojolicious::Plugin::RESTful
你可以在 metacpan 上查看库的信息,然后进行安装
https://metacpan.org
2022-08-11(三)伊织
Perl 学习交流QQ群,欢迎加入:909619846
更多博主的 Perl 文章:https://so.csdn.net/so/search?q=Perl&t=blog&u=lovechris00
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。