GNU Make:创建文件的权限问题
GNU Make: permissions issue creating files
我正在使用 Make 从 MySQL 数据库中获取一些数据,填充报告并使用 cron 通过电子邮件发送。我在处理 groff 文件时 运行 遇到权限问题。
品牌:
get: $(DATA)
$(DATA):
bash $(GET) $(SQL) > $@
format: $(CONTENT)
$(CONTENT): $(DATA)
bash $(FORMAT) $(DATA) > $@
$(TROFF): $(CONTENT)
cat $(TEMPLATE) $< > $@
chmod a+rw $@
$(PS): $(TROFF)
$(SED) -i '$$ a .TE' $<
$(TROFF) -ms -t -Tps $< > $@
chmod a+rw $@
report: $(REPORT)
$(REPORT): $(PS)
$(PS2PDF) $< >$@
chmod a+rw $@
如您所见,我已经在 makefile 中对权限进行了试验。这是我在 运行ning make:
时得到的错误
/home/automation/scripts/nancy_list/reports/2015-08-11.roff -ms -t -Tps /home/automation/scripts/nancy_list/reports/2015-08-11.roff > /home/auto
/bin/sh: 1: /home/automation/scripts/nancy_list/reports/2015-08-11.roff: Permission denied
make: *** [/home/automation/scripts/nancy_list/reports/2015-08-11.ps] Error 126
因此它成功生成了 roff 但无法处理它 -- 后记作为一个空文件出现。我以前用 Make 做过类似的项目 -- 在权限方面有什么新的东西吗?
TROFF 被错误地设置为 /usr/bin/troff 而不是您生成的 troff 文件。
您正在尝试执行生成的文件。
我正在使用 Make 从 MySQL 数据库中获取一些数据,填充报告并使用 cron 通过电子邮件发送。我在处理 groff 文件时 运行 遇到权限问题。
品牌:
get: $(DATA)
$(DATA):
bash $(GET) $(SQL) > $@
format: $(CONTENT)
$(CONTENT): $(DATA)
bash $(FORMAT) $(DATA) > $@
$(TROFF): $(CONTENT)
cat $(TEMPLATE) $< > $@
chmod a+rw $@
$(PS): $(TROFF)
$(SED) -i '$$ a .TE' $<
$(TROFF) -ms -t -Tps $< > $@
chmod a+rw $@
report: $(REPORT)
$(REPORT): $(PS)
$(PS2PDF) $< >$@
chmod a+rw $@
如您所见,我已经在 makefile 中对权限进行了试验。这是我在 运行ning make:
时得到的错误/home/automation/scripts/nancy_list/reports/2015-08-11.roff -ms -t -Tps /home/automation/scripts/nancy_list/reports/2015-08-11.roff > /home/auto /bin/sh: 1: /home/automation/scripts/nancy_list/reports/2015-08-11.roff: Permission denied make: *** [/home/automation/scripts/nancy_list/reports/2015-08-11.ps] Error 126
因此它成功生成了 roff 但无法处理它 -- 后记作为一个空文件出现。我以前用 Make 做过类似的项目 -- 在权限方面有什么新的东西吗?
TROFF 被错误地设置为 /usr/bin/troff 而不是您生成的 troff 文件。
您正在尝试执行生成的文件。