我们有perl在工作,但是我没有机器上的安装权限。因此,我想下载所需模块的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 ()
Run Code Online (Sandbox Code Playgroud)
实用程序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
make
make测试
make install
快速搜索即可找到有关perlmonks的指南。还有更多。
在Build.PL通常与相关模块::编译和安装轮廓是相同的,所不同的是,你使用./Build的不是make。有了它,您甚至不需要拥有make。
这种方法是ExtUtils :: MakeMaker的替代方法,后者使用Makefile.PL。比较这两个主要的选择是很棘手的,我宁愿不去讨论。该Module::Build还可以生成该文件Makefile.PL。可以同时提供两个文件,以便一个人可以使用任何一种方法,而此决定本身就是讨论的主题。
至于是使用Makefile.PL还是Build.PL安装,我建议从其自己的文档开始,对该模块进行讨论,并查看推荐该发行版的人员。通常大多数情况下都很好。
另一个相关的常见文件类型是Makefile(无扩展名)。这是由程序运行的make,通常没有参数(make找到 Makefile)。上面的第一个命令将一个这样的文件写出,然后其余make命令使用它来触发构建(+测试+安装)模块的操作。
您是否考虑过改用cpan或cpanm?您可以使用它们以用户身份将内容安装到您选择的目录中。例如,请参阅这篇文章和这篇文章。
或者,考虑将perlbrew用作包含所有选定模块的完全包含的Perl,并与将来对系统perl的管理隔离开来。
| 归档时间: |
|
| 查看次数: |
959 次 |
| 最近记录: |