Мне нужно установить старую версию (N) продукта. Однако его производитель отказался от полной загрузки в пользу ужасного установщика на основе лаунчера, и для версии, которая меня интересует, был выпущен только патч от предыдущей версии (N-1).
Мне удалось получить и успешно установить версию N-1, так как это был просто набор zip-пакетов. Однако патч для версии N содержит diff-заплаты (расширения .rdiff и .xdiff) для пакетов данных (zip-файлы), и хотя я пытался заставить Launcher установить их, но это не удалось и данные были повреждены. (никогда не работал с такими патчами)
Что я знаю об этих патчах diff:
Хотя у меня нет готовой машины с Linux, я могу, если нужно, работать с программным обеспечением для пингвина. Я могу загрузить его с флешки (например, с помощью загрузчика .iso), у меня также есть флешка, достаточно большая, чтобы поместить на нее все данные, поэтому возможности NTFS не требуются.
(Я не тороплюсь, поэтому, пожалуйста, не торопитесь, чтобы дать хороший ответ;) У меня будет доступ к машине с этими файлами через ~ 6 часов, и в любом случае это не критично)
Редактировать №1:
Хотя вчера мне не удалось получить доступ к рассматриваемым файлам, я немного поработал с Google+мозгом.
Видимо софта для того что мне нужно просто не существует, а сам патч сделан на еретический манер.
Файлы выглядят так, будто созданы с помощью утилиты rdiff-backup , в которой, если я не слепой, отсутствует возможность применить обратный патч без настройки репозитория.
Я до сих пор не уверен, следует ли применять патч к упакованным данным или к распакованному каталогу, но его можно легко проверить, когда я, наконец, доберусь до этих файлов.
А теперь еретическая часть, обратный патч diff сделан для превращения более новой версии в более старую ... и эта компания использовала его для применения инкрементного патча? Фу...
Похоже, мне может понадобиться найти спецификации формата файла и просто сделать для него свою собственную утилиту.
Хотя, в конце концов, я не применил исправления различий вручную (мне удалось заставить программное обеспечение применять старые обновления), преследование этой цели привело к достаточному ноу-хау для этого (что показало мне, как «исправить» упомянутое средство обновления программного обеспечения) .
Первым шагом является определение типа diff. Текстовый, двоичный, каталоговый, инкрементальный, декрементный (обратный)... и тогда вам нужно выяснить его точную реализацию. Ух, боль!
Есть несколько подсказок о том, с каким типом патча diff вы имеете дело:
В моей задаче я имел дело со следующими расширениями файлов.
Проверяя заголовки файлов (подписи), которые обычно состоят из двух (word) или четырех (dword/int) байтов. Хотя поиск необработанных подписей не увенчался успехом, мне удалось найти это полезное программное обеспечение File Identifier , в базе данных которого был хотя бы один из форматов diff. (Я добавлю подписи, с которыми я столкнулся в более позднем редактировании)
Результаты были следующими:
(Да, это программное обеспечение настолько прекрасно, что оно использует четыре типа исправлений вместе с обычными обновлениями...)
Короче говоря, Windows — очень плохая платформа для работы с патчами различий. В любом дистрибутиве Linux вы можете найти большую часть необходимого программного обеспечения в репозиториях (DeltaMAX предназначен только для Windows, но должен нормально работать в Wine), и даже если будет доступен только исходный код, его гораздо проще скомпилировать на любом Penguin, чем устанавливать все необходимое. на машине Windows.
Николя Рауль
diff
операции, часто влияют наpatch
команду, которую вы должны использовать.PTwr
Ник Дикинсон-Уайлд
PTwr
Николя Рауль
PTwr