こんばんわ、政です。 KIKUCHI Junichi wrote: > 菊池@春日部です。 > > At Sat, 22 Feb 2003 19:12:54 +0900 (JST), > Tsunehiro Hayashi wrote: > >>のようにやっていたのですが、ここで教えてもらったrpmを作成するやりかた >>でした。 >> >># make dep clean rpm >># rpm -Uvh --force ***.rpm >> >>とすれば更新はできるようになりました。しかし何故か、上記のように >>--forceオプションをつけないと、「競合しています」といったエラーが出て更 >>新してくれませんでした。 > > > rpm -ivh kernel-***.rpm でインストールできませんか? > > # もしかしたら、--force が必要な場合もあるかも。 想像の範囲ですが、makeの前にmake mrproperを実行しているのでは ないでしょうか? なので、リビジョンNo.等が全て同一になるので "競合しています"というエラーが出るのだと思います。 なので --forceが必要なのでは? > > rpm -Uvh してしまうと、現在のカーネルをアップグレードしてしまう > ので、新カーネルで起動しなかった場合困ってしまいます。 > 起動 FD があればとりあえずブートできますが。 > > -ivh でインストールし、旧カーネルでも起動できるように lilo.conf > なり、grub.conf を編集しておくべきです。 > 私も同感です。 > >>ビルドの作業を行っていたのは、/usr/src/linuxディレクトリだったのですが、 > > > 素のカーネルの tar ボールは、/usr/src/linux に展開されますね。 > 素のtarballを展開すると2.4.20等の場合は/usr/src/linux-2.4.20になります。 > >>どうも最初にrpmファイルを作ったときに >> >>/usr/src/redhat/BUILD/kernel-2.4.20 > > > root の rpm の builddir が、/usr/src/redhat/BUILD だからです。 > rootの.rpmmacrosにrootを指定していると/root/rpm/BUILDで作成されます。 > >>以下にソースツリーが新たに作られていたようで、そこには.versionと言うファ >>イルができていました。rpmは、このファイルを見てリビジョン番号の更新を >>しているのではないかと思います。このことに気づいてからリビルドしていま >>せんので推測ですが。 > > > rpm が見ているファイルのバージョン・リリース番号は、 > > hoge-1.0-0vl1.rpm > ^^^ ^^^^ > (1) (2) > > (1)がバージョン番号、(2)がリリース番号です。 > > カーネル自体のバージョン・リリース番号は、 > > Makefile , include/linux/version.h > > に書いてあると思います。make xconfig なりをしたあとかな…。 > > # というか、変えたい場合は編集してから make だと思う。 > 上記の内容は詳しくはないですが、素のkernelをmake rpmすると 私の経験ではkernel-2.4.20-1.i386.rpmという具合になります。 菊池さんのおっしゃる(2)リリース番号はmakeの度に自動的に 加算されます。make mrproperを実行してしまうとリリース番号が -1に戻ってしまうので最初に書いてあるような問題が出るのでは ないかと想像されます。