Un cliente me solicitó instalarle un masternode de syscoin. Pero esta criptomoneda (asà como varios wallets) tiene un particular; su código original proviene de las fuentes de Bitcoin. Por lo cual, y con la finalidad de preservar la compatibilidad es necesario instalar la base de datos de Berkeley DB 4.8 (libdb4.8-dev ubuntu).
Anteriormente la forma más fácil de instalar libdb4.8-dev Ubuntu, era agregando los repositorios de bitcoin al sistema operativo (en nuestro caso Ubuntu), de la siguiente manera;
syscore:~$ sudo add-apt-repository ppa:bitcoin/bitcoin NOT MAINTAINED. The OS-library linking packages here had a series of issues. PLEASE DOWNLOAD DIRECTLY FROM bitcoincore.org (and verify the signatures of said files). IF YOU WANT AUTO-UPDATES, please see the officially-maintained snap package - https://github.com/bitcoin-core/packaging/tree/master/snap More info: https://launchpad.net/~bitcoin/+archive/ubuntu/bitcoin Press [ENTER] to continue or Ctrl-c to cancel adding it.
Sencillo, ¿no? Pero en la información del repositorio se lee que se debe descargar desde el sitio oficial. Ahora para instalar libdb4.8-dev solo necesitamos ejecutar apt;
syscore:~$ sudo apt install -y libdb4.8-dev libdb4.8++-dev Reading package lists... Done Building dependency tree Reading state information... Done Package libdb4.8++-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source Package libdb4.8-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package 'libdb4.8-dev' has no installation candidate E: Package 'libdb4.8++-dev' has no installation candidate
Segun el repositorio de Bitcoin sobre Berkeley DB;
It is recommended to use Berkeley DB 4.8. If you have to build it yourself, you can use the installation script included in contrib/ like so:
./contrib/install_db4.sh `pwd`
from the root of the repository.
Como instalar libdb4.8-dev Ubuntu y Debian
Dicho lo anterior, primero debemos clonar el git del proyecto de bitcoin. Luego entrar al directorio contrib, donde está el script que instalara libdb4.8-dev Ubuntu. Al script hay que pasar como parámetro el directorio donde queremos instalar, en mi caso dentro de mà en el directorio db4 del home de mi usuario.
syscore:~$ mkdir /home/USUARIO/db4 syscore:~$ git clone https://github.com/bitcoin/bitcoin.git syscore:~$ cd bitcoin/contrib/ syscore:~$ ./install_db4.sh /home/USUARIO/db4/ libtool: install: cp -p db_verify /home/USUARIO/db4/db4/bin/db_verify Installing documentation: /home/USUARIO/db4/db4/docs ... db4 build complete.
Y con eso Berkeley DB 4.8 ha sido instalado en Linux.
Instalando SYScoin en Ubuntu
Como lo explique anteriormente, si no contamos con las librerias de Berkeley DB, instalar libdb4.8-dev se complica con la instalación de la wallet de syscoin falla con el siguiente error;
checking for Berkeley DB C++ headers... no configure: error: libdb_cxx headers missing, Syscoin Core requires this library for wallet functionality (--disable-wallet to disable wallet functionality
De igual manera, además de la instalación también es necesario agregar el path del sistema de archivos en donde el compilador puede encontrar las librerÃas de desarrollo de libdb4.8-dev.
Cómo agregar el path de Berkeley DB 4.8 (libdb4.8-dev ubuntu)
Para que la compilación de la wallet (de bitcoin o syscoin) es necesario que libdb4.8-dev Ubuntu no falle, y asi lograr instalar libdb4.8-dev, es necesario decirle al compilador dónde está instalado los Berkeley DB C++ headers.
Según la documentación oficial de bitcoin, es necesario compilar bitcoind de la siguiente manera;
When compiling bitcoind, run `./configure` in the following way: ./configure BDB_LIBS=”-L${BDB_PREFIX}/lib -ldb_cxx-4.8″ BDB_CFLAGS=”-I${BDB_PREFIX}/include” …
Por lo tanto, vamos a asignar a las variables a continuación los paths donde está instalado Berkeley. Y lo hacemos asà ya que los sistemas operativos actualizados ya vienen con versiones más modernas de Berkeley DB.
syscore:~$ BDB_PREFIX="/home/USUARIO/db4/db4/" syscore:~$ export BDB_PREFIX='/home/USUARIO/db4/db4' syscore:~$ export BDB_INCLUDE_PATH="/home/USUARIO/db4/db4/include/" syscore:~$ export BDB_LIB_PATH="/home/USUARIO/db4/db4/lib/"
Compilando la wallet de SYScoin en Linux
Ya con los requisitos satisfechos, procedemos a ingresar al directorio de las fuentes de la wallet de syscoin, para luego configurar y compilar;
syscore:~$ git clone http://www.github.com/syscoin/syscoin; cd syscoin/; git checkout master syscore:~$ ./autogen.sh; ./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" syscore:~$ time make -j$(nproc)
Como podran ver, para instalar libdb4.8-dev al comando de configuración se le pasa el parámetro LDFLAGS donde le indicamos el path donde puede encontrar las librerÃas de la base de datos Berkeley DB en la versión requerida por la wallet.
Observaciones, entre cada comando utilizo (;) para ahorrarme lÃneas y ejecutar un comando después de finalizado el anterior. Además utilizo el comando time, con el único fin de saber cuánto se tarda en ejecutar las instrucciones del compilado.
Via | Introduccion a Bitcoin | Install berkeley 4.8 db libs on Ubuntu
Para que sirve el SYSCOIN CORE de linux? que utilidad tiene poder instalarlo? para que lo usa la gente?