Ни для кого не секрет, что в нашей стране 90% установленных программ на компьютерах не являются лицензионными. Программы уже взломаны, но чтобы их установить требуются некоторые навыки. В статье рассмотрены самые распространенные способы установки пиратских программ. Как пользоваться keygen? Как пользоваться crack? Что такое request code? Как пользоваться patch?

    Требуемые знания
    Советую изучить до

Изучаем содержимое папки с установочным файлом

Открываем папку с установочными файлами программы и изучаем ее содержимое. Возможно, в ней вы найдете папку crack, тогда открываем ее. Вот возможные варианты, что вы можете найти.

  1. Текстовый файл (.txt)
  2. Файл-приложение (.exe). Открываем.
  3. В папке нет ничего кроме установочного файла

1. Инструкция по установке в текстовом файле

Первое, на что надо обратить внимание, есть ли в этой папке файл «readme.txt» или «прочти меня.txt» (могут быть и другие названия). Очень часто в нем написана инструкция по правильной установке программы. Если файл с инструкцией есть, то, смело, открываем его и следуем инструкции. Если файла нет, то ситуация немного усложняется.

2. Серийный номер в текстовом файле

Для подтверждения прав на программу иногда требуется серийный номер. Имея его, вы сможете установить программу бесплатно.

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


Пример серийного номера: ADE-R119-F196-k9BA-17CD


В папке с программой (в той же папке что и установочный файл) может находиться файл с серийным номером. Чаще всего он называется «Серийный номер», «Serial number», «Ключ», «key», «crack». Открываем этот файл, копируем серийный номер и вставляем его в нужное место.

Последовательность действий:

  • Открыть текстовый файл, скопировать серийный номер (Cntr+C)
  • 3. Как пользоваться keygen

    В папке с программой может находиться файл-программа (keygen, crack, ...).

    Вот пример такой программы, если ее запустить (рис.2):



    рис.2 Генератор серийных номеров

    Нажимаем на кнопку «Generate» (рис.3)


    рис.3 Генератор серийных номеров с ключом

    Копируем серийный номер, вставляем в нужное место и все готово. Продолжаем установку, либо нажимаем "Ок" (возможно "Готово", "далее" ...), если установка уже завершена.

      Последовательность действий:
    1. Начать установку программы, пока не потребует серийный номер
    2. Открыть файл Keygen
    3. Сгенерировать серийный номер и скопировать (Cntr+С)
    4. Вставить его в то место, где требуется (Cntr+V)

    4.Получение доступа при помощи "Request code"

    Еще один вариант. Во время установки программы или после запуска установленной программы, на экране появляется окно с регистрацией. В папке с установочным файлом должен быть keygen.exe, crack.exe или что-то еще.
    Пример окна регистрации (рис.4):


    рис.4 Начало регистрации с "Request code"

    Иногда нужно выбрать режим регистрации, например, выбрать «ввести серийный номер». На экране появляется окно для ввода серийного номера. (рис.5)

    В данном случае:
    - Get an activation code – получить код активации
    - Enter an activation code – ввести код активации (нужный нам вариант)


    Открываем из папки с установкой программы файл keygen.exe (crack.exe, ...) (рис.6).


    Теперь нам нужно скопировать "Request code" из окна на рис.4 (рис.5) и вставить в окно на рис.6. Выделяем Request code и нажимаем Cntr+C (горячая клавиша копировать).
    Вставляем в последнее окно скопированный код (Cntr+V).

    Обратите внимание!!!
    Код скопировался не полностью, а только первая строчка. Вторую строчку кода нужно скопировать отдельно, в окне на рис.6 нужно поставить пробел, скопировать и вставить оставшуюся часть "Request code". Должно получиться так (рис.7):


    рис.7 Генератор после вставления "Request code"

    После этого в программе на рис.7 нажимаем кнопку «Calculate» (иногда называется Generate). Должно получиться так (рис.8):


    Копируем "Auth code" из программы рис.7 в окно на рис.5 и получаем так (рис.9):


    Нажимаем Next или Ok. Нам должны сообщить, что регистрация прошла успешно. Теперь программой можно пользоваться бесплатно.

    Такая ситуация встречается довольно часто. Главное не забывайте, что Request code состоит из двух строчек.

      Последовательность действий:
    1. Установить программу
    2. Запустить программу
    3. Выбрать режим ввода серийного номера (Enter …)
    4. Открыть keygen
    5. Скопировать "Request code" из программы в "keygen" (обе строчки)
    6. В "keygen" нажать кнопку сгенерировать
    7. Скопировать код, полученный в "keygen"
    8. Вставить его в требуемое место в программе (Cntr+V)
    9. Нажать готово

    5. Как пользоваться patch

    Иногда для бесплатной установки программы нельзя просто сгенерировать серийный номер. В таких случаях используют специальные программы, которые изменяют файлы так, чтобы программа не требовала денег. В папке с установщиком программы должен находиться файл "Patch" (он может называться - patch, keygen, crack, ...). Это и есть программа, которую еще называют патч.


    Первое, что мы должны сделать, это установить программу (ту, которую мы хотим сделать бесплатной). После установки открывать программу не надо.


    Дальше, надо переписать patch (или другой файл-патч) в папку, в которую мы установили программу. Скорее всего это диск С, папка Program files, папка с название программы (C:/Program files/«название программы»).


    Вот пример файла patch.exe (рис.10):

    рис.10 Программа-патч

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

      Последовательность действий:
    1. Установить программу
    2. Скопировать Patch.exe в папку, куда установили программу
    3. Открыть Patch.exe
    4. Нажать единственную кнопку в программе "Patch"
    5. Запустить программу

    6. Файлы, для установки программы бесплатно, отсутствуют

    Может быть и такое, что программу вы скачали без пиратского «лекарства». То есть, без готовых серийных номеров, кейгенов или патчей. Тогда задача усложняется. Лучше конечно скачивать программы с готовыми «лекарствами». Но что если все-таки такая проблема встала?

      Последовательность действий:
    1. Устанавливаем программу
    2. Узнаем полную версию программы. (Например, Daemon Tools Lite 4.35.6)
      Чаще всего в названии установочного файла присутствует полное название. Если программа уже установлена, то в пункте меню «Справка» есть строка «О программе». Там можно тоже узнать полную версию программы. Если не получилось найти полное название, вводите в поиск неполное.
    3. Если при установке или после требует серийный номер, то в поиске, например yandex.ru, вводим: серийный номер для «полное название программы» Если требуются другие виды регистрации, то в строке поиска, например yandex.ru, вводим: crack для «полное название программы»
    4. Перебираем всевозможные ссылки до тех пор, пока не скачаем подходящее лекарство или серийный номер

    Заключение

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


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


    Если вы нашли ошибку в тексте, то выделите текст и нажмите Cntr+Enter.


    По любым вопросам по данной статье пишите в комментариях. Также если вам понравилась статья, напишите это в комментариях.

    ***

    Ни для кого не секрет, что в нашей стране 90% установленных программ на компьютерах не являются лицензионными. Программы уже взломаны, но чтобы их установить требуются некоторые навыки. В статье рассмотрены самые распространенные способы установки пиратских программ. Как пользоваться keygen? Как пользоваться crack? Что такое request code? Как пользоваться patch?

    ***

    1. Инструкция по установке в текстовом файле

    Первое, на что надо обратить внимание, есть ли в этой папке файл «readme.txt» или «прочти меня.txt» (могут быть и другие названия). Очень часто в нем написана инструкция по правильной установке программы. Если файл с инструкцией есть, то, смело, открываем его и следуем инструкции. Если файла нет, то ситуация немного усложняется.

    2. Серийный номер в текстовом файле

    Для подтверждения прав на программу иногда требуется серийный номер. Имея его, вы сможете установить программу бесплатно.

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


    Пример серийного номера: ADE-R119-F196-k9BA-17CD

    В папке с программой (в той же папке что и установочный файл) может находиться файл с серийным номером. Чаще всего он называется «Серийный номер», «Serial number», «Ключ», «key», «crack». Открываем этот файл, копируем серийный номер и вставляем его в нужное место.

    Последовательность действий:

    1. Открыть текстовый файл, скопировать серийный номер (Cntr+C)

    3. Как пользоваться keygen

    В папке с программой может находиться файл-программа (keygen, crack, ...).

    Вот пример такой программы, если ее запустить (рис.2):


    рис.2 Генератор серийных номеров

    Нажимаем на кнопку «Generate» (рис.3)


    рис.3 Генератор серийных номеров с ключом

    Копируем серийный номер, вставляем в нужное место и все готово. Продолжаем установку, либо нажимаем "Ок" (возможно "Готово", "далее" ...), если установка уже завершена.

    Последовательность действий:

    1. Начать установку программы, пока не потребует серийный номер
    2. Открыть файл Keygen
    3. Сгенерировать серийный номер и скопировать (Cntr+С)
    4. Вставить его в то место, где требуется (Cntr+V)

    4.Получение доступа при помощи "Request code"

    Еще один вариант. Во время установки программы или после запуска установленной программы, на экране появляется окно с регистрацией. В папке с установочным файлом должен быть keygen.exe, crack.exe или что-то еще.
    Пример окна регистрации (рис.4):


    рис.4 Начало регистрации с "Request code"

    Иногда нужно выбрать режим регистрации, например, выбрать «ввести серийный номер». На экране появляется окно для ввода серийного номера. (рис.5)

    В данном случае:
    - Get an activation code - получить код активации
    - Enter an activation code - ввести код активации (нужный нам вариант)


    Открываем из папки с установкой программы файл keygen.exe (crack.exe, ...) (рис.6).


    Теперь нам нужно скопировать "Request code" из окна на рис.4 (рис.5) и вставить в окно на рис.6. Выделяем Request code и нажимаем Cntr+C (горячая клавиша копировать).
    Вставляем в последнее окно скопированный код (Cntr+V).

    Обратите внимание!!!
    Код скопировался не полностью, а только первая строчка. Вторую строчку кода нужно скопировать отдельно, в окне на рис.6 нужно поставить пробел, скопировать и вставить оставшуюся часть "Request code". Должно получиться так (рис.7):


    рис.7 Генератор после вставления "Request code"

    После этого в программе на рис.7 нажимаем кнопку «Calculate» (иногда называется Generate). Должно получиться так (рис.8):


    Копируем "Auth code" из программы рис.7 в окно на рис.5 и получаем так (рис.9):


    Нажимаем Next или Ok. Нам должны сообщить, что регистрация прошла успешно. Теперь программой можно пользоваться бесплатно.

    Такая ситуация встречается довольно часто. Главное не забывайте, что Request code состоит из двух строчек.

    Последовательность действий:

    1. Установить программу
    2. Запустить программу
    3. Выбрать режим ввода серийного номера (Enter …)
    4. Открыть keygen
    5. Скопировать "Request code" из программы в "keygen" (обе строчки)
    6. В "keygen" нажать кнопку сгенерировать
    7. Скопировать код, полученный в "keygen"
    8. Вставить его в требуемое место в программе (Cntr+V)
    9. Нажать готово

    5. Как пользоваться patch

    Иногда для бесплатной установки программы нельзя просто сгенерировать серийный номер. В таких случаях используют специальные программы, которые изменяют файлы так, чтобы программа не требовала денег. В папке с установщиком программы должен находиться файл "Patch" (он может называться - patch, keygen, crack, ...). Это и есть программа, которую еще называют патч.

    Первое, что мы должны сделать, это установить программу (ту, которую мы хотим сделать бесплатной). После установки открывать программу не надо.

    Дальше, надо переписать patch (или другой файл-патч) в папку, в которую мы установили программу. Скорее всего это диск С, папка Program files, папка с название программы (C:/Program files/«название программы»).

    Вот пример файла patch.exe (рис.10):

    рис.10 Программа-патч

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

    Последовательность действий:

    1. Установить программу
    2. Скопировать Patch.exe в папку, куда установили программу
    3. Открыть Patch.exe
    4. Нажать единственную кнопку в программе "Patch"
    5. Запустить программу

    6. Файлы, для установки программы бесплатно, отсутствуют

    Может быть и такое, что программу вы скачали без пиратского «лекарства». То есть, без готовых серийных номеров, кейгенов или патчей. Тогда задача усложняется. Лучше конечно скачивать программы с готовыми «лекарствами». Но что если все-таки такая проблема встала?

    Последовательность действий:

    1. Устанавливаем программу
    2. Узнаем полную версию программы. (Например, Daemon Tools Lite 4.35.6)
      Чаще всего в названии установочного файла присутствует полное название. Если программа уже установлена, то в пункте меню «Справка» есть строка «О программе». Там можно тоже узнать полную версию программы. Если не получилось найти полное название, вводите в поиск неполное.
    3. Если при установке или после требует серийный номер, то в поиске, например yandex.ru, вводим: серийный номер для «полное название программы» Если требуются другие виды регистрации, то в строке поиска, например yandex.ru, вводим: crack для «полное название программы»
    4. Перебираем всевозможные ссылки до тех пор, пока не скачаем подходящее лекарство или серийный номер
    5. автор статьи
    6. 2011 Игорь Баянчиков
    - Расширение (формат) - это символы в конце файла после последней точки.
    - Компьютер определяет тип файла именно по расширению.
    - По умолчанию Windows не показывает расширения имен файлов.
    - В имени файла и расширении нельзя использовать некоторые символы.
    - Не все форматы имеют отношение к одной и той же программе.
    - Ниже находятся все программы с помощью которых можно открыть файл PATCH.

    Многие пользователи MS Windows давно успели заметить, что стандартный блокнот - это довольно неудобная в своем использовании программа. Заменой ей может стать данный бесплатный редактор текстовых файлов, обеспечивающий поддержку синтаксиса большого количества языков программирования. Программа содержит в себе довольно широкий набор опций и отличается минимальным потреблением ресурсов процессора. Программа делает возможным одновременный просмотр нескольких документов сразу и редактирование их, без закрытия лишних окон. Доступной стала и такая опция, как редактирование одного и того же документа в разных местах, что очень удобно...

    Notepad2 – простое приложение, позволяющее печатать и редактировать текст. Она поможет в создании HTML-страниц, программировании на различных языках (CSS, Java, JavaScript, Python, SQL, Perl, PHP) так как способна подсвечивать код. Программа построена по принципу простого блокнота, она маловесна и компактна. Этот текстовый редактор проверяет все скобки на наличие пары, поддерживает авто отступы. Программа Notepad2 не только поддерживает кодировки ASCII и UTF-8, но и умеет их конвертировать. Позволяет откатывать нежелательные операции на много уровней назад. Поддерживает блочное выделение элементов текста и имеет нумерованные ст...

    Одна из лучших программ создания веб аппликаций для WEB 2.0 разработчиков. Включает в себя удобный и простой интерфейс работы, удобные редакторы HTML, PHP, Ruby, CSS, Python и JavaScript, поддерживает HTML5, имеет встроенный Дебагер, с широким спектром возможностей, поддержка различных браузеров, таких как Mozilla Firefox, Opera, Google Chrome, Internet Explorer и Safari, оперативно поддерживает все новые технологии, такие как Adobe AIR и даже разработка под IPhone 5. Справочная система довольно богатая и без сомнений это правильный выбор для любого разработчика. Программа работает на платформе Eclipse и имеет массу плагинов чт...

    Bluefish – мощная программа для программирования и веб-разработки. Имеет множество функций для разработки сайтов, скриптов а так же программных кодов. Программа работает на большой скорости, может загрузить сотни файлов в считанные секунды. Без каких либо проблем откроет более 500+ документов одновременно. Есть очень полезные функции, как хороший поиск по файлам а так же без лимитные функции «Отмена» и «Повтор». Автоматическое восстановление при незапланированном выключение. Интеграция внешних программ и внешних фильтров. Поддержка языка, а именно справочная информация онлайн. Программа в разработке, но уже поддерживает 17 язык...

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

    В интернете очень много программ, позволяющих редактировать исходный код другой программы, файла и др. Однако большинство из подобных программ являются всего лишь текстовым редактором наподобие блокнота. Отличаются они от вышеуказанного редактора лишь тем, что имеют подсветку синтаксиса. Однако в некоторых случаях, такого функционала программы оказывается недостаточно. Программисту бывает необходимо быстро находить различные части документа. И вот, наконец-то, в появилась программа, позволяющая решить эту проблему. Программа называется SynWrite. Её отличительная особенность – наличие навигационной панели с деревом, котор...

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

    Что такое патч (patch)?

    Патч, или заплатка — это небольшой текстовый документ, содержащий суть изменений между двумя разными версиями исходных текстов. Патчи создаются с помощью программы "diff". Для правильного применения патча вам нужно знать, на основе чего он был создан, и в какую новую версию патч превратит исходные тексты ядра. И то и другое может быть представлено в метаданных файла патча и, возможно, в его названии.

    Как применить или отменить патч?

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

    Патчи для ядра Linux генерируются относительно родительского каталога, содержащего исходные тексты ядра.

    Это означает, что пути к файлам внутри файла патча содержат имя директории исходных текстов ядра, относительно которой этот патч генерировался (или имена некоторых других директорий подобно «a/» или «b/»).

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

    Чтобы отменить примененный патч, используйте ключ -R. Например, если вы применили патч следующим образом:

    Patch -p1 < ../patch-x.y.z

    то отменить его можно так:

    Patch -R -p1 < ../patch-x.y.z

    Как передавать файл заплатки/патча программе "patch"?

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

    Patch -p1 < path/to/patch-x.y.z

    Программе "patch" можно передать имя файла, используя ключ -i, как в следующем примере:

    Patch -p1 -i путь/к/патчу-x.y.z

    Если файл патча содержится в архиве gzip или bzip, и вы не хотите распаковывать его заранее, можно вызвать "patch" так:

    Zcat path/to/patch-x.y.z.gz | patch -p1 bzcat path/to/patch-x.y.z.bz2 | patch -p1

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

    Gunzip patch-x.y.z.gz bunzip2 patch-x.y.z.bz2

    Это даст вам обычный текстовый файл, который можно передавать программе "patch" через стандартный ввод или через ключ -i, как вам захочется.

    К числу других интересные ключей программы "patch" относятся -s, вынуждающий программу не выводить никаких сообщений, кроме сообщений об ошибках, что позволяет лучше их заметить, и ключ --dry-run который заставляет программу просто выдать листинг того, что будет происходить, а в реальности ничего не менять. Наконец, ключ --verbose указывает программе "patch" о потребности вывода максимума информации о происходящем.

    Основные ошибки

    Когда программа "patch" применяет патч, она пытается проверить файл разными способами. В частности, проверяется, что файл является допустимым патч-файлом и что код, окружающий биты, которые должны быть изменены, соответствует контексту патча.

    Если программа "patch" считает, что в патче что-то выглядит неправильно, она может выбрать один из вариантов поведения — отказаться проводить изменения и закончить работу или попытаться найти способ применения патча с небольшими изменениями.

    Один из примеров ситуации «что-то не так», которую программа пытается исправить, — это когда контекст изменений присутствует, нужные строки находятся, но у них другие номера. Так может случиться, к примеру, если программа "patch" делает изменения в середине файла, но по каким-то причинам несколько строк в начале файла были добавлены или удалены. Если все остальное в порядке, программа обычно подгоняет номера строк и применяет патч.

    Всякий раз, когда программа "patch" применяет патч с его предварительной модификацией, она сообщает вам, что патч применен с "подгонкой" ("fuzz").

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

    Когда программа встречает изменения, которые она не может сделать даже с подгонкой, она отвергает их и производит файл с расширением.rej (reject file). Вы можете прочитать его, чтобы точно узнать, какие изменения не удалось применить, и при желании что-то исправить.

    Если вы не применяете к исходным текстам своего ядра неофициальные патчи, а используете только патчи с ресурса kernel.org, применяя их в правильном порядке, и не делаете самостоятельных изменений в исходных текстах ядра, то вы никогда не увидите сообщений "fuzz" или "reject" от программы "patch". Если они будут выдаваться, это свидетельствует об порче ваших локальных исходных текстов или скаченного патча. Вам стоит попробовать снова закачать патч, а если и это не устранит проблемы, то следует скачать полные исходные тексты ядра с kernel.org.

    Давайте посмотрим на другие сообщения, которые может генерировать программа "patch".

    Если программа останавливается и выводит сообщение "File to patch:", значит она не смогла найти файл патча. Обычно это означает, что вы забыли указать ключ -p1 или находитесь не в нужной директории. Но иногда так случается, когда вы применяете патч, для которого нужен ключ -p0, а не -p1 (исследуйте файл патча на предмет этого, и если это так, то это ошибка человека, создавшего патч, и она поправима).

    Если вы получили сообщение "Hunk #2 succeeded at 1887 with fuzz 2 (offset 7 lines)." или подобное, это означает, что программа "patch" регулировала применяемые изменения (в данном случае пришлось передвинуться на 7 строк от того места, где они должны были применяться, чтобы их стало можно применить). Результирующий файл может получиться правильным или неправильным в зависимости от причин, по которым исходный файл был не таким, как ожидалось. Так часто случается, когда вы пытаетесь применить патч не к той версии ядра.

    Если вы получили сообщение "Hunk #3 FAILED at 2387.", это означает что программа не смогла применить патч даже с подгонкой. В этом случае генерируется файл.rej с информацией о неудавшемся изменении, а также файл с расширением.orig, содержащий оригинальный текст, который не удалось заменить.

    Сообщение "Reversed (or previously applied) patch detected! Assume -R? [n]" означает, что программа обнаружила, что патч уже применен.

    Если вы действительно применяли этот патч и вторичное применение — это ошибка, нажмите [n] и завершите выполнение программы. Если вы применяли его, а теперь хотели отменить, просто забыв ключ указать -R, нажмите [y]. Такое также случается, когда человек, создававший патч, поменял местами исходный и целевой каталоги, и в этом случае применение патча и заключается в отмене изменений.

    Сообщение "patch: **** unexpected end of file in patch" или "patch unexpectedly ends in middle of line" означает, что программа не может обнаружить в файле патча нужное содержание. Это значит, что либо вы некорректно загрузили патч, либо пытаетесь применить патч не в разархивированном виде, либо применяете патч, переданный через почтовый клиент или что-то и подобное, разбивающее длинные строки на две. Зачастую такие предупреждения могут легко быть устранены путем объединения (конкатенации) таких двойных строк.

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

    Есть ли альтернативы программе "patch"?

    Они есть.

    Можно использовать программу "interdiff" (http://cyberelk.net/tim/patchutils/) для создания патча, представляющего разницу между двумя патчами, и дальнейшего его применения.

    Она позволит вам перейти, например, от 2.6.12.2 к 2.6.12.3 за один шаг. Флаг -z программы interdiff позволяет работать с патчами в архивах gzip и bzip2, не извлекая их заранее вручную и без использования zcat и bzcat.

    Вот пример:

    Interdiff -z ../patch-2.6.12.2.bz2 ../patch-2.6.12.3.gz | patch -p1

    Однако, хотя эта программа поможет вам сэкономить один или два шага, рекомендуется применять все шаги, поскольку в некоторых случаях interdiff может сработать неправильно.

    Другой альтернативой является сценарий "ketchup", написанный на языке python, который автоматически скачивает и применяет патчи (http://www.selenic.com/ketchup/).

    Другими интересными инструментами являются diffstat, который показывает сводку изменений, сделанных программой patch; lsdiff, который выводит краткий перечень файлов, затрагиваемых заданным патч-файлом, вместе с номерами изменяемых строк; и grepdiff, показывающий список файлов, модифицируемых патчем, для которых элементы патча содержат заданное регулярное выражение.

    Где я могу скачать патчи?

    Не инкрементальность патча означает, например, что патч 2.6.12.3 подходит для обновления основной версии 2.6.12, но не промежуточной версии 2.6.12.2. Для применения патча 2.6.12.3 к существующему ядру 2.6.12.2 вы должны сперва отменить патч 2.6.12.2 (перейти назад к версии 2.6.12), а затем применить патч 2.6.12.3.

    Вот небольшой пример:

    $ cd ~/linux-2.6.12.2 # переход в директорию текстов ядра

    $ patch -p1 -R < ../patch-2.6.12.2 # отмена 2.6.12.2 патча

    $ patch -p1 < ../patch-2.6.12.3 # применение нового 2.6.12.3 патча

    $ cd .. $ mv linux-2.6.12.2 linux-2.6.12.3 # переименование

    Ядра -rc: релиз-кандидатные ядра

    Это опытные ядра, выпускаемые Линусом, когда он сочтет, что текущее дерево git (приложение управления исходными текстами ядра) находится в состоянии, достаточно пригодном для тестирования.

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

    Это хороший выбор для тех, кто хочет тестировать новые ядра, но, на самом деле, не хочет экспериментировать. (Таким людям следует прочитать ниже разделы -git и -mm ниже).

    Патчи -rc — не инкрементальные, они применяются к базовому ядру 2.6.x , подобно патчам 2.6.x.y, отмеченным выше. Часть номера версии ядра до суффикса -rcN указывает номер версии ядра, в которую, в конечном счете, все должно превратиться.

    Таким образом, 2.6.13-rc5 означает, что это пятый кандидат-релиз для ядра 2.6.13, и патч должен применяться к версии 2.6.12.

    Вот три примера наложения этого патча:

    # первый пример, делающий из 2.6.12 версию 2.6.13-rc3

    $ cd ~/linux-2.6.12 # переход в директорию текстов ядра

    $ patch -p1 < ../patch-2.6.13-rc3 # применение патча

    $ cd .. $ mv linux-2.6.12 linux-2.6.13-rc3 # переименование

    # переход из 2.6.13-rc3 в 2.6.13-rc5 $ cd ~/linux-2.6.13-rc3 # переход в директорию текстов ядра

    $ patch -p1 -R < ../patch-2.6.13-rc3 # отмена патча 2.6.13-rc3

    $ patch -p1 < ../patch-2.6.13-rc5 # применение нового 2.6.13-rc5 патча

    $ cd .. $ mv linux-2.6.13-rc3 linux-2.6.13-rc5 # переименование

    # наконец попытка перехода от 2.6.12.3 к 2.6.13-rc5

    $ cd ~/linux-2.6.12.3 # переход в директорию

    $ patch -p1 -R < ../patch-2.6.12.3 # отмена 2.6.12.3 патча

    $ patch -p1 < ../patch-2.6.13-rc5 # применение 2.6.13-rc5 патча

    $ cd .. $ mv linux-2.6.12.3 linux-2.6.13-rc5 # переименование

    Ядра -git

    Эти ежедневные снимки дерева ядра Линуса (сделанные в репозитарии git, поэтому такое название).

    Эти патчи обычно ежедневные и представляют текущее состояние версии Линуса. Они более экспериментальные, чем -rc ядра, поскольку генерируются автоматически даже без беглого взгляда на их работоспособность.

    Патчи -git — не инкрементальные и применяются к базовому ядру 2.6.х или базовому ядру 2.6.x.rc, что видно из их имен. Патч с именем 2.6.12-git1 применяется к ядру 2.6.12, а патч с именем 2.6.13-rc3-git2 — к 2.6.13-rc3.

    Вот несколько примеров применения патчей:

    # из 2.6.12 к 2.6.12-git1

    $ cd ~/linux-2.6.12 # переход в нужный каталог

    $ patch -p1 < ../patch-2.6.12-git1 # применение патча 2.6.12-git1

    $ cd .. $ mv linux-2.6.12 linux-2.6.12-git1 # переименование

    # от 2.6.12-git1 к 2.6.13-rc2-git3

    $ cd ~/linux-2.6.12-git1 # переход в нужную директорию

    $ patch -p1 -R < ../patch-2.6.12-git1 # отмена патча 2.6.12-git1 # теперь вы имеете ядро 2.6.12

    $ patch -p1 < ../patch-2.6.13-rc2 # применение патча 2.6.13-rc2 # ядро теперь 2.6.13-rc2

    $ patch -p1 < ../patch-2.6.13-rc2-git3 # применение патча 2.6.13-rc2-git3 # ядро теперь 2.6.13-rc2-git3

    $ cd .. $ mv linux-2.6.12-git1 linux-2.6.13-rc2-git3 # переименование

    Ядра -mm

    Это экспериментальные ядра, выпускаемые Андрю Мортоном (Andrew Morton).

    Ветка -mm является неким видом полигона для образования патчей с новыми возможностями и другими экспериментальными особенностями.

    После того, как некоторый патч доказывает свою ценность в ветке -mm в течении какого-то времени, Андрю предлагает его Линусу для включения в основную ветку.

    Хотя по установленным правилам эти патчи передаются Линусу через ветку -mm, эти правила не всегда соблюдаются. Мейнтейнеры подсистем (или просто разработчики) иногда пересылают свои патчи напрямую Линусу, даже если они были объединены и протестированы в -mm (а иногда даже без предварительного тестирования в -mm).

    Для обеспечения максимального тестирования в большинстве случаев следует стремиться получать патчи через -mm.

    Эта ветка находится в постоянном развитии и содержит многочисленные экспериментальные возможности; имеется много отладочных патчей, не пригодных для магистральных веток и т.д. Она является наиболее экспериментальной из всех ветвей, описываемых в данном документе.

    Эти ядра не подходят для использования в системах, которые должны быть стабильным, при их использовании имеется больше риска, чем при работе с ядрами из какой-либо другой ветки (не забывайте о резервном копировании — это нужно делать при использовании любого экспериментального ядра, и тем более при работе с ядрами из ветки -mm).

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

    Тестирование ядер -mm является весьма похвальным занятием и заключается в том, чтобы отсеять регрессии, отказы, повреждения данных(и другие ошибки) до их применения Линусом в основных ветвях. Но тестировщики ветви -mm должны понимать, что в этих версиях ошибок больше, чем в любой другой.

    Версии ядер -mm не выпускаются по какому-либо установленному плану, но обычно в промежутке между выпусками ядер -rc выходит несколько версий ядра -mm (обычно от одной до трех). Патчи ветки -mm применяются к базовому ядру 2.6.x (до выхода -rc версии) или к ветке -rc Линуса.

    Вот несколько примеров того, как их применять:

    # переход от 2.6.12 к 2.6.12-mm1 $ cd ~/linux-2.6.12 # переход в директорию 2.6.12

    $ patch -p1 < ../2.6.12-mm1 # применение патча 2.6.12-mm1

    $ cd .. $ mv linux-2.6.12 linux-2.6.12-mm1 # переименование

    # переход от 2.6.12-mm1 к 2.6.13-rc3-mm3 $ cd ~/linux-2.6.12-mm1 $ patch -p1 -R < ../2.6.12-mm1 # отмена патча 2.6.12-mm1 # теперь вы имеете ядро 2.6.12

    $ patch -p1 < ../patch-2.6.13-rc3 # применение патча 2.6.13-rc3 # теперь вы имеете ядро 2.6.13-rc3

    $ patch -p1 < ../2.6.13-rc3-mm3 # применение патча 2.6.13-rc3-mm3

    $ cd .. $ mv linux-2.6.12-mm1 linux-2.6.13-rc3-mm3 # переименование

    На этом список разъяснений по различным ядра деревьев можно закончить.

    Я надеюсь, что вам теперь ясно, как применять различные патчи и помочь в тестировании ядер.

    Особая благодарность Рэнди Данлэп (Randy Dunlap), Ролфу Айке Беру (Rolf Eike Beer), Линусу Торвальсу (Linus Torvalds), Бого Эггерту (Bodo Eggert), Йоханнесу Стезенбаху (Johannes Stezenbach), Гранту Коди (Grant Coady), Павлу Мачеку (Pavel Machek) и другим, которых я забыл указать, за помощь в создании данного документа.

    Для применения патчей в Git существуют две команды, это git apply и git am .

    Как применить патч (git apply)

    Для применения патчей, которые были созданы командой git diff , используется команда git apply :

    Git apply my-patch.patch

    Данная команда применяет патч к вашим текущим файлам в рабочем каталоге. Никаких коммитов не создается.

    Как применить патч и создать коммит (git am)

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

    Чтобы применить такой патч и сразу же автоматически создать коммит, используется команда git am :

    Git am --signoff

    Использование ключа --signoff позволяет дописать в комментарий к коммиту свое имя — в комментарии к коммиту будет добавлена строка «Signed-off-by: ваше имя ». Делается это для того, чтобы в будущем определить, кто именно применил данный патч.

    Как аккуратно применить патч

    Хорошей практикой является применение патча с предварительной проверкой того, что этот патч будет успешно применен. То есть вы до применения патча сможете подготовить свой код. Это позволяет избежать конфликтов и некоторых других последствий.

    Сначала можно посмотреть, что именно будет изменять патч, для этого выполняется команда git apply с ключом --stat . Эта команда выводит статистику о патче и не изменяет никаких ваших файлов.

    Git apply --stat my-patch.patch

    Затем проверяем, что будет, если применить патч. То есть можно проверить, не применяя патч, что произойдет, если его применить. Для этого используется команда git apply с ключом --check . Данная команда только выполняет проверку, патч не применяется, ваши файлы не изменяются.

    Git apply --check my-patch.patch

    Если никаких ошибок не отобразилось, то при применении данного патча никаких проблем не будет. В противном случае вы сможете увидеть, какие возникнут ошибки, если применить патч.

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

    Git apply my-patch.patch

    Или, используя git am .