- 212 名前:login:Penguin mailto:sage [2011/11/15(火) 23:13:58.35 ID:VPm4YyC8]
- 動的ライブラリーのバージョン構成には、ディストリビューション毎に決定的な違いがある。
動的ライブラリーってのは、大抵、他の動的ライブラリーに依存してるから、うかつに一ヶ所だけ局所的にバージョンアップすると、うまく動かなくなることが多々ある。 ( gtk -> glib -> glibc) だから、動的ライブラリーのバージョンを上げる際には、実際には、ある程度全体的に上げる必要がある。 (局所的な更新だけでは済まない) アプリAの最新開発ソースを、開発元からgit cloneなどで得てビルドする場合、 大抵のディストリビューションの動的ライブラリーでは、古くてビルドに使えないケースが多い。 そこで、ビルドに必要なライブラリーとして、これも最新ソースを開発元から得てビルドすることになるのだが、ここでも再び、同様の問題が生じる。(これもライブラリーが古くてビルドできない!) この再帰的連鎖を延々と繰り替えした末に、やっと、アプリAのビルド準備が整う。いや、まだ整わない。 当然これらの動的ライブラリーは、システムのライブラリーパス(ld.conf等)で示される場所とは競合しないように調整しなければならない。 他の動的ライブラリーは、元々の古いライブラリーを前提としてビルドされているので、後からインストールされた新しいライブラリーではうまく動かない場合があるため。 (ライブラリーのバージョンがそれほど遠くなければ、実際にはリファクタリング程度なので、案外動いてしまうことも多いのだが、もしもアウトならば、最悪の場合システムの再機動不能すらありうる) この調整に対応する為に、今度はpkg-configやautomakeなどのビルドツールでも専用品構築が必要になる。と、いろいろ面倒なことが続く。 これらを調整してやっとアプリAのビルドの準備が整う。 これらの手間を最小にするための方法として、なるべく全体的に新しいバージョンのライブラリーで構成されたディストリビューションを選択すると捗る。 それによってビルド環境構築の手間が指数関数的に省ける。簡単に済む。 野良ビルドを重視して考察した場合、ディストリビューション毎には、それこそ決定的とも言えるレベルの違いがあると感じる。
|

|