こんにちは、
私はソフトウェア開発者で、Linux 上でのビルドには精通していますが、他の方々がより簡単にできるようにいくつかのヒントを提供しようと思いました。
動的リンクされた Linux 向けの単一ダウンロードパッケージを配布する際に一つの側面があります。「使用可能な最も古いバージョンの glibc/libstdc++を使うべきです。つまり、新しい機能やバグ修正が必要だと分かっていない限り、実行時のライブラリはより新しく、それらの修正を含んでいるものと考えてください。」
最新版の glibc/libstdc++に対してリンクする問題は、ユーザーにも最新のシステムを強いることになる点です(これらのバイナリを実行するために)。特定の理由がない限り、それは必要な前提条件であるべきではありません。そのような理由はドキュメントに説明されるべきです。より古いシステムで単純にリンクすれば、その古いシステムでも最新のシステムでも動作します。
特定の新しい GCC 最適化が本当に必要な C コードの部分がある場合は、最新の GCC バージョンから一度生成したダンプされた ASM ファイル(*.s)を提供し、ソースに含めることで、誰でも(古い GCC バージョンでも)コンパイルできるようにすることを検討してください。
いくつかの推奨事項を示します:
- バイナリのビルドには、使用可能な最も古いベースディストリビューションを使用してください。例えば、現在の Debian リリースの最新コピーではなく、_前回_の Debian リリースの最新コピーです。
- 静的バイナリを含むダウンロードを提供してください(リンク時に
-staticオプションを使用し、実行ファイル名にbitcoind-staticのように追加するとよいでしょう)。これは別のダウンロードファイルとして提供してください。 - ソースディストリビューションのビルドが、必要なライブラリのワーキングコピーから動作するようにしてください。特に boost と wxWidgets について、ビルドに非常に新しいバージョンが必要だと分かっている場合は、それぞれのビルドツリーから直接ビルドとリンクが動作するようにしてください(インストールする必要がないように)。/usr/local にインストールすることは問題になり得ますが(私にとっては確実に問題です)、ビットコイン専用にカレントディレクトリに置くのは問題ありません。結局のところ、ビットコインがビルドに必要なのはヘッダーファイルと DSO または*.a へのアクセスであり、実行時には DSO へのアクセスです。
24時間 365日稼働のヘッドレス bitcoind を立ち上げることは可能ですが、これらの問題のために、解決する時間を見つける/作るまでは現時点ではできません。