こんにちは、
私はソフトウェア開発者で、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を立ち上げることは可能ですが、これらの問題のために、解決する時間を見つける/作るまでは現時点ではできません。