|
|
次のページ
前のページ
目次へ
5. カーネルへのパッチあて5.1 パッチをあてるカーネルを順番にアップグレードしていくための差分が,パッチとして配布さ
れています.例えば,今バージョン 1.1.45 を使用していて,どこかに
` 例を続けます.
find . -name '*.rej' -print
とすると,カレントおよびその下のサブディレクトリに存在する,拡張子
.rej を持つファイルが全て標準出力に表示されます.
すべてうまく行ったら,3 章と 4 章で説明したように `
5.2 何か変だ(注意: この節は主に大昔のカーネルについてです) 以前,
patch -p0 < config.in.rej
として成功したら(パッチ当てに失敗しなかったら),カーネルの設定とコンパ
イルを続けてください.config.in.rej ファイルはそのまま残りま
すが,消去してしまって構いません.
まだ何か問題があるのなら,壊れたパッチを当ててしまったのかもしれません.
パッチを当てたものを元に戻すには,元のパッチで ` パッチ当てに失敗してしまったときの最良の手段は,新たにまっさらのソース
ツリー(例えば 5.3 .origファイルの消去いくつかパッチを当てると,
find . -name '*.orig' -exec rm -f {} ';'
とすれば .orig を全て始末できます.パッチ当てに失敗したファイ
ルに .rej ではなく # を使用するバージョンの
patch では,.orig のかわりにチルド(tilde)を
使用してください.
find . -name '*.orig' | xargs rm
あるいは「極めて確実だが,もう少しおしゃべりな」方法として:
find . -name '*.orig' -print0 | xargs --null rm --
があります.
5.4 他のパッチLinus が配布している以外にもパッチがあります(私はこれを「非標準」と呼 ぶことにします).このようなパッチを当てると Linus のパッチが当たらなく て非標準のパッチを取り除くはめになったり,ソースやパッチを修正しなけれ ばいけなかったり,新しいソースをインストールしなおしたり,あるいはこれ らを組み合せて対応しなくてはならなくなるかもしれません.これは大変スト レスのたまることですから,(悪い結果になりそうな)ソースの変更を望まない なら Linus のパッチを当てる前に非標準パッチを戻すか,さもなくば新しい ソースをインストールしなおしましょう.それから非標準のパッチがまだうま く当たるかどうか確認します.うまく行かなければ,古いカーネルを使い続け るか,うまく行くようにソースやパッチと戯れるか,新しいバージョンのパッ チが出てくるのを待って(もしかすると泣きついたりして)ください. 標準の配布に含まれていないパッチはどれくらい一般的なんでしょうか? 標 準でないパッチのうわさを聞くこともあるでしょう.私はカーソルが点滅する ことをどうしても許せないので,仮想コンソールでカーソルが点滅しないパッ チを当てていました(このパッチは(少なくとも以前は)新しいカーネルのリリー スに合わせて頻繁にアップデートされていました).しかし,ローダブルモジュール として開発されているほとんどの新しいドライバについては,``非標準'' の パッチが出現する頻度はとても低くなってきています. 次のページ 前のページ 目次へ |
[ |