Проблемы с компиляцией bitcoind на OSX с помощью homebrew

Я прочитал README на странице биткойн-github, в которой указано, как установить следующие библиотеки с помощью MacPorts — boost db48 dbus openssl.

У меня они установлены, с помощью homebrewкоторых я использую вместо MacPorts. Они также являются правильными версиями в качестве homebrewустановочных, более поздних, несовместимых версий.

С этими установленными я отредактировал, makeчтобы указать на homebrewустановленные библиотеки, а именно DEPSDIR=/usr/localи добавил -I"$(DEPSDIR)/Cellar/berkeley-db4/4.8.30/include"вINCLUDEPATHS

Однако я получаю эту ошибку компилятора, которая для меня загадочна:

https://gist.github.com/ashleyconnor/944f611b969444f06430145972b880cf

Кому-нибудь удалось заставить это работать?

Ответы (2)

Обновление: эти или аналогичные инструкции включены в источник биткойнов по состоянию на 19 февраля 2013 года . Подробнее doc/build-osx.mdсм. Таким образом, приведенные ниже инструкции могут устареть. В качестве альтернативы, упростите себе использование домашнего крана WyseNynja с файлом brew tap wysenynja/bitcoin && brew install bitcoind.

Сборка bitcoind на OSX 10.8 с помощью homebrew

Я заставил биткойн работать, используя эти инструкции. Для справки, у меня OSX 10.8.2 с доморощенной версией 0.9.3. Я сделал предположение, что homebrew установлен в /usr/local. Я также предположил, что вы установили утилиты командной строки Xcode и любые другие пакеты, необходимые для создания кода. Если вы регулярно собираете какой-либо код, например, у вас установлен RVM для периодической сборки ruby, то, вероятно, все в порядке!

Установите несколько необходимых библиотек из homebrew.

brew install boost miniupnpc openssl

Вернуть формулу berkeley-db к более старой версии

cd /usr/local
git checkout e6a374d Library/Formula/berkeley-db.rb

Возможно, вам придется отключить его, если вы уже установили последнюю версию.

brew unlink berkeley-db

Установите berkeley-db 4.8 теперь, когда у вас есть правильная формула.

brew install berkeley-db

Оформить заказ на Github.

git clone https://github.com/bitcoin/bitcoin.git

Отредактируйте makefile.osx, чтобы немного изменить его. Вот разница, которая показывает, что вам нужно изменить, или вы можете просто использовать это как патч, выполнив echo '$patch-text' | patch, где $patch-text — это текст патча ниже.

diff --git a/src/makefile.osx b/src/makefile.osx
index 9629545..ffac9a3 100644
--- a/src/makefile.osx
+++ b/src/makefile.osx
@@ -7,17 +7,19 @@
 # Originally by Laszlo Hanyecz (solar@heliacal.net)

 CXX=llvm-g++
-DEPSDIR=/opt/local
+DEPSDIR?=/opt/local

 INCLUDEPATHS= \
  -I"$(CURDIR)" \
  -I"$(CURDIR)"/obj \
  -I"$(DEPSDIR)/include" \
- -I"$(DEPSDIR)/include/db48"
+ -I"$(DEPSDIR)/include/db48" \
+ -I"/usr/local/Cellar/openssl/1.0.1c/include"

 LIBPATHS= \
  -L"$(DEPSDIR)/lib" \
- -L"$(DEPSDIR)/lib/db48"
+ -L"$(DEPSDIR)/lib/db48" \
+ -L"/usr/local/Cellar/openssl/1.0.1c/lib"

 USE_UPNP:=1
 USE_IPV6:=1

Запустите сборку.

cd bitcoin/src
make -f makefile.osx DEPSDIR=/usr/local

Теперь он доступен по адресу ./bitcoind. Однако сначала нам нужно создать файл конфигурации rpc. Запустите ./bitcoind, чтобы получить имя файла, куда его следует поместить, или просто попробуйте приведенный ниже текст.

echo "rpcuser=bitcoinrpc
rpcpassword=HdAseQSRkirfoNuUSzqzixyL9sM1T6ABfzV1nyNmbuwg" > "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"
chmod 600 "/Users/${USER}/Library/Application Support/Bitcoin/bitcoin.conf"

Когда вы в следующий раз запустите его, он начнет загрузку блокчейна, но при этом ничего не выведет. Этот процесс может занять несколько часов.

Мой, кажется, работает нормально, но он все еще загружает блокчейн. Я смогу сказать после некоторого тестирования, работает ли он нормально или нет, но я подозреваю, что это так!

Вдохновение:

brew install berkeley-dbбросаетError: No available formula for berkeley-db
Он работает с формулой в HEAD. Возможно, хэш коммита неверен?
Теперь вы захотите использовать berkeley-db4формулу из доморощенных версий. Этот хэш фиксации был для тех случаев, когда формула berkeley-db не имела отдельных ветвей.

Другой ответ здесь, вероятно, работает, но на мой вкус слишком много шагов.

npm install bitcore-node -g

Несмотря на то, что вы устанавливаете bitcore-node, он включает в себя зависимость bitcoind, которую вы можете использовать отдельно или вместе с bitcore для добавления сервисов поверх bitcoind.