cpan - 从命令行轻松与 CPAN 交互
# with arguments and no switches, installs specified modules
cpan module_name [ module_name ... ]
# with switches, installs modules with extra behavior
cpan [-cfFimtTw] module_name [ module_name ... ]
# use local::lib
cpan -I module_name [ module_name ... ]
# one time mirror override for faster mirrors
cpan -p ...
# with just the dot, install from the distribution in the
# current directory
cpan .
# without arguments, starts CPAN.pm shell
cpan
# without arguments, but some switches
cpan [-ahpruvACDLOPX]
此脚本为 CPAN 提供了命令界面(不是外壳)。目前它使用 CPAN.pm 来完成这项工作,但它不是 CPAN.pm 的一次性命令运行器。
使用 CPAN::Shell->autobundle 创建 CPAN.pm 自动捆绑包。
显示指定模块的主要维护者。
在指定模块的目录中运行 `make clean`。
显示指定模块的 Changes 文件
显示模块详细信息。这会为每个过时的模块打印一行(即,在本地已安装但 CPAN 上有较新版本的模块)。每行有三个列:模块名称、本地版本和 CPAN 版本。
强制执行指定的操作,而通常情况下该操作会失败。使用此选项可安装模块,即使其测试失败。使用此选项时,强制安装模块时 -i 不是可选的
% cpan -f -i Module::Foo
关闭 CPAN.pm 尝试锁定任何内容。您应该小心使用此选项,因为您最终可能会遇到多个脚本尝试在同一目录中进行修改。如果您使用 -j
加载特殊配置,并且该配置设置了自己的工作目录,则不必过于担心此问题。
将模块的最新发行版下载到当前目录。
未实现
将模块的最新发行版下载到当前目录,解压缩每个发行版,并为每个发行版创建一个 git 存储库。
如果您需要此功能,请查看 Yanick Champoux 的 Git::CPAN::Patch
发行版。
打印帮助消息并退出。当您指定 -h
时,它将忽略所有其他选项和参数。
安装指定的模块。如果没有其他开关,则此开关是隐含的。
加载 local::lib
(类似于 -I
用于加载库路径)。很遗憾 -l
已被占用。
加载包含 CPAN 配置数据的文件。这应与标准 CPAN/Config.pm 文件具有相同的格式,该文件将 $CPAN::Config
定义为匿名哈希。
以 CPAN.pm 使用的相同格式转储配置。这对于检查配置以及使用转储作为新自定义配置的起点非常有用。
列出所有已安装模块及其版本
按指定作者列出模块。
制作指定模块。
仅用于此运行的镜像的逗号分隔列表。-P
选项可以自动为您找到它们。
进行试运行,但实际上不安装任何内容。(未实现)
显示过时的模块。
ping 配置的镜像并打印报告
查找您可能正在使用的最佳镜像,并在当前会话中使用它们。
使用 CPAN::Shell->recompile 重新编译动态加载的模块。
进入 CPAN.pm shell。如果您未指定任何参数,此命令会自动执行此操作。
对指定模块运行 `make test`。
不要测试模块。只需安装它们。
升级所有已安装的模块。盲目地这样做可能会破坏很多东西,所以请保留备份。
打印脚本版本和 CPAN.pm 版本,然后退出。
打印有关 cpan 客户端的详细信息。
未实现
启用 cpan 警告。这会检查各种内容,例如目录权限,并告诉您可能遇到的问题。
查找与您认为可能输入错误的命名模块非常匹配的内容。这需要可选安装 Text::Levenshtein 或 Text::Levenshtein::Damerau。
将所有命名空间转储到标准输出。
# print a help message
cpan -h
# print the version numbers
cpan -v
# create an autobundle
cpan -a
# recompile modules
cpan -r
# upgrade all installed modules
cpan -u
# install modules ( sole -i is optional )
cpan -i Netscape::Booksmarks Business::ISBN
# force install modules ( must use -i )
cpan -fi CGI::Minimal URI
# install modules but without testing them
cpan -Ti CGI::Minimal URI
CPAN.pm 中有几个组件使用环境变量。构建工具 ExtUtils::MakeMaker 和 Module::Build 使用一些工具,而另一些工具则与它们上方的级别相关。其中一些是由 Perl 工具链帮派指定的
兰开斯特共识:https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/lancaster-consensus.md
奥斯陆共识:https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/oslo-consensus.md
假设无人注意并跳过正确执行此操作的提示。cpan(1)
将此设置为 1
,除非它已具有值(即使该值为假)。
对提示问题使用默认答案。cpan(1)
将此设置为 1
,除非它已具有值(即使该值为假)。
与 PERL5OPT
一样,一个附加的 cpan(1)
选项字符串,添加到您在命令行中指定的选项中。
要使用的日志级别,如果已安装,则使用嵌入式最小记录器或 Log::Log4perl。可能的值与 Log::Log4perl
级别相同:TRACE
、DEBUG
、INFO
、WARN
、ERROR
和 FATAL
。默认值为 INFO
。
用于 Git 功能的 git
二进制文件的路径。默认值为 /usr/local/bin/git
。
如果脚本认为一切都正常,则退出时为零,如果认为某些内容失败,则退出时为正数。但是,请注意,在某些情况下,它必须通过它不控制的内容的输出来判断失败。目前,退出代码很模糊
1 An unknown error
2 The was an external problem
4 There was an internal problem with the script
8 A module failed to install
* 命令行的单次配置值
* 未注明
大多数行为(包括环境变量和配置)直接来自 CPAN.pm。
此代码位于 CPAN.pm 存储库中的 Github 中
https://github.com/andk/cpanpm
源代码过去在另一个 GitHub 存储库中单独跟踪,但规范源代码现在位于上述存储库中。
Japheth Cleaver 添加了允许强制安装 (-f) 的位。
Jim Brandt 建议并提供了最新和更改功能的初始实现。
Adam Kennedy 指出 exit() 会在 Windows 上导致问题,此脚本最终会以 .bat 扩展名结尾
brian d foy,<[email protected]>
版权所有 (c) 2001-2015,brian d foy,保留所有权利。
您可以在与 Perl 相同的条款下重新分发此内容。