【发布时间】:2014-06-08 17:50:22
【问题描述】:
我有一系列 perl 脚本,我正在为此编写一个 Makefile.PL 脚本,但我对 ExtUtils::MakeMaker 相当缺乏经验。
我编写的其中一个脚本对必须安装的命令行实用程序进行系统调用,以便脚本正常运行。我的脚本可以优雅地检测到该实用程序丢失并发出有关安装它并将其放入用户路径的错误,但是在 Makefile.PL 脚本中是否有一些标准方法来处理这个问题?如果我在 Makefile.PL 脚本中输入下载链接,它甚至会 gasp 尝试安装第三方实用程序吗?
至少,我希望脚本在未找到外部依赖项时警告用户。我知道我可以编写一个使用它的测试用例。这是否像复制和粘贴我在脚本本身中编写的检查第三方实用程序并在未找到时打印错误的子例程一样简单,或者这是“错误的方法”?
【问题讨论】:
-
您需要什么实用程序?由于 perl 是独立于平台的,因此如果您打算将它添加到 CPAN,它需要在所有平台上都有该实用程序。另一方面,可能已经有该实用程序的 perl 实现,然后您可以将其添加为模块依赖项
-
该实用程序是一个命令行实用程序,它具有适用于大多数系统的二进制文件。它是一种用于 DNA 和蛋白质序列的多序列比对器,称为肌肉 (drive5.com/muscle/downloads.htm)。我使用 IPC::Open3 从我的脚本中调用它。在不知道是否有检查此类命令行依赖项的标准方法的情况下,我只是在 Makefile.PL 中创建了一个子程序来检查它并在它不在用户路径中时发出警告。
标签: perl makefile dependencies external