きわめて簡単に説明するなら、「CentOSはRHEL互換が基本、必要に応じてCentPlusを足す」「SL(FNAL版)はRHEL互換が基本だがやっぱり追加repoあり」「SL(CERN版)はRHEL互換にしよーかなー程度でカーネルにも改造加えたらー」ぐらい。
2012-08-09 19:37:21「RHEL互換ディストリビューションはftp://ftp.redhat.com/pub/redhat/linux/updates/enterprise/からSRPMをもらってきて、rpmbuildして作っているよってRHELと互換になる」という認識は *おおむね* 正しい。
2012-08-09 19:39:47なにが「おおむね」なのか、というのは、世間では「商標除去とか、redhat-releaseの書き換えとか、イメージ変更」ぐらいに思われている気がする。が、実際にはそれだけでもなくて、たとえばntpパッケージは各ディストリで設定を変えている。
2012-08-09 19:41:18なんでかっつーと、RHELのntpパッケージはデフォルトではhttp://t.co/fIvRNQlGとか見に行くから。さすがに道義的にマズいので、みなさん自主的に変更している。こういう変更は結構ちまちまと行われている。
2012-08-09 19:42:50この手の「互換ディストリビューションで細工しているパッケージ」は、*一応のルールとして* バージョン文字列の .elN の部分を .slN とか、自分のディストリを表す文字列に置き換えている。たまに忘れられているケースもあるが。
2012-08-09 19:45:02でだ。「ディストリビュータが細工を入れているかどうか」を確実に見きる方法は、たぶん存在しない。rpm -qa --queryformat '%{NAME} %{VERSION}-%{RELEASE} %{ARCH} %{Packager}\n' で近似はできるけども。
2012-08-09 19:51:48もちろんrpm -qiでSRPMを見て、RHELのやつと対応取っていけば分かるんだけども、コマンド一発やったー、という方法はパッケージを作っている人が真面目にspecを修正してくれているかに依存する。
2012-08-09 19:53:11で。RPMでも.debでもたいていのパッケージはそうなのだけど、ソースからのビルドには常に、「ビルド時の環境によって、できあがるバイナリがリンクしているライブラリが異なる」というリスクにさらされる。./configure の結果が環境によって違う現象、経験したことありますよね?
2012-08-09 19:54:42で、互換ディストリのたぐいは、この「ビルド時の環境によって結果違うぜ問題」のリスクを考えておいた方がいい。実際、CentOSもSLもこの手の問題をやらかしてしまっている。
2012-08-09 19:57:28たとえばScientific Linux CERN(CERN版SL)では、NTPパッケージに「知らない間に」mDNS対応ビルドが混ざりこんでしまったことがあった。dns_sd.hが./configure時に存在するとこーなる。
2012-08-09 20:00:50あるいはScientific Linux(無印=FNAL版)4系には、「yum-versionfix」なんぞという、RHELには存在しないパッケージが入っていたりする。
2012-08-09 20:02:42yum-versionfixは何かっつーと、SRPMのbuild時に%{dist}をセットし忘れていたせいで、RHELと揃わなくなったせい。RHELと同じバージョン文字列だとアップデート不能になって、yumを細工してアップデートされるようにした。
2012-08-09 20:03:40CentOSはNTPの独自設定ファイルを入れたバージョンを作るときに、バージョン文字列の付与をしくじって、やっぱり「RHELと同じバージョン文字列だとアップデート不能」をやらかしている。
2012-08-09 20:04:22で、バイナリはビルドする環境によって違うぜー問題というのに対応するために、tmverifyrpmsというスクリプトがある。CentOSはこれをかけて、互換性を確認していると明言している。SLもやってるらしい。
2012-08-09 20:08:40あと、ビルドは当然mockでminiroot展開して、ということをやっている、はず。でないとtmverifyrpmが一致しないケースが炸裂してbuilddの管理者が死ぬ。
2012-08-09 20:14:36で、「%{dist}をセットし忘れるなんてSLダメじゃーん」と思ったCentOSユーザーのあなた、Centはbuilddの管理者のトラックナンバーが1だったせいでリリースが遅れた事件をお忘れか。
2012-08-09 20:15:48あとは「FNALとCERNが共同で開発しているScientific Linux」というのも、ちょっと最近では微妙だったりする。昔はともかく今はFNALとCERNでそれぞれbuildd持ってるし、共通する魔改造パッケージもほぼない。
2012-08-09 20:19:27だいたい、FNALはSL、CERNはSLCと事実上別のリリースをしているわけでして。もっとも予算の出処とか、困ったときの対応とかは協働してるっぽいけども。
2012-08-09 20:20:25