Назад | Перейти на главную страницу

Для чего вы использовали Makefiles (кроме автоматизации сборки)

Make-файлы отлично подходят для автоматизации сборки, установки и тестирования.

Но это еще не конец Make. Я использовал make-файлы для выполнения многих задач, таких как очистка журналов, сохранение зеркальных веб-страниц и загрузок, подключение их к crontab и тестовые наборы ...

Как и в случае со сценариями, я думаю, что с помощью Makefile можно автоматизировать большие возможности. В частности, если требуется цепочка запуска на основе зависимостей.

Что еще вы делали с помощью Makefiles?
Что вы планируете делать с ними еще, возможно, в дождливый день.

Мое резюме. Вход LaTeX, выход PDF.

Мне очень нравятся Makefiles, особенно для младших сисадминов.

Обновить файл зоны привязки?

Нет проблем: цель имеет checkzone и checkconfig (нехватка памяти) и только sudo cp <editlocation> <reallocation>; git commit -a .... если вроде все нормально ...

Сложный развертывание?

Нет проблем записать это в Makefile

Я в значительной степени использовал Makefile везде, где также был бы уместен сценарий. Фактически я их совмещаю, /usr/local/[s]bin/ здесь находятся "пошаговые" скрипты, а Makefile находится в рабочем каталоге рассматриваемой службы.

На самом деле я использовал их гораздо больше по указанным выше причинам, чем для систем сборки - это если не считать латекс и сборки из апстрима.

Поскольку мы в значительной степени являемся магазином Ruby, я использую Rake вместо Make. Я автоматизировал следующее с помощью Rake, и это не должно быть слишком сложно сделать с помощью Make:

Обслуживание узла EC2. Создание и завершение экземпляров.

Создайте архив и загрузите его на S3.

Развернуть конфигурации сервера; в основном путем вызова rsync для каталогов и прямого копирования файлов синглтонов.

Преобразуйте код Ruby DSL в данные JSON.

Обработка выпусков программного обеспечения в репозитории git (создание новых веток, тегов и т. Д.).

sendmail.cf за 8.9 дней, если я помню.

Я использовал make-файлы для обработки XML-преобразования из источников DocBook. Таким образом, я мог конвейеризовать все команды и делать «make pdf» или «make wordml» из одного и того же источника в зависимости от предполагаемой аудитории.

Не важно. Я считаю синтаксис Makefile ужасным для большинства повседневных задач, и я стараюсь взаимодействовать с Makefile только тогда, когда это абсолютно необходимо. Что касается задач системного администрирования, я не вижу, что они предлагают через скрипт Bash или Python. Для создания программного обеспечения существуют лучшие системы сборки.

Я использовал его для «распечатки всех заметок с момента последней печати» в произвольном каталоге заметок:

printflag: *.txt
    printcmd $?
    echo "printcmd $?" > $@

Я повторил команду в файле флагов, чтобы я мог просто ". Printflag" перепечатать тот же набор, если это необходимо;

для поддержки DNS / DHCP / и т. д .:

edit hosts.dat # maintain single file with all relevant info
make           # work copies for visual check, diffs, etc., if needed
make install   # put into deploy-from-here location
make deploy    # push changed files to servers
make restart   # restart appropriate server processes here and there

(или просто "отредактируйте hosts.dat; сделайте перезапуск" для глупо храбрых)

и как быстрый и грязный способ создания ручных сценариев для процедур - то есть просто используйте псевдо-цели и заставьте команды make-файла отображать что-то вроде "do step Foo" - когда вам нужно что-то более сложное, чем tsort

Я знаю, что некоторые люди использовали скрипт Makefile вместо скриптов инициализации. Это фактически заставило их работать параллельно и определить зависимости между шагами.