パッチファイルを作成しました。
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
答え1
コマンドは、patch -p1 file.patch
パッチファイル内のファイル名を探します。あなたの場合は、-p1
ファイル名のすべてのエントリを最初のエントリまで削除してください。したがって、このコマンドは現在のディレクトリにあると予想されます。/
src/
bacula.h
ちなみに、例として提供されたファイル名に何か非常に奇妙な点があります。一致せず、一致しないパッチファイルのファイル名も一致しません。次回は自由にタイピングするよりもコピーして貼り付けることを強くお勧めします。
答え2
解決策が見つかりました。フルパスを含める必要があります。例をご覧ください。
間違った!
--- 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へのパスを指定するように求められます。 2番目の正しいパスを使用すると、正常に動作し、patch -p1 < patchfile
パスを要求しません。