Linuxって実際の所バイナリ互換どれくらいあるの?
原則としてディストリやバージョンが変われば
再コンパイルする必要があるってのはわかる。
でも実は再コンパイルしなくても動いたりするんじゃないか?
世の中にはソースを公開できないアプリがある。
そういうアプリを作っている会社がいちいち各ディストリや
各バージョンに対応するのは手間がかかる。
結果、自分のディストリ・バージョンに正式対応していないが
実は結構動くんじゃないかって疑問になった。
原則として動くんじゃないの
firefoxとかどこでも動くじゃん 時間の経過でglibcとかlibstdc++のABIや定義シンボルが変わって
動かなくなったことはあった。あとは使ってる共有ライブラリ名の
参照名が違っててロードできないとか。
だからバイナリ互換性にこだわるならstatic linkするしかない。
最近だと良くなってる気はするので、「いまどき」の環境で「いま」
リリースするバイナリが概ね動けばいいだけならおおよそ動くと思うけど。 VMwareみたいにlibX*を同梱する強者もいるよな。
そこまでするなら仮想マシンイメージで配布…無理か。
>>5
仮想イメージでってのは単体のアプリではあまり聞かないけど、アプライアンス方面では
増えてきてるよ。インストール調整費用が価格と稼動までの日数を押し上げてて
競争力の低下要因となっているからね。
>>7
アプライアンスは別に専用設計のH/Wって訳じゃないから。
特に適用業務ごとにスケールが大きく異なる場合、ベースは汎用のPCを
使うことはよくある。
>>8
アプライアンスなんだからH/W決め打ち出来るじゃん。 Ubuntuも結局はDebianとのバイナリ互換性が維持され続けてるな よっぽどコアな部分叩いてるんでもなければ普通にバイナリ互換だろ 普通って言うほど安心はできない。
ビルド環境のライブラリとバージョンが違ってトラブルとかあるし。
バイナリ互換があれば、どのディストリ、どのバージョンでも
アプリが使えるから、アプリのポータブル化して
あちこちに設定ファイルごとアプリもっていけるのにね。 もうそのあたりは仮想化におまかせで、/ 以下をまるごとパッキングに
なるのかなー。
それをLXCとかの下でカーネルだけ共通で動かすもよし、KVMで
カーネルから分離して動かすもよし。
まーでも実際問題市販アプリケーションってバイナリで出てくるからね >>17
kernelやglibcに限らず、依存してるさまざまなライブラリなんかのバージョンとかな。