perl-module – 使用cpanm安装Perl模块
也许这是一个愚蠢的问题?如果我安装像File这样的模块
cpanm File 它会在File下安装所有内容,比如File:Listing等吗? 解决方法
这不是一个愚蠢的问题,我可以理解你为什么不想尝试它.
但你可以继续做下去 cpanm File 并且很少会发生,因为没有名为File的模块. CPAN上的模块按分发组织.单个分发可以包含一个或多个相关模块,因此cpanm首先检查哪个分发包含您要求的模块并获取它. 检查该分布的依赖性,如果有任何已经过时或根本没有安装,那么它将依次获取并安装每个分发.最终要么解决所有依赖关系,要么会出现阻止cpanm继续进行的严重错误. 安装所有依赖项后,可以解压缩并安装包含模块的分发. 一切都很好,这是事情的结束,所以简而言之 cpanm File 什么都不安装,因为没有File模块. cpanm File:Listing 将安装包含File :: Listing的发行版,在撰写本文时,它是GAAS / File-Listing-6.04.tar.gz 该分发也恰好包含这些模块 File::Listing::apache File::Listing::dosftp File::Listing::netware File::Listing::unix File::Listing::vms 所以cpanm将首先确保所有这些模块的依赖关系得到满足,并在相同的基础上递归递归. 请注意,尝试使用cpan命令可能很有用,该命令具有更全面的命令集.最重要的是,它将按名称或正则表达式列出模块,发行版,作者和包. 输入cpan并获取提示 cpan> 什么时候可以要求 cpan> help 它将列出可用命令的摘要.例如,我可以检查File :: Listing模块 cpan> m File::Listing 看这样的作者,发行版(“CPAN_FILE”),版本等 Module id = File::Listing CPAN_USERID GAAS (Gisle Aas <gisle@ActiveState.com>) CPAN_VERSION 6.04 CPAN_FILE G/GA/GAAS/File-Listing-6.04.tar.gz UPLOAD_DATE 2012-02-15 MANPAGE File::Listing - parse directory listing INST_FILE C:StrawberryperlvendorlibFileListing.pm INST_VERSION 6.04 我也可以使用正则表达式查找具有相似名称的发行版 cpan> d /File-Listing/ 看到有两个匹配的发行版 Distribution GAAS/File-Listing-6.04.tar.gz Distribution PLICEASE/File-Listing-Ftpcopy-0.05.tar.gz 2 items found 我可以看看Gisle Aas的文件列表分发 cpan> d GAAS/File-Listing-6.04.tar.gz 我被告知该发行版的成员模块(“CONTAINSMODS”)等等 Distribution id = G/GA/GAAS/File-Listing-6.04.tar.gz CPAN_USERID GAAS (Gisle Aas <gisle@ActiveState.com>) CPAN_VERSION 6.04 CONTAINSMODS File::Listing File::Listing::apache File::Listing::dosftp File::Listing::netware File::Listing::unix File::Listing::vms UPLOAD_DATE 2012-02-15 cpanm没有这样的浏览功能,所以我建议你尝试使用cpan本身并使用m和d命令一段时间,同时使用全名和正则表达式模式. 一旦了解了CPAN存储库的结构,您就会发现cpanm对于一般用途更快更精确. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |