首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >公司Perl缺少Makefile.PL或Build.PL

公司Perl缺少Makefile.PL或Build.PL
EN

Stack Overflow用户
提问于 2017-10-04 01:39:22
回答 1查看 2.2K关注 0票数 0

我们在工作中使用perl,但是nt在机器上有安装权限。因此,我想下载我想要的模块的tar文件,并在我选择的目录中构建它们。但是,我没有Makefile.PL或Build.PL。如何继续?

代码语言:javascript
运行
复制
$ which Makefile.PL
/usr/bin/which: no Makefile.PL in ()
$ which Build.PL
/usr/bin/which: no Build.PL in ()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-04 02:12:04

实用程序which (在我的系统上构建的shell)

显示(shell)命令的完整路径。

因此,它可以查询已安装程序的位置,如lscd,它还将显示一个命令实际上是否是一个shell命令。例如,试试which echo

Makefile.PL和/或Build.PL文件附带一个发行版,而不是Perl。它们不是安装在系统上的程序,即使它们在那里,which也找不到它们。

确保阅读带有发行版的文档,特别是关于如何安装它的说明,但是您将从perl Makefile.PLperl Build.PL开始。例如,一旦您在解压缩发行版中找到了文件Makefile.PL,一个典型的进程就是运行

perl Makefile.PL 制作 做试验 制造安装

快速搜索可以发现这是关于僧侣的指南。外面还有更多。

Build.PL通常与模块:构建相关联,安装大纲与上面相同,只是使用./Build而不是make。有了它,您甚至不需要拥有make

这种方法是ExtUtils::MakeMaker的另一种选择,后者使用Makefile.PL。比较这两种主要的选择是很棘手的,我不想谈这个问题。Module::Build还可以生成文件Makefile.PL。两个文件都可以提供,这样就可以使用任何一种方法,而这个决定本身就是一个讨论的主题。

至于您的安装是使用Makefile.PL还是Build.PL,我建议从它自己的文档开始,找到关于该模块的讨论,并查看为该发行版推荐的人。大多数情况下,这两种方法都很好。

另一种相关的常见文件类型是Makefile (没有扩展名)。这是由程序make运行的,并且通常没有参数(make找到Makefile)。上面的第一个命令写入一个这样的文件,然后剩下的make命令使用它来触发构建(+test+install)模块的操作。

您考虑过使用cpancpanm来代替吗?您可以将它们作为用户安装到您选择的目录中。例如,请参见这个职位这个职位

或者,考虑一个包含了所有选择模块的完整perl的百酿,该模块与系统Perl的任何未来管理无关。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46555781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档