【问题标题】:Imagemagick install from source - No makefile found从源代码安装 Imagemagick - 找不到生成文件
【发布时间】:2019-09-26 05:52:22
【问题描述】:

我正在尝试从源代码安装 ImageMagick。为此,我使用指令here。在执行make 命令之前它一直有效。它说它找不到makefile "cmd": "/usr/bin/make", "msg": "make: *** No targets specified and no makefile found. Stop." 我尝试了不同的目标,例如'all'和'install',但没有目标。目录中有Makefile.amMakefile.in两个文件。

这是我为此设置的 Ansible 剧本中的文本:

- name: register directory name var
  shell: ls -d /path/ImageMagick-*
  register: dir_path

- name: configure imagemagick make
  command: "{{ dir_path.stdout }}/configure"

- name: Build default target
  make:
    chdir: "{{ dir_path.stdout }}"

- name: Run 'install' target
  make:
    chdir: "{{ dir_path.stdout }}"
    target: install

问题似乎出在configure 步骤中,但它似乎已成功完成,或者它应该显示错误消息,我想?这是 Ansible 的输出粘贴:https://pastebin.com/MJjnQeRB

如果我在命令行上运行./configure,然后运行make,它就可以工作。所以这似乎是一个 Ansible 问题。我怎样才能让它发挥作用?

【问题讨论】:

  • configure 步骤最终会做什么?如果正确完成,它应该会创建您的Makefile
  • 好像成功完成了""ImageMagick 7.0.8-66配置如下。请验证此", "配置是否符合您的期望。"
  • 您的期望应该包括“已创建 Makefile”,就像它在 configure 脚本本身的 cmets 中所说的那样。如果它没有这样做,那就是您需要排除故障的部分。
  • 这是从 config 创建 makefile 的输出 "config.status: Creating Makefile", "config.status: Creating magick.sh", "config.status: Creating PerlMagick/check.sh", "config.status: 创建 PerlMagick/default/Magick.pm", "config.status: 创建 PerlMagick/Makefile.PL",

标签: makefile ansible


【解决方案1】:

您的其他目标使用chdir 切换到另一个目录,但您没有为configure 这样做,因此它的输出落在其他地方。您需要在同一目录下运行configuremake

选项 1:也将 chdir: 添加到 configure 配方中。

选项 2:从其他配方中删除 chdir:

选项 3:折叠 configuremake 以在同一配方中运行,以及 chdir: 或不按您的意愿运行。

【讨论】:

  • 谢谢,我使用了选项 1,并使用有效的命令编辑了问题。
  • 您的问题通常应该严格地保留为问题;随意发布您自己的答案,如果您愿意,甚至可以接受。
【解决方案2】:

解决办法是把命令改成包含chdir:

- name: configure imagemagick make
  command: ./configure
  args:
    chdir: "{{ dir_path.stdout }}"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多