у меня есть приложение, которое работает на встроенном устройстве Linux, и время от времени вносятся изменения в программное обеспечение, а иногда и в корневую файловую систему или даже в установленное ядро.
В текущем update system содержимое старого каталога приложения просто удаляется, а новые файлы копируются поверх него. После внесения изменений в корневую файловую систему новые файлы доставляются как часть обновления и просто копируются поверх старых.
Теперь существует несколько проблем с текущим подходом, и я ищу способы улучшить его. ситуация:
Требования:
dd
на флэш-накопителе целевого объекта? Мне абсолютно необходимо какой-то способ управлять версиями корневой файловой системы. Это должно быть сделано таким образом, чтобы я мог вычислить из него какой-то diff
, который можно использовать для обновления rootfs целевого устройства.
Я уже изучал Subversion, поскольку мы используем его для нашего исходного кода, но это не подходит для корневой файловой системы Linux (права доступа к файлам, специальные файлы и т. Д.).
Теперь я создал несколько сценариев оболочки, которые могут дайте мне что-то похожее на svn diff
, но я действительно хотел бы знать, существует ли уже работающее и проверенное решение для этого.
Используя такие diff
, я полагаю, что Тогда обновление просто станет пакетом, содержащим инкрементные обновления на основе известного состояния корневой файловой системы.
Что вы думаете и идеи по этому поводу? Как бы вы внедрили такую систему? Я предпочитаю простое решение, которое можно реализовать в кратчайшие сроки.