¿Cuáles son las dependencias de bitcoin para red hat linux? Bitcoin no se compila

Estoy usando CentOS en mi servidor, y cuando intento compilar bitcoin desde la fuente de github usando make -f makefile.unix, obtengo un montón de errores. ¿Supongo que son causados ​​​​por errores de dependencia?

He visto un montón de listas de dependencias para distribuciones de Linux basadas en Debian que usan apt-get, pero me gustaría saber qué necesito para CentOS. La instalación de las dependencias de las listas de Debian usando yum muestra los paquetes como no disponibles.

Aquí está la enorme lista de errores, si alguien la quiere: http://pastebin.com/1y2wCH5N

Respuestas (4)

Si desea compilar Bitcoin en CentOS 6, necesitará algo más que Bitcoin; varias otras dependencias faltan o son demasiado antiguas.

Los detalles:

  • Boost es demasiado antiguo. CentOS 6 tiene la versión 1.41, pero Bitcoin requiere funciones que se introdujeron por primera vez en Boost 1.47.
  • Berkeley DB es demasiado viejo. CentOS 6 tiene la versión 4.7, pero Bitcoin quiere la versión 4.8 (pero vea más abajo para obtener más información al respecto).
  • Es posible que a OpenSSL le falten algunos algoritmos de curva elíptica necesarios para Bitcoin, debido a la postura legal extremadamente conservadora de Red Hat con respecto a ECC. (Consulte los errores 319901 y 1020292 , entre otros).
  • Las bibliotecas qrencode y miniupnpc, necesarias para que la GUI de Bitcoin admita códigos QR y UPnP respectivamente, faltan por completo. (Sin embargo, una compilación solo del servidor no los necesita).
  • Las versiones anteriores del código base de Bitcoin no funcionaban con Qt 4.6, la versión se envió con CentOS 6, pero requería Qt 4.7. Arreglé esto con una sola línea, y fue parcheado aguas arriba. Sin embargo, esto probablemente no le afectará, a menos que esté creando un código antiguo por algún motivo.

También necesita estos paquetes, que existen en CentOS 6:

  • db4-devel
  • autoconf automake libtool

Y también necesitas este paquete de EPEL:

  • protobuf-devel

Para una compilación que incluya la GUI, también necesita:

  • qt-devel desktop-file-utils

Luego, debe parchear Bitcoin para aceptar el uso de Berkeley DB 4.7; de forma predeterminada, el script de configuración falla si BDB 4.8 no está presente, incluso si pasa la opción de configuración que se supone que anula esto. Y tenga en cuenta que las billeteras creadas por esta compilación pueden o no funcionar con Bitcoin compilado con BDB 4.8.

Luego, debe parchearlo nuevamente para que se compile en las versiones anteriores de gcc y glibc enviadas con EL6, ya que el código Bitcoin actual asume que se está utilizando un compilador compatible con C++ 11. Es un parche de una línea, pero me tomó media hora localizarlo.

Como puede ver, esto es un poco doloroso, y las bibliotecas que faltan por sí solas hacen que la mayoría de las personas se rindan.

La mayoría de estos paquetes (excepto miniupnpc) están en CentOS 7, así que si vas por este camino, ese es probablemente un mejor punto de partida.

He estado manteniendo versiones de esas bibliotecas, junto con una compilación de Bitcoin mejorada con SELinux, durante un par de años. Es mucho más fácil tomar el repositorio e instalar los paquetes RPM existentes, ya que he hecho todo este trabajo por usted. Pero si realmente quiere cubrir ese terreno nuevamente, ahí está su hoja de ruta.

No uso Red Hat, pero encontré esta guía bastante reciente: http://www.ripplex.biz/blog/compiling-bitcoin-on-centos-v6-4

encontrará allí la lista de dep.

Estoy copiando aquí en caso de 404 del sitio web original:

Instale los paquetes de desarrollo QT, boost, db4 y zlib:

yum instalar qt-devel boost-devel db4-devel zlib-devel

¡Genial gracias! Antes de que respondiera, terminé descargando el binario de sourceforge. ¿Es seguro compilar esto y usar el nuevo binario en su lugar? Siempre que use el mismo directorio de datos, debería mantener los mismos datos, ¿verdad?
Creo que es seguro. Probablemente al compilarlo podría optimizar el binario para su PC, pero no sé si habría alguna diferencia sensible. Acerca del directorio de datos es más un problema de configuración que otro. Así que diría que está bien
Interesante. ¿Cuál es el proceso de optimización del binario? ¿Cómo se hace esto?
Creo que esto sería más sobre el tema en otros sitios de SE, por cierto, sugeriría leer esta página de wikipedia Optimización del compilador para comprender lo que significa.
Gracias por el enlace. Solo soy un desarrollador web, por lo que no sé mucho sobre compilación y desarrollo no web. Gracias un montón.

Debe instalar los paquetes de desarrollo QT, boost, db4 y zlib, en la línea de comando cent-os intente esto.

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

después de eso, puede descargar y extraer el archivo de bitcoind desde http://bitcoin.org/en/download

Esto es lo que usé con éxito en Fedora 20:

$ sudo yum groupinstall -y "Development Tools" "Development Libraries"
$ sudo yum install -y gcc-c++ libtool swig pyqt4-devel python-psutil python-twisted wget protobuf-devel

Consulte https://bitcoin.stackexchange.com/a/30106/19021