Intereting Posts
Как перенаправить несколько портов в конфигурацию SSH с помощью LocalForward? Почему пользователь запускает процесс, когда он не вошел в систему? Задача Cron, случайное начало, но в пределах временного интервала Отключить нулевой пароль для пользователя root на машине Sunsolaris? Перезагрузка внутри режима спасения chroot Комбинированный генератор с памятью и управлением ресурсами как получить идентификатор устройства для определенного сетевого интерфейса? byobu – удалить двойной бар Какой загрузчик используется на Chromebook? Символическая ссылка для моего пользователя, не работает для root Как изменить ключи в Fedora 28 (проблема с VMWare?) Ярлыки Openbox не действуют после – отредактируйте или перезапустите X Точка монтирования для конкретного USB-порта Запретить yum проверять наличие обновлений при установке нового пакета идентификация встроенных разделяемых библиотек

Вопрос о патче

Я сделал файл патча с

diff -Naur src/bacula.h src/bacula.h.old 

и дайте мне такой файл

 --- src/bacula.h 2015-08-13 15:52:24 +0200 +++ src/bacula.h 2015-10-05 19:21:09 +0200 @@ -72,7 +72,7 @@ #endif #if HAVE_UNISTD_H # ifdef HAVE_HPUX_OS -# undef _INCLUDE_POSIX1C_SOURCE +/*# undef _INCLUDE_POSIX1C_SOURCE*/ # endif #include <unistd.h> #endif @@ -95,6 +95,7 @@ #if defined(_MSC_VER) extern "C" { #include "getopt.h" +#include "fcntl.h" } #endif 

Когда я использую патч, спросите меня

 can't find file to patch at input line 3 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |--- src/bacula.h 2015-08-13 15:52:24 +0200 |+++ src/bacula.h 2015-10-05 19:21:09 +0200 

Я хочу автоматически патч src / bacula.h, не спрашивая, как это сделать? я использую

patch -p1 < file.patch

Ваша команда patch -p1 file.patch ищет имена файлов в файле исправления. -p1 все в именах файлов до первого / ; в вашем случае это ведущий src/ . Поэтому команда ожидает найти bacula.h в вашем текущем каталоге.

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

Решение найдено, вы должны включить полный путь, см. Пример

НЕПРАВИЛЬНО!

 --- src/bacula.h 2015-08-13 15:52:24 +0200 +++ src/bacula.h 2015-10-05 19:21:09 +0200 

ВЕРНЫЙ!

 --- bacula-7.0.5/src/bacula.h 2015-08-13 15:52:24 +0200 +++ bacula-7.0.5/src/bacula.h 2015-10-05 19:21:09 +0200 

С первым неполным путем патч работает, но каждый раз задавать путь к bacula.h, а второй правильный, patch -p1 < patchfile работает и не запрашивает путь