Установка патчей в Linux работа с утилитой patch

Практически каждый разработчик программного обеспечения (ПО), программист или верстальщик сталкивается (и довольно часто) с необходимостью модификации некоторой части рабочего проекта или даже нескольких строк кода. Особенно это актуально, когда в разработке участвует несколько человек, которые могут вносить правки в разных частях проекта. Для удобства и автоматизации действий по составлению таких правок используются специализированные утилиты. Одной из таких является утилита patch и о ней более подробно будет рассказано в данной статье.

Что такое патч?

Говоря о патчах вкупе с утилитой patch, следует подразумевать, что это касается исключительно текстовых данных. Другими словами, происходит работа с исходными кодами проекта, будь то код C++, PHP, HTML и т. д. Вообще, все самые «суровые» программисты или разработчики в процессе своей совместной работы над проектом обмениваются исключительно отдельными правками, а не пересылают друг другу актуальные версии проектов целиком.

Сама правка, т. е. текстовые изменения в исходном коде проектов (для одного его файла или сразу для нескольких) и есть патч или «заплатка». Патч, помимо самих изменений кода содержит также и некоторую служебную информацию, необходимую для правильного «наложения заплатки», т. е. для установки патча. Таким образом, патч — это текстовый файл определённого формата, содержащий в себе данные и инструкции для приведения конечного файла (или проекта) к нужному или актуальному виду.

Утилита patch умеет быстро и эффективно распоряжаться данными из файла-патча, используя для этого хранящиеся в нём инструкции. И таким образом выполняет все рутинные действия по редактированию. Пользователю (разработчику) необходимо лишь правильно выполнить соответствующую команду, задав все необходимые аргументы и опции.

Синтаксис и основные опции команды patch

Нет ничего удивительного в том, что утилита patch относится к категории ПО, которое обязательно должно быть установлено на любой машине для разработки программ, да и вообще для ведения разработки. Практически любой дистрибутив Linux предоставляет утилиту patch предустановленной по-умолчанию.

Стоит также отметить, что по своей функциональности, patch довольно сложна и обладает, без преувеличения, просто огромным набором опций. По этой причине в данной статье будут приведены только самые распространённые приёмы при работе с этой утилитой и только сопутствующие им опции команд. Синтаксис команды patch следующий:

Здесь originalfile – это файл, который необходимо «пропатчить» до актуального состояния. А patchfile – файл-патч. Сразу возникает вопрос: а откуда берётся этот файл-патч? Ответ: он генерируется другой утилитой — diff, которая находит построчные различия между файлами. Либо же патч может быть составлен вручную, автором, если он знаком с соответствующим форматом. Но это бывает крайне редко, обычно прибегают к помощи diff или её аналогов.
В следующей таблице приведены опции команды patch, которые используются наиболее часто:

<td»>Помещает неудавшиеся (отклонённые) изменения в отдельный файл rejecfile вместо файла .rej по-умолчанию.

Опция Значение
-i patchfile Читает информацию из патч-файла, указываемого параметром patchfile.
-r rejectfile, —reject-file=rejectfile
-N, —forward Когда патч не применяется, то утилита patch обычно пытается определить, выглядит ли ситуация так, как если бы патч уже был применён. Опция -N отключает такое поведение.
-pnum, strip=num Обрезает части пути к файлу, разделяемые символом косой черты до уровня, указанного в параметре num. Например: p0 оставит путь /u/john/src/blurfl/blurfl.cpp неизменным, а p4 обрежет тот же путь до blurfl/blurfl.cpp.
-o outputfile, —output=outputfile Отправляет вывод в указываемый в параметре outputfile файл. Не следует использовать эту опцию, если в качестве outputfile указывается файл, который должен быть пропатчен. Если в качестве outputfile указать символ дефиса «-», то вывод будет направляться в стандартный поток STD_OUT.
-E, —remove-empty-file Удаляет файлы, оказавшиеся пустыми после применения патча. Эта опция имеет смысл, когда используемые патчи имеют не контекстный формат.
—dry-run Печатает результаты применения патча без реальной модификации файлов. Полезно для быстрого и безопасного тестирования патчей.
-R, —reverse Откатывает все изменения (если они возможны), т. е. отменяет установку патча.
-c, —context Интерпретирует файл патча как обычный контекстный формат, генерируемый утилитой diff.
-b, —backup Создаёт резервную копию оригинального файла вместо его удаления.

Применение патчей к отдельным файлам

Прежде, чем начать рассмотрение практических примеров, необходимо сказать несколько слов о той самой утилите, которая и создаёт патчи — diff. Она может генерировать патчи трёх типов — простой, контекстный и контекстный унифицированный. Простой гораздо более компактный по размеру, чем контекстные, но последние гораздо более удобочитаемы и понятны для восприятия пользователем. Для того, чтобы сгенерировать простой патч, для команды diff никаких специальных опций не требуется. А для генерации контекстного или унифицированного контекстного патчей предназначены опции -с и -u соответственно:

Пусть имеется файл с кодом C++ ChildClass.cpp:

И пусть в этот файл было внесено следующее изменение: метод valueSqr() был переименован в calcSqr(). Тогда контекстный патч (файл contextpatch) будет выглядеть следующим образом:

Теперь, чтобы пропатчить старую версию ChildClass.cpp, нужно выполнить команду:

В результате будет получен файл ChildClass_new.cpp с актуальным содержимым.

Работа с проектами

С помощью утилиты patch можно также применять патчи для нескольких файлов, причём расположенных в разных каталогах. Это удобно, когда изменения проводятся в масштабах целого проекта. Но в этом случае и сам патч должен быть особым образом подготовлен утилитой diff.

Пусть имеется старый проект в каталоге base-project. Внутри него имеются подкаталоги include и src, в которых, в свою очередь находятся файлы с изменениями — ChildClass.h (в каталоге include) и ChildClass.cpp (в каталоге src). Сам изменённый (актуальный) проект был помещён в отдельный каталог new-project. Подготовка патча будет выглядеть следующим образом:

Кроме этого:  Установка archiso в новый корень

Сгенерированный файл-патч project-patch:

Следует обратить внимание, что в данных примерах указываются относительные пути. Файл-патч будет помещён в текущий активный каталог.
Чтобы применить патч нужно выполнить следующую команду:

Как видно, вместо ключа -i можно использовать символ «<» для перенаправления потока из файла на вход команды patch. Здесь также нужно обратить внимание и понимать, что при выполнении команды patch активным каталогом должен быть каталог уровнем выше, чем каталог проекта, к которому применяется патч, ведь используются относительные пути. Параметр -p0 (см. таблицу из главы «Синтаксис и основные опции команды patch») указывает, что применение патча должно затрагивать весь проект. Если бы этот параметр был бы равен -p1, то патч применялся не выше уровня каталогов include и src. Нередко бывают случаи, когда кроме изменений в содержимом файлов меняется также и содержимое каталогов проекта. Другими словами, добавляются новые или удаляются ранее существовавшие файлы и подкаталоги. Пусть, например, в проект из предыдущего примера в каталог include был добавлен файл Readme.txt с содержанием «This is Readme content.». В этом случае подготовка патча будет выглядеть следующим образом:

Сгенерированный файл-патч project-patch:

Теперь можно пропатчить проект:

Откат патчей

Если по каким-то причинам патч оказался бесполезен и необходимо вернуться к предыдущей версии файлов (проекта), то можно сделать откат изменений, используя опцию -R:

В результате будет удалён файл Readme.txt, который был внесён в проект в примере из предыдущей главы, т. е. фактически откат изменений.
Рекомендуется перед применением патчей проверять, подходят ли они. Для этого используется опция —dry-run:

При возникновении каких-либо ошибок во время применения патча, утилита patch создаёт файлы *.rej, по которым можно восстановить исходную версию файла. Однако, следует учитывать, что восстановление содержимого файлов таким способом — довольно долгое и нудное занятие. Практичнее создавать резервные копии файлов, указывая в команде patch опцию -b:

Заключение

В заключение необходимо отметить, что значение использования утилиты patch двоякое. С одной стороны гораздо меньше хлопот с редактированием файлов и проектов. Не нужно вручную переписывать много кода, когда изменений довольно много. С другой стороны, необходимо использовать данную утилиту с особой осторожностью, чтобы не испортить результаты собственных трудов. Но это уже фактор, зависящий в большей степени от самого пользователя.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник



Как запустить установку патча

Как устанавливать патчи к играм

Патч — маленькая программка, исправляющая недочёты разработчиков, помогает геймерам в полной мере оценить их труды и насладиться геймплеем. Статьи по теме:

  • Как устанавливать патчи к играм

Вопрос « Фотошоп CS3» — 1 ответ Инструкция
1 Патч по определению — это заплатка. Отсюда очевидно его предназначение. Безусловно, разработчики игр всегда проводят основательные тесты своих творений прежде, чем запустить их в массы, моделируя самые разнообразные ситуации, но всех возможных вариантов они предусмотреть, конечно, не могут.
Поэтому любителями на коленке или же самими разработчиками спустя некоторое время после выхода игры в свет по отзывам геймеров становится понятно, что нужно доработать, и они выпускают те самые патчи, без которых подчас насладиться всей полнотой и яркостью геймплея просто невозможно.
Обратимся к работе непосредственно с патчами и рассмотрим возможные вопросы.
Прежде всего, убедитесь, что ресурс, с которого вы собираетесь скачивать нужны вам патч, является проверенным и не несёт никакого вреда вашему компьютеру. Хакеры могут воспользоваться популярностью проекта и запустить в сеть «фейк», то есть якобы файл с патчем, на деле содержащий в себе вирус, при этом ещё активно расхваливая повысившееся качество игры при использовании их творения. Лишние проблемы вам не нужны, поэтому пользуйтесь только проверенными ресурсами даже если патч представлен самими разработчиками, но на каком-то стороннем сайте.
2 Каждый патч имеет какую-либо версию в своём названии. Она изображается одной или несколькими цифрами, написанными через точку. Это та версия, до которой будет обновлена ваша игра после установки на неё патча. Всегда обращайте внимание на совместимость версии игры и патчей, а также перед установкой делайте резервные копии сохранений игры, если они у вас есть. В противном случае, они могут быть безвозвратно потеряны.
3 Обращайте внимание на содержание патча. Разработчик должен подробно указать полный перечень глюков и багов, которые данный патч устраняет. Если есть несколько вариантов, вы сможете выбрать наиболее оптимальный для вас. Так же к патчу должна прилагаться инструкция по установке. Это важно опять-таки по причине существования различных версий патчей и самой игры и их взаимодействия. Если инструкция требует переустановить игру и использовать патч только с её «чистой» версией — не поленитесь, выполните всё, как просят, — это не займёт много времени и обеспечит большую вероятность качественной работы игры в дальнейшем. Не зря же создатели патча специально обращают ваше внимание на это. В общем, никогда не игнорируйте инструкций, и тогда претензий к создателям патчей практически не будет. Источники:

Источник

Как запустить установку патча

Как установить патч?

Патч – это обновления к программному обеспечению или к целевому комплексу программ. Например, разработчики ОС Windows стабильно создают новые патчи, для того чтобы исправлять некоторые сбои или «дыры» в системе безопасности.

Неважно, для какого вида программ вы хотите установить патч, это всегда делается одинаково. Сначала убедитесь в том, что у вас есть самая последняя версия обновления для программного обеспечения. Это можно узнать только на официальном сайте. Для этого загрузите страницу производителя программы в интернете и посмотрите в разделе «Обновления» или Download’s наличие последних версий.

Кроме этого:  Нестандартные и сложные варианты установки

Если у вас нет таких обновлений, то их можно быстро загрузить при помощи специального менеджера закачек, например Download Master. Для этого нажмите правой кнопкой мыши на требуемую ссылку, при условии, что не сработала автоматическая загрузка, и выберите «Скопировать ссылку». В окне менеджера закачек нажмите «+»(Add), потом выберите папку, где нужно сохранить файл.

После успешной загрузки патча, нужно его распаковать, если он заархивирован, и потом запустить. На мониторе появится окно, в котором нужно нажать «Далее». Если мастер установки спрашивает вас о местонахождении утилиты, то нажмите «Обзор» и выберите папку, где находится файл с расширением exe.

Потом вам будет предложено пару вариантов установки. Если выбирать нужно будет из 3 вариантов, то всегда нажимайте Typical. Далее совершайте действия, следуя подсказкам мастера установки. В конце нажмите «Готово».

После установки компьютер попросит вас перезагрузки. Если нет, то все равно перезагрузите его сами. Для этого зайдите в «Пуск», выберите «Выключение», а потом кнопку «Перезагрузка» (для Windows XP) или нажмите на треугольник около этой кнопки и выберите «Перезагрузка»

после загрузки ОС не забудьте открыть окно программы, чтобы убедиться в хорошей установке патча. Для этого в верхнем меню нажмите «Справка» и выберите «О программе». В графе про версию программы должны измениться цифры сборки продукта.

Источник

Как запустить установку патча

В современных типовых конфигурациях появилось такое понятие как патчи (исправления), которые на самом деле представляют из себя уже знакомые нам расширения.

И получается, что разработчик, выпустив какое-то обновление к конфигурации, далее выпускает эти самые патчи, чтобы исправить обнаруженные в обновлении ошибки.

Патчи можно безболезненно устанавливать и удалять (это ведь на самом деле расширения) — причём это можно делать при работающих пользователях.

Установленный патч начинает работать у пользователя только после перезапуска открытой у него базы.

Как включить установку исправлений с сайта

Внимание! Возможность автоматической установки расширения через обновлятор доступна только, если у вас не базовая платформа 1с. Если у вас базовая 1с, то вам сюда.

Настраиваем

Заходим в свойства базы:

Здесь устанавливаем галку «После всех обновлений устанавливать исправления».

По умолчанию поиск и скачивание исправлений происходит с сайта 1с:

Но этот способ будет работать только в том случае, если вы укажите логин и пароль от вашего ИТС в настройках обновлятора:

Какие данные отправляются на сайт 1с

Для поиска и скачивания исправлений обновлятор будет обращаться к сервису на сайте 1с (точно также как это делает конфигурация в режиме пользователя).

При этом сервису будет передана анонимная информация о базе (точно в таком же составе, как это делается, когда вы скачиваете исправления из базы в режиме пользователя). Насколько я понимаю это всё собирается для статистики.

Передаются следующие данные:

Эти данные о базе также передаются при обращении к любому из сервисов интернет-поддержки (например, запрос реквизитов контрагента по ИНН).

Проверяем

Готово, можем запускать поиск обновлений.

. либо обновление базы:

Установка исправлений выполняется в самом конце после всех возможных обновлений конфигурации базы.

Обновлятор также проверяет через сайт — были ли отозваны уже установленные в базе исправления. При необходимости он удаляет такие исправления из базы.

Как включить установку исправлений из папки

Внимание! Возможность автоматической установки расширения через обновлятор доступна только, если у вас не базовая платформа 1с. Если у вас базовая 1с, то вам сюда.

Для тех случаев, когда на компьютере нет доступа к интернету, я предусмотрел установку уже скачанных и распакованных исправлений.

Скачиваем

К примеру, нам требуется скачать и установить все исправления для конфигурации «Бухгалтерия предприятия» версии 3.0.75.58.

Заходим на сайт https://releases.1c.ru/total и скачиваем архив с нужными исправлениями:

В самом низу страницы:

Обратите внимание. Если вы планируете обновить конфигурацию на несколько релизов, то исправления нужно скачивать только для последнего в цепочке обновлений релиза.

Распаковываем

Скачанный архив распаковываем:

В этом архиве лежат другие архивы (на каждое исправление).

Их также распаковываем:

После распаковки каждого из архивов получили 4 папки с исправлениями:

В каждой из папок лежит расширение и его манифест (описание):

Копируем в папку

Создадим какую-нибудь отдельную папку, куда мы будем складывать все распакованные исправления. А обновлятор уже сам потом разберётся какие исправления к каким конфигурациям можно применять (он сделает это по манифестам).

К примеру, у себя я создал папку «x:\patches». Скопируем в неё папки с распакованными исправлениями:

Прописываем папку в обновляторе

Заходим в свойства базы:

Здесь устанавливаем галку «После всех обновлений устанавливать исправления» и выбираем источник исправлений «из папки», указав в качестве папки только что созданную «x:\patches».

Проверяем

Готово, можем запускать поиск обновлений.

. либо обновление базы:

Про исправления, которые отозваны

В случае с поиском исправлений на сайте обновлятор автоматически узнаёт об исправлениях, которые были отозваны.

Но в случае с поиском исправлений в папке ему взять эту информацию неоткуда. Мы должны сами сообщать ему об исправлениях, которые отозваны.

К примеру, выше мы видели, что исправление с именем EF_40012729 числится отозванным (то есть его выпустили с ошибкой, либо одно из следующих исправлений для этой же конфигурации взяло на себя его код).

Кроме этого:  Samsung со Скидкой до 3300 рублей

Чтобы сообщить эту информацию обновлятору зайдём в созданную (и прописанную в настройках обновлятора) папку «x:\patches» и создадим здесь (прямо в корне) текстовый файл с именем «revoked.txt»

Откроем этот файл на редактирование и укажем в нём имя отозванного исправления:

Готово. Теперь, если бы это исправление было установлено в нашей базе, то обновлятор при обновлении удалил бы его.

Если нам требуется указать в файле множество имён, то это можно делать либо через запятую, либо указывать каждое имя с новое строки.

Как быть тем, у кого базовая платформа 1с

Если у вас базовая платформа 1с (в которой из-за лицензионных ограничений недоступно программное подключение к базам) то обновлятор не сможет устанавливать исправления автоматически.

В этом случае вам потребуется это делать вручную в самой базе (в разделе «Администрирование»-«Обслуживание»). При этом вы можете по ходу дела отметить галку «Загружать и устанавливать исправления (патчи) автоматически«.

Как запускать установку исправлений отдельно от обновления баз

Для этого нажмите правой кнопкой на базе и выберите пункт «Управление исправлениями. «:

Либо выберите тип операции «только установка исправлений» в задаче расписания:

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Источник

Как установить или удалить патчи с исправлениями 1С

Практически после каждого обновления конфигурации 1С, возникают проблемы в работе функционала, то появится «плавающая» ошибка при пробитии чека, то обнаружатся внезапные ошибки в настройках интеграций с Егаис, либо продаже маркированных товаров ( обувь, одежда, сигареты ) и т.д. А для того, чтобы нам не ждать следующего обновления с исправлением, фирма 1С сразу же выпускает патчи с исправлением конкретных проблем. И сейчас мы пошагово рассмотрим, как можно скачать, установить, а затем удалить патч с исправлением ошибок 1С.

Автоматическая установка патчей

Если у вас имеется активная подписка 1С: ИТС, постоянный доступ в интернет и вам не хочется постоянно контролировать наличие и установку каждого патча в отдельности, тогда можно использовать автоматический режим установки всех новых патчей с исправлениями 1С. Активируется данный режим в пару кликов, но для начала, давайте рассмотрим установку патчей через Монитор портала 1С. Итак, в разделе Администрирование, откроем Интернет-поддержка и сервисы.

Как установить или удалить патчи с исправлениями 1С

И заходим в раздел Монитор портала 1С: ИТС.

Как установить или удалить патчи с исправлениями 1С

В пункте Обновление программы, нажмём Доступно обновление программы.

Как установить или удалить патчи с исправлениями 1С

И видим здесь, что в пункте Исправления (патчи) есть 3 исправляемые ошибки, тобишь три новых патча для текущей версии конфигурации. Чтобы посмотреть, какие ошибки у нас будут исправлены, нажимаем Установить обновление.

Как установить или удалить патчи с исправлениями 1С

Далее мы нажимаем Исправляемые ошибки.

Как установить или удалить патчи с исправлениями 1С

И узнаём уже более детальную информацию по каждой исправляемой ошибке.

Как установить или удалить патчи с исправлениями 1С

Итак, возвращаемся к окну Обновление программы и нажимаем Далее.

Как установить или удалить патчи с исправлениями 1С

Произойдёт максимально быстрая установка всех патчей.

Как установить или удалить патчи с исправлениями 1С

После чего, оставляем галку в пункте Перезапустить программу и жмём Готово, чтобы перезапустить программу для активации новых патчей с исправлениями.

Как установить или удалить патчи с исправлениями 1С

А чтобы в дальнейшем все новые патчи устанавливались автоматически, зайдём в раздел Администрирование и откроем Интернет-поддержка и сервисы, далее находим подраздел Обновление версии программы, отмечаем пункт Загружать и устанавливать исправления (патчи) автоматически и настроим расписание.

Как установить или удалить патчи с исправлениями 1С

Вот в целом и всё.

Ручная установка патчей из архива

Если на рабочем компьютере пропал доступ к интернету, а вам нужно вот срочно установить какой-нибудь важный патч с исправлением, тогда вы можете зайти на оф. сайт 1С через другой компьютер, скачать нужный патч и установить его в проблемную конфигурацию вручную. Но, для начала, необходимо узнать точную версию проблемной конфигурации. Для этого, кликнем на верхней панели 1С по значку с тремя полосками и выбираем из выпадающего списка О программе.

Как установить или удалить патчи с исправлениями 1С

И здесь мы узнаём версию, к примеру, Розница (базовая), редакция 2.3 (2.3.7.22).

Как установить или удалить патчи с исправлениями 1С

Затем, авторизируемся на оф. сайте releases.1c.ru и выбираем конфигурацию.

Как установить или удалить патчи с исправлениями 1С

Далее находим нужный номер версии, который мы узнали ранее.

Как установить или удалить патчи с исправлениями 1С

И в нижней части страницы, открываем раздел Исправления ошибок версий.

Как установить или удалить патчи с исправлениями 1С

Выбираем нужное исправление и нажимаем Скачать.

Как установить или удалить патчи с исправлениями 1С

После скачивания у нас появится вот такой архив с патчем в .zip формате.

Как установить или удалить патчи с исправлениями 1С

Теперь мы заходим в раздел Администрирование и открываем Обслуживание.

Как установить или удалить патчи с исправлениями 1С

Раскроем подраздел Обновление программы и нажмём Установка обновлений и исправлений (патчей).

Как установить или удалить патчи с исправлениями 1С

Находим скаченный архив с патчем, выделяем его и нажимаем Открыть.

Как установить или удалить патчи с исправлениями 1С

Перепроверяем путь к архиву и нажимаем Далее.

Как установить или удалить патчи с исправлениями 1С

В окне с предупреждением безопасности, нажимаем Продолжить.

Как установить или удалить патчи с исправлениями 1С

И после максимально быстрой установки, просто перезапускаем программу.

Как установить или удалить патчи с исправлениями 1С

Вот в целом и всё.

Удаление патчей с исправлениями 1С

Как правило, когда обнаруживается ошибка релиза, выходит и устанавливается патч с её исправлением, а при установке следующего обновления, где эту ошибку исправляют, патч должен автоматически удалиться из системы. Но бывает так, что патч не удаляется самостоятельно и он провоцирует различные конфликты в работе 1С. В таком случае, нам нужно удалить устаревший патч с исправлением вручную. Заходим в раздел Администрирование и открываем Обслуживание.

Как установить или удалить патчи с исправлениями 1С

Раскрываем Обновление программы и открываем Установленные исправления (патчи).

Как установить или удалить патчи с исправлениями 1С

Выделяем ненужный патч и нажимаем Удалить исправление.

Как установить или удалить патчи с исправлениями 1С

Подтверждаем его удаление и перезаходим в программу.

Как установить или удалить патчи с исправлениями 1С

Если у вас остались вопросы, оставляйте их в комментариях ниже. А пока… пока.

Источник