В мире Linux широко используется пара программ diff и patch. diff создает файл, в который записываются различия между 2 файлами или 2 каталогами (т.н. патч), а patch позволяет «наложить» этот патч, т.е. имея патч и один из двух файлов (каталогов), получить другой. Основное применение этих программ — создание, распространение и применение патчей к исходным текстам программ. Например, я нашел ошибку в к.-л. программе и после изучения ее исходного кода понял, что для исправления этой ошибки надо добавить 2 строчки, а еще в одной поменять несколько символов. Я хочу сообщить разработчику об этом, но каким образом указать ему на требуемые изменения? Можно это сделать обычным языком, но гораздо лучше (и удобнее для нас обоих) сделать патч и выслать его разработчику.
Или другой пример. Ядро Linux, упакованное в .tar.bz2, весит более 30 Мб независимо от его версии. Но файл различий между версиями 2.6.6 и 2.6.7, упакованный в .bz2, весит всего 3 Мб, поэтому для получения исходников ядра 2.6.7 из исходников ядра 2.6.6 достаточно скачать лишь 3 Мб, не выкачивая все 32 Мб заново.
Смысл программы App_Id Patch
Впрочем, часто нужно просто посмотреть различия 2 почти одинаковых файлов, и для этого тоже удобно использовать diff, выводя результат его работы не в файл, а прямо на экран.
А теперь посмотрим работу этих утилит на практике. Возьмите какой-нибудь текстовый файл и сделайте его копию, а затем отредактируйте эту копию — 1-2 строчки удалите, что-нибудь добавьте, пару строчек просто поменяйте. Затем запустите diff старый_файл новый_файл. Получите файл различий в обычном формате.
В нем выводятся только измененные строки, и изменения помечены символами < и >(означающими, что соответствующая строка принадлежит левому или правому файлу в командной строке). Этот формат пригоден только для изучения человеком небольших различий между 2 файлами. Для создания патчей используются другие форматы вывода, задаваемые дополнительными опциями, при этом результат работы diff перенаправляется в файл патча стандартными средствами оболочки.
Добавьте к строке вызова diff ключ -u. Теперь вывод программы будет представлять собой патч в унифицированном формате, который используется в большинстве случаев (есть еще контекстный формат, включаемый ключом -c, но он используется намного реже).
В такой патч включаются и несколько соседних неизмененных строк (т.н. контекст), помогающие программе patch найти место в файле, где произошло изменение. Добавленные во 2-м файле строки помечаются плюсами, удаленные — минусами. Если строка изменилась, она выводится 2 раза — старый вариант с минусом и новый с плюсом. Кроме того, в начале добавляется заголовок, в котором указываются имена и даты изменения обоих файлов.
diff позволяет получить различия между двумя каталогами. Это используется, как правило, чтобы получить общий патч ко всему дереву исходников программы, если было изменено несколько файлов. Для этого используются ключи -urN, а вместо 2 файлов указываются имена 2 каталогов (старого и измененного). При этом корректно обрабатываются ситуации с созданными/удаленными файлами (файл, отсутствующий в одном из каталогов, считается существующим и пустым).
Как написать #patch для исполняемого файла
Чтобы наложить патч, надо перейти в каталог, где находится старый файл/каталог, и выполнить команду
При использовании патчей к каталогам обычно делают так: патч создается, как описано выше (тогда в заголовках патчей к отдельным файлам путь к ним будет начинаться с имени нового каталога), а прикладывается он внутри изменяемого каталога. Тогда команда будет выглядеть так:
Здесь -p1 означает, что из заголовков патча надо убрать начальный каталог. Поясню всё это на примере. У нас имеется дерево исходников ядра 2.6.0. Это каталог linux-2.6.0, в котором содержатся каталоги drivers, arch и т.д. И у нас есть патч до версии 2.6.1, в котором содержатся такие заголовки:
— a/drivers/acpi/Kconfig Thu Jan 8 23:00:24 2004
+++ b/drivers/acpi/Kconfig Thu Jan 8 23:00:24 2004
Видим, что при создании патча старый и новый каталоги назывались a и b соответственно. У нас же каталог называется по-другому, и patch ничего сделать не сможет. Поэтому заходим в каталог linux-2.6.0 и выполняем указанную выше команду. Теперь заголовки будут интерпретироваться как
— drivers/acpi/Kconfig Thu Jan 8 23:00:24 2004
+++ drivers/acpi/Kconfig Thu Jan 8 23:00:24 2004
и патч приложится нормально.
Источник: k210.org
Установка патчей – работа с утилитой patch
Thank you for reading this post, don’t forget to subscribe!
Практически каждый разработчик программного обеспечения (ПО), программист или верстальщик сталкивается (и довольно часто) с необходимостью модификации некоторой части рабочего проекта или даже нескольких строк кода. Особенно это актуально, когда в разработке участвует несколько человек, которые могут вносить правки в разных частях проекта. Для удобства и автоматизации действий по составлению таких правок используются специализированные утилиты. Одной из таких является утилита patch и о ней более подробно будет рассказано в данной статье.
Что такое патч?
Говоря о патчах вкупе с утилитой patch, следует подразумевать, что это касается исключительно текстовых данных. Другими словами, происходит работа с исходными кодами проекта, будь то код C++, PHP , HTML и т. д. Вообще, все самые «суровые» программисты или разработчики в процессе своей совместной работы над проектом обмениваются исключительно отдельными правками, а не пересылают друг другу актуальные версии проектов целиком.
Сама правка, т. е. текстовые изменения в исходном коде проектов (для одного его файла или сразу для нескольких) и есть патч или «заплатка». Патч, помимо самих изменений кода содержит также и некоторую служебную информацию, необходимую для правильного «наложения заплатки», т. е. для установки патча. Таким образом, патч — это текстовый файл определённого формата, содержащий в себе данные и инструкции для приведения конечного файла (или проекта) к нужному или актуальному виду.
Утилита patch умеет быстро и эффективно распоряжаться данными из файла-патча, используя для этого хранящиеся в нём инструкции. И таким образом выполняет все рутинные действия по редактированию. Пользователю (разработчику) необходимо лишь правильно выполнить соответствующую команду, задав все необходимые аргументы и опции.
Синтаксис и основные опции команды patch
Нет ничего удивительного в том, что утилита patch относится к категории ПО, которое обязательно должно быть установлено на любой машине для разработки программ, да и вообще для ведения разработки. Практически любой дистрибутив Linux предоставляет утилиту patch предустановленной по-умолчанию.
Стоит также отметить, что по своей функциональности, patch довольно сложна и обладает, без преувеличения, просто огромным набором опций. По этой причине в данной статье будут приведены только самые распространённые приёмы при работе с этой утилитой и только сопутствующие им опции команд. Синтаксис команды patch следующий:
Источник: sidmid.ru
Как использовать патчи для игр
Патч (от англ. patch – заплатка) – это специальная программа, которая призвана исправить некоторые ошибки в уже выпущенной на рынок компьютерной игре. Различают официальные патчи, созданные производителями, и любительские, разработанные фанатами игры.
Статьи по теме:
- Как использовать патчи для игр
- Как устанавливать патчи Warcraft 3 frozen throne
- Как запустить старую игру
Инструкция
Патчи к большинству компьютерных игр можно найти в свободном доступе в интернете. Официальные патчи, как правило, доступны для скачивания на сайте разработчика. Любительские «заплатки» предлагаются на различных сайтах и форумах, посвященных конкретной игре.
Перед скачиванием патча ознакомьтесь с его техническими характеристиками и списком изменений, которые он вносит в игру. Прочитайте отзывы пользователей об этой программе. Учтите, что некоторые патчи могут не соответствовать вашей версии игры и, следовательно, не будут с ней работать. Есть специальные «заплатки», которые могут усовершенствовать вашу версию игры до необходимого уровня.
После загрузки обязательно проверьте любительский патч на наличие вирусов. Если в архиве с «заплаткой» находится файл ReadMe, внимательно его изучите. В нем могут содержаться подробные указания по установке программы и полный список, вносимых в игру изменений.
Сделайте резервную копию игры и сохраните ее в другой раздел жесткого диска. Она вам понадобится, если пропатченная (обновленная) версия программы вас чем-либо не устроит, и вы решите вернуться к старому варианту.
Двойным щелчком левой клавиши мышки запустите файл с патчем. Распакуйте «заплатку» в папку с игрой. Для этого в открывшемся диалоговом окне выберите папку Games, Program Files, найдите директорию с названием игры. Затем откройте ту папку, файлы которой подлежат замене. Как правило, эта информация содержится в описании патча на сайте, где он предлагается для скачивания, или в документе ReadMe.
Нажмите OK и дождитесь завершения установки «заплатки».
Запустите игру. Убедитесь, что все произведенные изменения успешно работают. Если после установки патча, игра перестала запускаться, воспользуйтесь резервной копией, чтобы удалить внесенные в программу изменения.
- как применить патч
Совет полезен?
Статьи по теме:
- Как уменьшить требования игры
- Как устранить ошибку в игре
- Как использовать баги
Добавить комментарий к статье
Похожие советы
- Как установить патч sims 2
- Как русифицировать WOW
- Как создать патч
- Как играть в старые игры в полноэкранном режиме
- Как попасть в нордскол орду
- Как установить игру, если она пишет, что уже установлена
- Как играть Warcraft 3 через Гарену
- Как откатить патч warcraft
- Как создать repack игры
- Как отключить цензуру
- Что делать, если не запускается игра
- Как делать дополнения к играм
Новые советы от КакПросто
Рекомендованная статья
Как фотография может испортить жизнь