Скрытый потенциал ручных сборок



         

Листинг4 наложение патча утилитой patch


Здесь, "my_patch.patch" – имя diff-файла, а "p1" – уровень вложенности. Номер <1> означает, что мы вызываем patch из основного каталога программы. Зачем это нужно? Откроем diff-файл в любом редакторе и посмотрим каким образом в нем задаются пути к файлам: "biew-561/biewlib/sysdep/ia32/os2/timer.c". Ага, путь начинается с "biew-561" — каталога, в который должна быть распакована подопытная программа. Но можем же мы переименовать его? Не знаю как вас, а вот лично меня цифры "561" очень раздражают и вообще мыщъх предпочитает короткие имена в стиле "bw". Ключ "-p1" заставляет утилиту patch игнорировать первое слева имя в цепочке, и тогда путь начинается с "/biewlib", при этом естественно, каталог "biew-561" (или как мы там его назовем) должен быть текущим. Если же мы накладываем patch извне каталога "biew-561", необходимо указать "-p0". Отсутствие ключа "-p" приводит к полному игнорированию путей и все файлы ищутся в текущем каталоге, где их, естественно, нет!

Установка патча — обратимая операция и при желании его можно удалить, воспользовавшись ключом "-R", возвращающим все измененные строки на место. Так же обратите внимание на ключ "-b", создающий резервные копии измененяемых файлов.

Иногда, к одной версии прилагается сразу несколько патчей, серьезно озадачивающих даже бывалых пользователей. Внимательно прочитайте описание: в каком порядке их следует устанавливать! Если же описание отсутствует — смотрите на изменения и разбирайтесь с порядком наложения самостоятельно или же вовсе откажитесь от установки. (По одной из версий Чернобыльская АС взорвалась в результате небрежно спланированного эксперимента, когда в инструкции, описывающей порядок действия оператора, было исправлено, зачеркнуто, и поверх зачеркнутого написано опять, вот оператор и растерялся…).

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

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




Содержание  Назад  Вперед