更新 - libcrypto と GLIBCXX_3.4.11 の問題がある人向け Linux x64 バイナリ
これは主に Fedora で、サイトのトップページにあるバイナリがビルドされた時よりも新しい openssl を使っていて問題が発生している人向けだ。
これらを試すか、以下の手順を使って自分でコンパイルしてほしい:http://heliacal.net/~solar/bitcoin/bitcoin-linuxbuild.pdf
http://heliacal.net/~solar/bitcoin/builds/Linux-amd64-SVN-102/
自分の Gentoo システムではダメだった。以下のエラーが出る。
$ bitcoin bitcoin: /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/libstdc++.so.6: version `GLIBCXX_3.4.11’ not found (required by bitcoin)
そして
$ ldd bitcoind ./bitcoind: /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/libstdc++.so.6: version `GLIBCXX_3.4.11’ not found (required by ./bitcoind) linux-vdso.so.1 => (0x00007fffc9bff000) libdl.so.2 => /lib/libdl.so.2 (0x00007ffeefbe1000) libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.4/libstdc++.so.6 (0x00007ffeef8d3000) libm.so.6 => /lib/libm.so.6 (0x00007ffeef64e000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007ffeef437000) libpthread.so.0 => /lib/libpthread.so.0 (0x00007ffeef21a000) libc.so.6 => /lib/libc.so.6 (0x00007ffeeeea4000) /lib64/ld-linux-x86-64.so.2 (0x00007ffeefde5000)
このファイルは静的リンクされていない。Gentoo システムが不安定な状態で、ソースコードをビルドできるようにアップグレードするのに時間がかかるため、これを使おうとしただけだ。
とにかく、バグレポートとして送っておく
そうだな、bitcoind を動かすためにこんなに苦労すべきではないだろうな。Fedora のバイナリを作ることを約束する人は、32 ビットと 64 ビットの両方を考慮してくれ。
C++ライブラリを静的リンクすることは可能だろうか? 可能だとして、許容される慣行なのか、それとも問題を引き起こすだろうか? プログラムにライブラリを同梱するのはどうだろう? 静的と言った時は OpenSSL のことだけを指していた 😊
glibcxx_3.4.11 のリンクは指定していないので、gcc が裏側で自動的にリンクしているのだろう。静的リンクを指示するコンパイラースイッチがおそらくあるはずだ。ライセンスの問題がどうなるかは不明だ。通常、コンパイラー関連のものは完全に再配布可能だ。
C++ ライブラリを静的リンクするように更新したんだ。GLIBCXX_ のバージョン問題を抱えている人、これを試して動くかどうか教えてくれないか?
http://heliacal.net/~solar/bitcoin/builds/Linux-amd64-SVN-103/
これらのバイナリの ldd 出力はこんな感じだ:
$ ldd bitcoind
linux-vdso.so.1 => (0x00007fffc2dff000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f8433a64000)
libm.so.6 => /lib/libm.so.6 (0x00007f84337e1000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f84335c3000)
libc.so.6 => /lib/libc.so.6 (0x00007f8433240000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8433c85000)
$ ldd bitcoin
linux-vdso.so.1 => (0x00007fff3f5b0000)
libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x00007f001d7d4000)
libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x00007f001d527000)
libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x00007f001d305000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x00007f001d0db000)
libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x00007f001cebf000)
libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x00007f001cc0b000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x00007f001c9c1000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00007f001c73b000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00007f001c505000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007f001c2bd000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007f001c0b9000)
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007f001beb3000)
librt.so.1 => /lib/librt.so.1 (0x00007f001bcab000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00007f001b9cd000)
libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x00007f001b7c9000)
libSM.so.6 => /usr/lib/libSM.so.6 (0x00007f001b5c0000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f001b3bc000)
libm.so.6 => /lib/libm.so.6 (0x00007f001b138000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f001af1b000)
libc.so.6 => /lib/libc.so.6 (0x00007f001ab98000)
/lib64/ld-linux-x86-64.so.2 (0x00007f001de13000)
libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x00007f001a98a000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f001a654000)
libcairo.so.2 => /usr/lib/libcairo.so.2 (0x00007f001a3d1000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f001a1be000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00007f0019fb4000)
libXi.so.6 => /usr/lib/libXi.so.6 (0x00007f0019da4000)
libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x00007f0019b9a000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00007f0019990000)
libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x00007f001978d000)
libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x00007f0019589000)
libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x00007f0019383000)
libz.so.1 => /lib/libz.so.1 (0x00007f001916c000)
libpcre.so.3 => /lib/libpcre.so.3 (0x00007f0018f3d000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00007f0018d24000)
libselinux.so.1 => /lib/libselinux.so.1 (0x00007f0018b05000)
libexpat.so.1 => /lib/libexpat.so.1 (0x00007f00188dc000)
libICE.so.6 => /usr/lib/libICE.so.6 (0x00007f00186c0000)
libuuid.so.1 => /lib/libuuid.so.1 (0x00007f00184bb000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f001829e000)
libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x00007f0018045000)
libdirectfb-1.2.so.0 => /usr/lib/libdirectfb-1.2.so.0 (0x00007f0017dc2000)
libfusion-1.2.so.0 => /usr/lib/libfusion-1.2.so.0 (0x00007f0017bb7000)
libdirect-1.2.so.0 => /usr/lib/libdirect-1.2.so.0 (0x00007f001799e000)
libpng12.so.0 => /lib/libpng12.so.0 (0x00007f0017777000)
libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0x00007f0017572000)
libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0x00007f0017369000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f0017164000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f0016f5e000) C++ ライブラリを静的リンクするように更新したんだ。GLIBCXX_ のバージョン問題を抱えている人、これを試して動くかどうか教えてくれないか?
こちらでは動きません。こう出ます:
./bitcoind: /lib/libc.so.6: version `GLIBC_2.8' not found (required by ./bitcoind) glibcxx_3.4.11 のリンクは指定していないので、gcc が裏側で自動的にリンクしているのだろう。静的リンクを指示するコンパイラースイッチがおそらくあるはずだ。ライセンスの問題がどうなるかは不明だ。通常、コンパイラー関連のものは完全に再配布可能だ。
これはリードデベロッパーが使っているシステムがおそらく「ブリーディングエッジ」(非常に新しい、ごく最近の、最新版)だからだ。これは最も広い対象に再配布することを目指したものをビルドするのに使うべきシステムではない。
私のスレッド http://bitcointalk.org/index.php?topic=612.0 に挙げた改善案も見てみてくれ。
Windows と MacOS のバイナリのダウンロードは、それぞれのライブラリ(boost/wxWidgets の件)を含まずに配布されているのか? Linux 固有の部分、たとえば glibc や GCC ツールチェインは、ランタイム再配布コンポーネントについては LGPL を使用している。X11 ライブラリの部分は MIT だと思う。GTK+ は LGPL のはずだ。Freetype は LGPL(あるいは BSD 系)だ。Expat は LGPL。OpenSSL は BSD+Notice だ(クレジットからすでに承知のことだろうが)。
ldd bin/{32,64}/bitcoin のリストを見たところ、ほぼすべてカバーできていると思う。