投稿日:2003年09月22日 作成鷹の巣

No.12472 パッチの適応方法がわかりません。



パッチの適応方法がわかりません。

No.12472 投稿時間:2003年09月22日(Mon) 16:15 投稿者名:つかさ URL:

パッチの適応方法がわかりません。
はっきりいって土素人ですが、これを機に
パッチくらい自力であてられるようになっておきたいので、
ご指導願えれば助かります。
http://www.lac.co.jp/security/intelligence/CERT/CA-2003_25.html


Red Hat Network を使用しているユーザは 'up2date' ツールを使用。

No.12476 投稿時間:2003年09月22日(Mon) 18:17 投稿者名:そら URL:

別の投稿と同じつかささんだとすればLinuxディストリビューションはRedhatなんですよね?
私はTurboLinuxなのでRedhatの方はあまり詳しくわかりませんが、
提示されているサイトの中程に
> Red Hat Network を使用しているユーザは 'up2date' ツールを使用して
> システムを更新可能です。
とあるのでup2dateというツールを使えば簡単にできるようになっているのではないでしょうか?
TurboLinuxだとturbopkgというWindowsのWindowsUpdateみたいなツールがあるので
それのRedhat版じゃないかな?と推測してます。

こういったツールに頼らないのであれば、例えば
http://www.redhat.co.jp/download/
こちらの日本語Redhatホームページなどから
Redhat6.2用の様々なアップデートパッケージがダウンロードできるようですので
rpm -Uhv sendmail*.rpm
としてやれば簡単にアップデートできると思います。
アップデートの前後で
rpm -qa | grep sendmail
とコマンドを打ち込んでやると本当にアップデートできたのか?がわかるでしょう(笑)

ちなみに~.src.rpmとなっている方は開発環境のある人が
独自のオプションを追加したりしてソースからインストールしたい場合に使うものなので
とりあえずはベンダー側が提供してくれる標準のRPMを利用するだけでいい(SRPMSは必要ない)かと思います。

後は月並みですが
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/tipsindex.html
http://www.zdnet.co.jp/help/tips/linux/
このようなところを初めとするネット上の情報を色々探してみると勉強になると思います。

以上、私もまだ初心者なので間違っていたら識者の方の修正をお願いいたします(^^;

# Sendmailはつい最近にもバッファオーバーフロー関連のアップデートが出てたハズだけど
# Redhat6.2は対象外なんですね?


カーネルアップデートには注意してください。

No.12488 投稿時間:2003年09月22日(Mon) 23:34 投稿者名:帯鯖 URL:

帯鯖@名古屋です。

RedHat 系ディストリビューションでは、慣習的に

# rpm -Uvh [パッケージ名]

でのアップデートができますが、Windows 系と決定的に違うのは、
"新しいパッケージは古いカーネルに対応しない場合が多い" 点です。
「依存性の欠如」と出るのが、それです。

ある程度上のバージョンまでは # rpm -Uvh でアップデートできますが、
それ以上になると、依存性の欠如がだらだら出て、最終的に「カーネルが古い」と言われます。
--nodeps を付加してアップデートできたとしても、それは使い物になりません。

無論、カーネルを手動でアップデートをしても構いませんが、そうすると、今度は「パッケージが古い」と言われ、
起動できないアプリケーションが出るほか、最悪、カーネルパニックを起こす恐れがあります。

UNIX の難しい面ですが、/home, /etc 配下の設定ファイルなどはそのままの状態で
フルアップデートできる方法が RedHat にはありますので、そちらをお勧めします。
(CD-ROM を放り込むだけなんですけどね…)

> 別の投稿と同じつかささんだとすればLinuxディストリビューションはRedhatなんですよね?
> 私はTurboLinuxなのでRedhatの方はあまり詳しくわかりませんが、
> 提示されているサイトの中程に
> > Red Hat Network を使用しているユーザは 'up2date' ツールを使用して
> > システムを更新可能です。
> とあるのでup2dateというツールを使えば簡単にできるようになっているのではないでしょうか?
> TurboLinuxだとturbopkgというWindowsのWindowsUpdateみたいなツールがあるので
> それのRedhat版じゃないかな?と推測してます。
>
> こういったツールに頼らないのであれば、例えば
> http://www.redhat.co.jp/download/
> こちらの日本語Redhatホームページなどから
> Redhat6.2用の様々なアップデートパッケージがダウンロードできるようですので
> rpm -Uhv sendmail*.rpm
> としてやれば簡単にアップデートできると思います。
> アップデートの前後で
> rpm -qa | grep sendmail
> とコマンドを打ち込んでやると本当にアップデートできたのか?がわかるでしょう(笑)
>
> ちなみに~.src.rpmとなっている方は開発環境のある人が
> 独自のオプションを追加したりしてソースからインストールしたい場合に使うものなので
> とりあえずはベンダー側が提供してくれる標準のRPMを利用するだけでいい(SRPMSは必要ない)かと思います。
>
> 後は月並みですが
> http://www.atmarkit.co.jp/flinux/rensai/linuxtips/tipsindex.html
> http://www.zdnet.co.jp/help/tips/linux/
> このようなところを初めとするネット上の情報を色々探してみると勉強になると思います。
>
> 以上、私もまだ初心者なので間違っていたら識者の方の修正をお願いいたします(^^;
>
> # Sendmailはつい最近にもバッファオーバーフロー関連のアップデートが出てたハズだけど
> # Redhat6.2は対象外なんですね?


File to patch:には、何を入力すればよいのでしょうか。

No.12540 投稿時間:2003年09月25日(Thu) 16:31 投稿者名:つかさ URL:

> 帯鯖@名古屋です。
>
> RedHat 系ディストリビューションでは、慣習的に
>
> # rpm -Uvh [パッケージ名]
>
> でのアップデートができますが、Windows 系と決定的に違うのは、
> "新しいパッケージは古いカーネルに対応しない場合が多い" 点です。
> 「依存性の欠如」と出るのが、それです。
>
> ある程度上のバージョンまでは # rpm -Uvh でアップデートできますが、
> それ以上になると、依存性の欠如がだらだら出て、最終的に「カーネルが古い」と言われます。
> --nodeps を付加してアップデートできたとしても、それは使い物になりません。
>
> 無論、カーネルを手動でアップデートをしても構いませんが、そうすると、今度は「パッケージが古い」と言われ、
> 起動できないアプリケーションが出るほか、最悪、カーネルパニックを起こす恐れがあります。
>
> UNIX の難しい面ですが、/home, /etc 配下の設定ファイルなどはそのままの状態で
> フルアップデートできる方法が RedHat にはありますので、そちらをお勧めします。
> (CD-ROM を放り込むだけなんですけどね…)
>
> > 別の投稿と同じつかささんだとすればLinuxディストリビューションはRedhatなんですよね?
> > 私はTurboLinuxなのでRedhatの方はあまり詳しくわかりませんが、
> > 提示されているサイトの中程に
> > > Red Hat Network を使用しているユーザは 'up2date' ツールを使用して
> > > システムを更新可能です。
> > とあるのでup2dateというツールを使えば簡単にできるようになっているのではないでしょうか?
> > TurboLinuxだとturbopkgというWindowsのWindowsUpdateみたいなツールがあるので
> > それのRedhat版じゃないかな?と推測してます。
> >
> > こういったツールに頼らないのであれば、例えば
> > http://www.redhat.co.jp/download/
> > こちらの日本語Redhatホームページなどから
> > Redhat6.2用の様々なアップデートパッケージがダウンロードできるようですので
> > rpm -Uhv sendmail*.rpm
> > としてやれば簡単にアップデートできると思います。
> > アップデートの前後で
> > rpm -qa | grep sendmail
> > とコマンドを打ち込んでやると本当にアップデートできたのか?がわかるでしょう(笑)
> >
> > ちなみに~.src.rpmとなっている方は開発環境のある人が
> > 独自のオプションを追加したりしてソースからインストールしたい場合に使うものなので
> > とりあえずはベンダー側が提供してくれる標準のRPMを利用するだけでいい(SRPMSは必要ない)かと思います。
> >
> > 後は月並みですが
> > http://www.atmarkit.co.jp/flinux/rensai/linuxtips/tipsindex.html
> > http://www.zdnet.co.jp/help/tips/linux/
> > このようなところを初めとするネット上の情報を色々探してみると勉強になると思います。
> >
> > 以上、私もまだ初心者なので間違っていたら識者の方の修正をお願いいたします(^^;
> >
> > # Sendmailはつい最近にもバッファオーバーフロー関連のアップデートが出てたハズだけど
> > # Redhat6.2は対象外なんですね?

引き続き・・・
sendmailのバージョン8.12.9で
なんとかパッチをインストールするところまできたんですが、
patch < prescan.8.12.patch
の後に、
File to patch:
というのが出てきます。
このとき、何を入力すればよいのでしょうか。


patchコマンドによるパッチの当て方

No.12541 投稿時間:2003年09月25日(Thu) 17:43 投稿者名:そら URL:

う~ん…なんか的外れな回答をしてしまったようですね…(^^;
失礼ながら「ど素人」という発言から「パッチをあてる」というのは
単にアップデートパッケージをインストールしたいということだと思い込んでおりました。
# 私自身も初心者なので…(笑)

で、問題の本当の意味(?)での「パッチをあてる」patchコマンドですけど
これはオリジナルのファイル(だいたいはプログラムソース)に
差分情報(patchファイル)を適用/更新するものですので
元々のプログラムソースがないことには使えないと思います。
件の「File to patch:」プロンプトよりも上に他にも色々メッセージが出てませんでしょうか?
私が入手したprescan.8.12.patchを見た限りでは
「conf.c」や「parseaddr.c」ファイルを更新するパッチのようです。
ですので恐らくC言語で書かれているこれら(を含むsendmailのソース)がある前提で
patchコマンドを利用してこのパッチを適用後、
そのソースをmakeコマンド等でコンパイル/インストールという流れになると思います。
ということで「このとき、何を入力すればよいのでしょうか」に対する回答は
そのpatchファイルが適用されるソースファイル(conf.cやparseaddr.cのフルパス指定)ということになる…かな?

パッチの当て方についてざっと説明するとこんな感じになると思いますが
上記のように場合によってはプログラムに関する知識も必要になりますし、
環境によってコンパイル時に出てくるメッセージにも違いがあると思うので
ここでその全てを説明するのは私にはちょっと無理ですm(_ _)m
~.patchファイルはプレーンテキストファイルだと思うので中身を覗いてみたり
diffコマンドを使って自分でpatchファイルを作ってみると色々わかるかも。

# ちなみに私は各種設定ファイル(~.conf)のバックアップと
# 現在の設定ファイルの差分をdiffコマンドで出力したpatchを保存してあります。
# なんらかの理由で再セットアップをするときやコピーサーバーを作るときにちょっと便利。
# …って識者の方々はこんな使い方しない?(^^;
# 私自身はFDClone(ファイル管理ソフト)、sl、quit(共にジョークソフト(^^;))、
# あとは自作CGIくらいしかmakeしたことないんですけど、
# 自鯖管理者の皆様はやっぱり各種セキュリティパッチを早めに当てるように
# rpmがリリースされるのを待たずにpatch&makeをしてる方々が多いのかなぁ…?


パッチをあてるディレクトリでpatchコマンドを実行すればいいはずです。

No.12549 投稿時間:2003年09月26日(Fri) 11:36 投稿者名:コンボ URL:

こんにちは。

> 引き続き・・・
> sendmailのバージョン8.12.9で
> なんとかパッチをインストールするところまできたんですが、
> patch < prescan.8.12.patch
> の後に、
> File to patch:
> というのが出てきます。
> このとき、何を入力すればよいのでしょうか。

cd sendmail-8.12.9/sendmail
patch < prescan.8.12.patch

でダメですか?
要はパッチをあてるディレクトリでpatchコマンドを実行すればいいはずです。


File to patch:には、何を入力すれば宜しいでしょうか。

No.12551 投稿時間:2003年09月26日(Fri) 12:38 投稿者名:つかさ URL:

> こんにちは。
>
> > 引き続き・・・
> > sendmailのバージョン8.12.9で
> > なんとかパッチをインストールするところまできたんですが、
> > patch < prescan.8.12.patch
> > の後に、
> > File to patch:
> > というのが出てきます。
> > このとき、何を入力すればよいのでしょうか。
>
> cd sendmail-8.12.9/sendmail
> patch < prescan.8.12.patch
>
> でダメですか?
> 要はパッチをあてるディレクトリでpatchコマンドを実行すればいいはずです。

みなさん、いろいろお返事ありがとうございます。
patch < prescan.8.12.patch
までやってみましたところ、
File to patch:
と何か聞かれてきてきます。
ここでは、なにを入力すれば宜しいでしょうか。
そらさんの方法でパスを入れてみたら、ちょっとうまくいきませんでした。


version違ったらだめでは?

No.12552 投稿時間:2003年09月26日(Fri) 12:50 投稿者名:stranger URL:

> patch < prescan.8.12.patch
> までやってみましたところ、
> File to patch:
> と何か聞かれてきてきます。
> ここでは、なにを入力すれば宜しいでしょうか。
> そらさんの方法でパスを入れてみたら、ちょっとうまくいきませんでした。

サイト情報によると
http://www.sendmail.org/patchps.html

prescan.8.12.patch: for 8.12.0 - 8.12.7, does not change version string

version違ったらだめではないのか?

sendmail-8.12.10にしたら


patchコマンドの動作を理解しましたか?

No.12553 投稿時間:2003年09月26日(Fri) 13:33 投稿者名:そら URL:

# 全文引用するのやめません、みなさん?(^^;

私も初心者なので(しつこい?)あまり強く言える立場じゃないんですが
つかささんのご質問はどうも対症療法的な考え方をしているような気がしてなりません。
つまり、「なぜそういった現象が起こるのか」という根本的な原因を追及する以前に
「とりあえず現状を乗り切るにはどうすればいいのか」を聞こうとしている気がします。
「File to patch:で何を入力すればよいか」というほぼ同じ内容を再投稿なさっていることから
結局、このプロンプトが何を意味するものなのかがわかっていらっしゃらないようですし?

対症療法的な質問を投稿すること自体は別に構わないと思いますが
つかささん自身、「パッチくらい自分であてられるようになっておきたい」ということでしたので
今後も色々なパターンに遭遇すると思われますから
C言語を勉強して…とまでは言いませんが
せめてpatchコマンドやコンパイルがどういった処理をするものなのか、くらいは
manコマンドやネット検索で勉強なさった方がいいと思うのですが…?

なんの解決策にも提示していない投稿ですみませんm(_ _)m


とりあえずパッチをあててしまいたいと思ってるんです。

No.12554 投稿時間:2003年09月26日(Fri) 14:40 投稿者名:つかさ URL:

> # 全文引用するのやめません、みなさん?(^^;
>
> 私も初心者なので(しつこい?)あまり強く言える立場じゃないんですが
> つかささんのご質問はどうも対症療法的な考え方をしているような気がしてなりません。
> つまり、「なぜそういった現象が起こるのか」という根本的な原因を追及する以前に
> 「とりあえず現状を乗り切るにはどうすればいいのか」を聞こうとしている気がします。
> 「File to patch:で何を入力すればよいか」というほぼ同じ内容を再投稿なさっていることから
> 結局、このプロンプトが何を意味するものなのかがわかっていらっしゃらないようですし?
>
> 対症療法的な質問を投稿すること自体は別に構わないと思いますが
> つかささん自身、「パッチくらい自分であてられるようになっておきたい」ということでしたので
> 今後も色々なパターンに遭遇すると思われますから
> C言語を勉強して…とまでは言いませんが
> せめてpatchコマンドやコンパイルがどういった処理をするものなのか、くらいは
> manコマンドやネット検索で勉強なさった方がいいと思うのですが…?
>
> なんの解決策にも提示していない投稿ですみませんm(_ _)m

すいません、仰るとおりです。
確かに今は会社の本番機の問題ですし、とりあえずパッチをあててしまいたいと思ってるんです。
もちろんここでのみなさんのいろいろなお返事は、大切にしようと思ってます。
ちょっと話がずれてしまった書き込みになってしまいましたが、お気をわるくしないで下さい。


唖然

No.12557 投稿時間:2003年09月26日(Fri) 18:23 投稿者名:さくらぎ URL:

> すいません、仰るとおりです。
> 確かに今は会社の本番機の問題ですし、とりあえずパッチをあててしまいたいと思ってるんです。

職場の動いている鯖にパッチの当て方もわからず行なうなんて信じられない。
ここは自宅サーバーのページなので何も書かなきゃ自宅鯖だと思って皆レスします
本番機ではとても怖くてアドバイスできないでしょう。


優先順位の判断を。patchは勘違いしてます。

No.12560 投稿時間:2003年09月26日(Fri) 23:02 投稿者名:かつ URL:http://www.kkoba.com/

つかささん、こんばんは。

> 確かに今は会社の本番機の問題ですし、とりあえずパッチをあててしまいたいと思ってるんです。
1)RPM等ディストリビューションのアップデートパッケージで対処
2)自分でコンパイルしたいなら、素直にsendmailの8.12.10のソースをダウンロード
のどちらかで直ぐ対処すべきで、優先順位を間違えてます。
その後、自宅サーバでも立ててパッチを当てるのを勉強すれば良いのでは?

patchが当たらないのは当然で、せっかくアドバイスをくれたstrangerさんの書き込みを落ち着いて
読んで、サイトの注意書きを見ればわかったはずです。

1)8.12.9でFIXされたバグ用のpatchがprescan.8.12.patchで、8.12.0-8.12.7にしか適用できません。
2)8.12.10でFIXされたバグ用のpatchは、 http://www.sendmail.org/parse8.359.2.8.html にあります。
なおかつ双方のpatchとも、「今自分が使っているバージョンをそのまま使いたい人用のバグFIXのpatch」です。
例えば上記2のpatchを8.12.9に当てた場合は、バージョンを 8.12.9-20030924 にすることが推奨と書いてあります。

ちなみに、patchが当たらない時は、以下のどれかで解決することが多いです。
1)今回のようにpatchとソースのバージョンが合っていない。
2)patchの中身のディレクトリが違うので、 patch -p? (?は数字)とオプションが必要。意味はman patch。
3)他のpatchと競合しているので、patchを当てる順序を変えるかどちらかのpatchを諦める。


|目次|掲示板|過去ログ目次|▲頁先頭|