patchコマンドについて

このQ&Aのポイント
  • パッチコマンドについて詳しく教えてください。RHEL5環境で使用する方法や注意点などを教えてください。
  • RHEL5の環境でパッチコマンドを使用してRPM変換しようとしていますが、エラーメッセージが表示されます。Hunk #1 FAILED at 76というエラーメッセージの意味や解決策を教えてください。
  • RHEL5環境でパッチコマンドを使用してRPM変換しようとしていますが、パッチの適用に失敗しました。Hunk #1 FAILED at 76というエラーメッセージが表示されました。このエラーメッセージの意味や解決策を教えてください。
回答を見る
  • ベストアンサー

patchコマンドについて

OS RHEL5の環境です。 SRPMに対象パッチを含めてRPMにしようとしています。 RPM変換時、またpatchコマンドにて対象ファイルにパッチをあてると、 Hunk #1 FAILED at 76. Hunk #2 FAILED at 123. Hunk #3 FAILED at 149. Hunk #4 FAILED at 204. Hunk #5 FAILED at 238. Hunk #6 succeeded at 324 with fuzz 1 (offset 40 lines). のようにでますが、どういう意味でしょうか。 一行目であれば、適用先のファイルもしくはパッチファイルの76行目の修正が必要ということでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

パッチそのものを見たことありますか? 正体はテキストファイルで、diffの出力です。 > Hunk #1 FAILED at 76. は 「適用先の76行目(付近)を変更しようとしたけれど、patchに書いてある文字列と違ってて、どこ変えていいかわからないので、変更できなかった」 > Hunk #6 succeeded at 324 with fuzz 1 (offset 40 lines). は 「該当する文字列が見付かったので変更したけど、patchに書いてある行とちがってた(40行ほど)」 ということです。 こういう場合、元のファイルのコピーが ~.orig パッチに失敗した部分が ~.rej と言う名前で作られるので、内容を確認できます。熟練者なら、その内容から手動で変更することもできます。 ただ、これ、違いすぎませんか? そのパッチと、ソースのバージョンは一致していますか?

nobu-o
質問者

お礼

ご回答いただき、ありがとうございます。 参考にいろいろ調べましたが、他のpatchファイルが先にソースを書き換えたためうまく適用できないようでした。 先にこのファイルのみをソースに対してpatchコマンドで適用するとうまくいきました。が、他のパッチとあわせて適用できるよう修正の必要がありそうです。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「パッチに『最初の部分は 76行目から当ててね』って書いてあるんだけど, 適用しようと思ったらそこは全然違うからあきらめた」 だったかなぁ.

nobu-o
質問者

お礼

ご回答いただき、ありがとうございます。 参考になりました。

関連するQ&A

  • patch コマンド -p について

    Linuxでpatchを当てた事がなく、Solarisでのイメージしかないのですが、Solarisでは # patchadd パッチファイル だったと思います。 linuxだとカレントディレクトリにパッチがあった場合、 # patch < パッチファイル では実行できないのでしょうか。 調べて見ると「-p」を指定しており、 -p0 パス名を修正しない (例 /tmp/src/patch) -p1 最初の「/」を削除する (例 tmp/src/patch) -p2 次のディレクトリまで削除する (例 src/patch) とありますが意味がよくわかりません。 お手数ですがご教授頂けると助かります。

  • qmail-date-localtime.patchでエラー

    はじめまして、ZEATと申します。 qmailでメールサーバを構築しようと思っていますが、 qmail-date-localtime.patchを当てようと 以下のコマンドを実行したら、エラーが出てしまいます。 patch -p1 < ../qmail-date-localtime.patch -----エラー内容-------- missing header for unified diff at line 7 of patch patching file date822fmt.c Hunk #1 FAILED at 1. Hunk #2 FAILED at 13. 2 out of 2 hunks FAILED -- saving rejects to file date822fmt.c.rej ご教授お願いします。 linux : Redhat9 qmail : qmail-1.03 よろしくお願いします。

  • とあるエロゲーの修正パッチについて

    学園迷宮エロはぷにんぐ!というエロゲーで修正パッチが必要なんですが、解凍して表示されたファイル「patch.xp3」というファイルをゲームがインストールされているフォルダで、Adobe Readerで「patch.xp3」を開けませんでした・・・などというのがでてきました。どうすれば修正パッチを手に入れられますか? 僕はこういうこと詳しくないので出来るだけ詳しくわかりやすく教えて頂くとありがたいです。

  • 追奏のオーグメントの修正パッチの不具合

     地雷ソフトが2012年に発売した「追奏のオーグメント」の修正パッチ(aug_patch_101.exe 58.9MB)なんですが、Windows7でパッチを当てると「いくつかのインストールファイルが正しくありません。新しくダウンロードをしなおしてからインストールを再度実行してください」というメッセージが出て、指示されたように再ダウンロードしても同様のメッセージが出て修正できません。  この場合、どのように対応すればよいのでしょうか。  メーカーのサイトはすでに閉鎖されているようなので、新しいバージョンのパッチも見当たりません。

  • パッチの作り方

    おはようございます。 ふと疑問に思ったのですが、 パッチ(patch)って、どうやって作るのでしょうか? 今、C#でプログラムを書いているのですが、 修正が必要になった場合、パッチの方が効率的ですよね。 ただ、その作り方がまったく検討がつきません。 ソースコードは自分で持っている場合、相違点・追加点はわかるとは思いますが、 それをどうやってパッチのファイルにして、適用させるのでしょうか? その仕組みとか載っているサイトはないでしょうか?

  • PCゲーム「3days」の修正パッチの在り処は?

    2013年にLassから発売されたPCゲーム「3days-満ちてゆく刻の彼方で-」の修正パッチ(patch201.zip)を探しています。 メーカーのWebサイト(http://lass.jp/index2.html)からはすでにダウンロードできず、名和桜もなき今、どうやって入手すればよいのかわからず困っています。 どなたか、パッチファイルの在り処を知りませんか。

  • インストール後のパッチ適用について

    こんにちわ。Oracle初級者です。 現在Oracle9iのインストールを実施しているのですが、 Oracle9.2.0.1インストール⇒PSR 9.2.0.4インストール⇒CPU 3811887の順番で行い、最後のCPU適用で『OPatch succeeded』となるのですが、 $ opatch lsinventory を実行したときの表示に、適用されているパッチ情報がでてきません。 ログを確認すると以下のメッセージを見つけました。 --------------------------------------------------------------- Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/transform/Source at opatch.LsInventory.getOneOffList(LsInventory.java:671) at opatch.LsInventory.main(LsInventory.java:243) Result: There is no Interim Patch OPatch succeeded. ---------------------------------------------------------------- このメッセージが原因で、表示されないのではないかと考えています。どなたかご教授をお願いします。

  • ソースパッケージからビルドできない?

    参考サイト http://www.asahi-net.or.jp/~aa4t-nngk/mondo.html mondorescueの件でやってます。 項目の >ソースパッケージからビルドする場合 から root# cd /var/tmp/mondo root# rpmbuild --rebuild mondo-X.X.X-X.xxx.src.rpm これを手本にやってます。 mindi, mindi-busybox, afio, buffer これはできたのですが、 最後にやるmondoはエラーが出てできません。 ○打ったコマンド $ rpmbuild --rebuild mondo-3.0.0-1.rhel6.src.rpm $ rpmbuild --rebuild --target i686-redhat-linux mondo-3.0.0-1.rhel6.src.rpm と、両方やってみました。 エラーは・・・ mondo-3.0.0.1.rhel6.src.rpm をインストール中です。 警告: InstallSourcePackage at: psm.c:244: ヘッダ V4 DSA/SHA1 Signature, key ID 37db9883: NOKEY 警告: ユーザ pb は存在しません - root を使用します 警告: グループ pb は存在しません - root を使用します 警告: ユーザ pb は存在しません - root を使用します 警告: グループ pb は存在しません - root を使用します ビルド対象プラットフォーム: i686-redhat-linux ターゲット i686-redhat-linux 用にビルド中 エラー: ビルド依存症の失敗: newt-devel > 0.50 は mondo-3.0.1-1.rhel6.i686 に必要とされてます どの様にやればビルドできるのでしょうか?

  • ゆずソフトの「ぶらばん!」(おそらく旧版)というゲームをやり始めたので

    ゆずソフトの「ぶらばん!」(おそらく旧版)というゲームをやり始めたのですが・・・ 主人公の部長就任が決まって、主人公の「なんでこんなことにー」という叫びのあとでエラーが発生してそれ以降のプレイができなくなります。(ここでムービーでも入るんですかね) 完全にソフトが応答しなくなるわけではないのですが、続きがプレイできません。 エラーのメッセージ内容 「エラーが発生しました ファイル:02ks 行:3 タグ:stopvideo(->エラーの発生した前後のタグを示している場合もあります) EAccessViolation」 修正パッチの v1.10、v1.11 (Patch.xp3とpatch2.xp3)をゲームファイルと同じフォルダに入れ、DirectX9.0 Oct04が入ってるのも確認したのですが、同じエラーが発生します。 一体どうすればこのエラーを解決できますか・・・誰か教えて下さい。OSはWindows2000です。 筆者はPCに関してあまり知識がありません・・・できれば具体的にお願いします!

  • patchコマンドってどのrpmに入っているの?

    現在Redhat Linux 7.0を入っています。使いたいソフトをコンパイルしたいのですが、パッチを当てる時点でpatchコマンドが使えず困っています。どうやったら使えるようになるかご存知の方教えていただけませんか?