Судя по вашему описанию, вы получаете не патчи, а обновленные версии файлов. Что вы можете сделать, так это сохранить текстовые файлы от ванильной установки вашего программного обеспечения в ~/sw_current
с копией в ~/sw_new
. Каждый раз, когда вы получаете обновление, вы должны применять его к ~/sw_new
, слепо копируя файлы и создавая реальный diff
патч:
diff -rupN ~/sw_current/ ~/sw_new/ > update.patch
, который создаст патч с инструкциями, в каких строках обновлять какие файлы, сохраняя при этом остальные файлы в целости и сохранности. Этот патч должен быть применён к вашим реальным установкам:
cd /path/to/software
patch < update.patch
Обратите внимание, что если вы вручную изменили определённую текстовую строку в вашей системе, а затем эта строка была обновлена, применение патча создаст конфликт, который вам придётся разрешить вручную.
После применения обновления не забудьте удалить вашу ваниль ~/sw_current
и скопировать содержимое ~/sw_new
в ~/sw_current
.
Что касается двоичных файлов с обновлениями, вы можете просто скопировать их на всех ваших машинах, перезаписав оригиналы, так как я представляю, что вы никогда не изменяете двоичные файлы.
Раздел .data
содержит сами данные, , то есть четыре байта, которые содержат значение int
5.Секция .symtab
содержит символы, т. е. имена, данные различным частям двоичного файла; имя символа var_global_init
указывает на четыре байта памяти в секции .data
.
Вот почему вы видите только одну запись. :В таблице символов есть только один символ. Но вам нужны оба раздела, если вы хотите перейти от имени к значению :, таблица символов сообщает вам, где найти значение, соответствующее символу var_global_init
, а раздел данных содержит хранилище для значения.