Авторский канал по разработке на Linux.
Ресурсы, обучения, задачи, шпаргалки.
Ежедневно информация пополняется!
Cотрудничество: @energy_c
Post #1595
955

В Linux можно копировать собранные файлы так, чтобы не менять файл назначения, если новая версия фактически такая же!
Для этого у
Перед установкой
Это принципиально отличается от обычного копирования поверх файла:
Даже если результат сборки идентичен предыдущему, лишняя перезапись может изменить метаданные файла и запустить всё, что следит за его изменением.
С
Причём
🔥
🚪 Linux Ready | #совет
Для этого у
GNU install есть опция -C (--compare):install -C -m 0755 ./build/myapp ./bin/myapp
Перед установкой
install сравнит исходный и существующий файлы. Если содержимое и заданные атрибуты совпадают, файл назначения вообще не будет изменён.Это принципиально отличается от обычного копирования поверх файла:
cp ./build/myapp ./bin/myapp
Даже если результат сборки идентичен предыдущему, лишняя перезапись может изменить метаданные файла и запустить всё, что следит за его изменением.
С
install -C это удобно убрать прямо из Makefile или скрипта локального развёртывания:install -C -m 0755 build/myapp /usr/local/bin/myapp
Причём
install одновременно умеет выставлять права, поэтому отдельный chmod после копирования не требуется:install -C -m 0644 config.ini /etc/myapp/config.ini
🔥
install -C полезен там, где одна и та же сборка устанавливается много раз: неизменившийся файл остаётся нетронутым, а копирование и выставление прав сводятся к одной команде.🚪 Linux Ready | #совет
- 👍 13
- ❤ 7
- 🤝 4
- 🔥 2



















