Bitcoin-Core

red hat linux 的比特幣依賴項是什麼?比特幣編譯失敗

  • January 6, 2020

我在我的伺服器上使用 CentOS,當我嘗試使用 github 原始碼編譯比特幣時make -f makefile.unix,出現大量錯誤。我假設它們是由依賴錯誤引起的?

我已經看到一堆使用 apt-get 的基於 debian 的 linux 發行版的依賴列表,但我想知道 CentOS 需要什麼。使用 yum 從 debian 列表安裝依賴項會顯示軟體包不可用。

這是巨大的錯誤列表,如果有人想要的話: http: //pastebin.com/1y2wCH5N

如果你想在 CentOS 6 上編譯比特幣,你需要的不僅僅是比特幣;其他幾個依賴項要麼失去,要麼太舊。

詳情:

  • Boost 太舊了。CentOS 6 有 1.41 版本,但比特幣需要在 Boost 1.47 中首次引入的功能。
  • Berkeley DB 太舊了。CentOS 6 有 4.7 版,但比特幣想要 4.8 版(但請參閱下文了解更多資訊)。
  • 由於紅帽在 ECC 方面極其保守的法律立場,OpenSSL 可能缺少比特幣所需的一些橢圓曲線算法。(請參閱錯誤3199011020292等。)
  • 比特幣 GUI 分別支持 QR 碼和 UPnP 所必需的 qrencode 和 miniupnpc 庫完全缺失。(不過,僅伺服器建構不需要它們。)
  • 舊版本的比特幣程式碼庫不適用於 Qt 4.6,即 CentOS 6 附帶的版本,但需要 Qt 4.7。我用單線修復了這個問題,並在上游進行了修補。不過,這可能不會影響您,除非您出於某種原因正在建構舊程式碼。

您還需要這些軟體包,它們確實存在於 CentOS 6 中:

  • db4-開發
  • autoconf 自動製作 libtool

你還需要 EPEL 的這個包:

  • protobuf-開發

對於包含 GUI 的建構,您還需要:

  • qt-devel 桌面文件-utils

然後你需要使用 Berkeley DB 4.7 修補比特幣以接受;預設情況下,如果 BDB 4.8 不存在,即使您傳遞了應該覆蓋它的配置選項,配置腳本也會退出。請注意,此版本創建的錢包可能適用於使用 BDB 4.8 編譯的比特幣,也可能不適用。

然後你需要再次修補它以使其在 EL6 附帶的舊版本 gcc 和 glibc 上編譯,因為目前的比特幣程式碼假定正在使用支持 C++11 的編譯器。這是一個單行更新檔,但我花了半個小時才找到。

如您所見,這有點痛苦,僅缺少庫就導致大多數人放棄。

大多數這些軟體包(除了 miniupnpc)都在 CentOS 7 中,所以如果你走這條路,那可能是一個更好的起點。

幾年來,我一直在維護這些庫的版本,以及 SELinux 增強的比特幣版本。因為我已經為您完成了所有這些工作,所以獲取 repo 並安裝現有的 RPM 包要容易得多。但是,如果您真的想再次覆蓋那片土地,那就是您的路線圖。

我不使用 Red Hat,但我最近發現了這個指南:http ://www.ripplex.biz/blog/compiling-bitcoin-on-centos-v6-4

你會在那裡找到 dep 列表。

如果是原始網站的404,我在這裡複製:

安裝 QT、boost、db4 和 zlib 開發包:

> > yum install qt-devel boost-devel db4-devel zlib-devel > > >

引用自:https://bitcoin.stackexchange.com/questions/12633