そうだ、古いディストロサポートには qemu/KVM のような仮想マシンが本当にベストな方法だ。
「古いディストロサポート用に」という表現から生じうる誤解を解いておきたい。古いディストロでアプリケーションをコンパイルしたからといって、新しいディストロで動作しないわけではない。多くのライブラリはそのように後方互換性がある。
DSO のメジャーバージョンが変更された場合(非互換または破壊的変更)でも、一部のディストリビューションは古い互換ライブラリをインストールする機能を提供している。新しいディストロで古い互換ライブラリを見つける方が、古いディストロで新しい GLIBC を使うよりも容易だ。
私がやや主張したいのは、古いバージョンでコンパイルすることが実際に可能であれば(新しいバージョンが追加する機能がアプリケーションに実際に必要でないため)、そのバージョンを単一のバイナリダウンロードとして提供すべきだということだ(最も幅広い対象者に対応できるから)。
また繰り返すが、OpenSUSE Build Service はリモートの仮想化サービスのようなもので、複数の主要ディストリビューションでアプリケーションをコンパイルでき、出力は各ディストロに合わせたパッケージ群となる。
私が見る明確な問題は、補助ライブラリ(Xlib、GTK+、OpenSSL、freetype)のサポートではなく、基本的な GLIBC と GCC libstdc++にある。これの問題は、必要な DLL を bitcoin 実行ファイルと同じディレクトリに置いて LD_LIBRARY_PATH(man ld.so)を修正するだけでは済まないことだ。
例えば、選択したディストリビューションで利用可能なものより古い GTK+でコンパイルされた場合(DSO メジャーリリースの変更。これは/usr/lib{,64}/libgtk+-x11-2.0.so.0.1800.9 の 2番目の「0」で示される。まだゼロであることに注意。これは後方互換性の長期安定性を示す)、ライブラリをインストールせずに LD_LIBRARY_PATH で修正することでこの問題を簡単に解決できる。しかし glibc については、この方法で問題を解決するのはそう単純ではない。