我们在工作中使用perl,但是nt在机器上有安装权限。因此,我想下载我想要的模块的tar文件,并在我选择的目录中构建它们。但是,我没有Makefile.PL或Build.PL。如何继续?
$ which Makefile.PL
/usr/bin/which: no Makefile.PL in ()
$ which Build.PL
/usr/bin/which: no Build.PL in ()发布于 2017-10-04 02:12:04
实用程序which (在我的系统上构建的shell)
显示(shell)命令的完整路径。
因此,它可以查询已安装程序的位置,如ls或cd,它还将显示一个命令实际上是否是一个shell命令。例如,试试which echo。
Makefile.PL和/或Build.PL文件附带一个发行版,而不是Perl。它们不是安装在系统上的程序,即使它们在那里,which也找不到它们。
确保阅读带有发行版的文档,特别是关于如何安装它的说明,但是您将从perl Makefile.PL或perl 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)模块的操作。
您考虑过使用cpan或cpanm来代替吗?您可以将它们作为用户安装到您选择的目录中。例如,请参见这个职位和这个职位。
或者,考虑一个包含了所有选择模块的完整perl的百酿,该模块与系统Perl的任何未来管理无关。
https://stackoverflow.com/questions/46555781
复制相似问题