GNU Make: проблема с разрешениями при создании файлов
Я использую 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 $@
Как вы можете видеть, я экспериментировал с разрешениями в make-файле. Вот ошибки, которые я получаю при запуске 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: разрешение отклонено make: *** [/home/automation/scripts/nancy_list/reports/2015-08-11.ps] Ошибка 126
Таким образом, он успешно генерирует roff, но не может его обработать - постскриптум выглядит как пустой файл. Я делал подобные проекты с Make раньше - есть что-то новое в отношении разрешений?
1 ответ
Решение
TROFF неправильно установлен не для /usr/bin/troff, а для вашего сгенерированного файла troff.
Вы пытаетесь выполнить ваш сгенерированный файл.