我正在尝试从源代码安装ImageMagick。为此,我正在使用此处的说明。它一直工作到执行make
命令。它说它找不到makefile,"cmd": "/usr/bin/make", "msg": "make: *** No targets specified and no makefile found. Stop."
我尝试了不同的目标,例如"全部"和"安装",但没有目标。目录中有 2 个文件Makefile.am
和Makefile.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 问题。我怎样才能让它工作?
您的其他目标使用chdir
切换到另一个目录,但您没有这样做configure
,因此它的输出落在其他地方。 您需要在同一目录中运行configure
和make
。
选项 1:将chdir:
也添加到configure
食谱中。
选项 2:从其他配方中删除chdir:
。
选项 3:折叠configure
并make
在同一配方中运行,并根据需要chdir:
或不运行。
解决方案是更改命令以包含 chdir:
- name: configure imagemagick make
command: ./configure
args:
chdir: "{{ dir_path.stdout }}"