libdb4.8-dev ubuntu

Instalar libdb4.8-dev Ubuntu

Un cliente me solicito instalarle un masternode de syscoin. Pero esta criptomoneda (asi como varias wallets) tiene un particular; su codigo original proviene de las fuentes de Bitcoin. Por lo cual, y con la finalidad de preservar la compatiblidad es necesario instalar la base de datos de Berkeley DB 4.8 (libdb4.8-dev ubuntu).

Anteriormente la forma mas facil 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 informacion del respositorio 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 esta el script que instalara libdb4.8-dev Ubuntu. Al script hay que pasar como parametro el directorio donde queremos instalar, en mi caso dentro de mi 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, la instalacion 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, ademas de la instalacion tambien es necesario agregar el path del sistema de archivos en donde el compilador puede encontrar las librerias de desarrollo de libdb4.8-dev.

Como agregar el path de Berkeley DB 4.8 (libdb4.8-dev ubuntu)

Para que la compilacion de la wallet (de bitcoin o syscoin) en Ubuntu no falle, es necesario decirle al compilador donde esta instalado los Berkeley DB C++ headers.

Segun la documentacion 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 continuacion los paths donde esta instalado Berkeley. Y lo hacemos asi ya que los sistemas operativos actualizados ya vienen con versiones mas 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, al comando de configuracion se le pasa el parametro LDFLAGS donde le indicamos el path donde puede encontrar las librerias de la base de datos Berkeley DB en la version requerida por la wallet.

Observaciones, entre cada comando utilizo (;) para ahorrarme lineas y ejecutar un comando despues de finalizado el anterior. Ademas utilizo el comando time, con el unico fin de saber cuanto se tarda en ejecutar las instrucciones del compilado.

Ver |Introduccion a Bitcoin

Via| Install berkeley 4.8 db libs on Ubuntu

Deja tus preguntas o comentario