安装新模块时dmake实际上在做什么?

时间:2010-05-05 22:39:17

标签: perl strawberry-perl

我只是在经过多次努力后才重新安装perl / Tk模块。我意识到我不明白dmake或make等实际上在做什么。

我正在使用安装在C:\ strawberry。的草莓perl。

Fisrt我将模块解压缩到另一个目录并运行perl makefile.pl,它工作正常。然后我尝试了dmake哪个不起作用。我想那些了解其工作原理的人会很明显。

当我将模块放置为C:\ strawberry的子目录时,我可以运行perl makefile.pl,dmake,dmake test和dmake install。

我的猜测是dmake install正在向解释器添加一些可执行文件,并且工作模块必须位于子目录中。是否有任何文章可以解释它在做什么?

2 个答案:

答案 0 :(得分:5)

当您看到Makefile.PL文件时,这意味着它是一个安装系统为ExtUtils::MakeMaker的模块。

EU :: MM是安装Perl模块的经典系统,可追溯到CPAN的曙光。它依赖于这样一个事实:程序make - 一个通用的,强大的依赖关系跟踪工具 - 几乎在每个unix系统上都可用,并且依赖于各种各样的unixy模式和行为。

Makefile.PL是模块作者维护的Perl脚本。它从Perl本身读取有关系统的信息,并使用它来创建Makefile。此Makefile指示make要执行的操作。有关make的详细信息,请查看The Wikipedia page on Make。基本上,make所做的是查看规则,告诉它要制作哪些文件。它以递归方式查看创建“目标”的所有规则(例如,当您键入make install时,'install'是目标)然后跟随它们直到(a)它到达目标或(b)它可怕地爆炸。我们都希望(a),但(b)也是如此。 :)

不幸的是,在Windows-land中,我们没有make。或编译器。通常,无论如何。

dmake是一个make程序,恰好在Windows上运行良好。 Strawberry Perl将您在Windows上类似unix的环境中实际构建所需的所有内容打包成一个方便的软件包,从而实现您实际可能实现的目标。

答案 1 :(得分:2)

这可能过于字面意思,但dmake有一个-v选项(详细

dmake -v

dmake -v target

将显示有关dmake在安装期间正在执行的操作的信息。