Instalar libdb4.8-dev Ubuntu

libdb4.8-dev ubuntu

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

Deja tus preguntas o comentarios