Gridcoin v4.0.4.0 on CentOS 7.x


Use this guide as a reference as it might be incomplete. Be familiar with the build process while following it.
Consider joining the Gricoin Community Slack channels "#development" and "#packaging" for clarifications.

Think before you run!

The CentOS Linux is a stable, predictable, manageable and reproducible platform derived from the sources of Red Hat Enterprise Linux (RHEL). Latest CentOS 7.x release is coming by default with GCC 4.8.5 and Boost C++ Libraries 1.53.

Release v4.0.4.0 of Gridcoin Research should be built using GCC 8.x and Boost C++ Libraries 1.69.

GNU Compiler Collection

GCC 8.x for CentOS 7.x comes as a Development Toolset from Software Collections.

# yum -y install centos-release-scl;

Install GCC version 8, C++ support for GCC version 8, header files and libraries for C++ development and a GNU make with all their dependencies.

# yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++;
# yum -y install devtoolset-8-make;

Switch to a shell with GCC 8 and verify version.

# scl enable devtoolset-8 -- bash;
# gcc -v;
gcc version 8.2.1 20180905 (Red Hat 8.2.1-3) (GCC)

Boost C++ Libraries

Install the C++ source libraries, cross platform build system for C++ projects and the Boost C++ headers and shared development libraries.

# wget;
# tar -xzf boost_1_*;
# cd boost_1_*;
# ./ --prefix=/opt/boost-1.69;
# ./b2 install --prefix=/opt/boost-1.69 --with=all;
# echo "/opt/boost-1.69/lib" > /etc/;
# ldconfig;

Gridcoin Research Daemon

Build and install the Gridcoin Research from source configured with "--with-boost".

# ./;
# ./configure --without-gui --without-miniupnpc --with-incompatible-bdb --with-boost=/opt/boost-1.69 --disable-tests --disable-bench;
# make;

Print shared object dependencies.

# ldd ./src/gridcoinresearchd; =>  (0x00007ffd297fc000) => /lib64/ (0x00007fa733aa2000) => /opt/boost-1.69/lib/ (0x00007fa73389f000) => /opt/boost-1.69/lib/ (0x00007fa733673000) => /opt/boost-1.69/lib/ (0x00007fa733458000) => /opt/boost-1.69/lib/ (0x00007fa7331be000) => /opt/boost-1.69/lib/ (0x00007fa732f87000) => /opt/boost-1.69/lib/ (0x00007fa732d6b000) => /lib64/ (0x00007fa732988000) => /lib64/ (0x00007fa732715000) => /lib64/ (0x00007fa7322b3000) => /lib64/ (0x00007fa7320ab000) => /lib64/ (0x00007fa731da3000) => /lib64/ (0x00007fa731aa1000) => /lib64/ (0x00007fa73188b000) => /lib64/ (0x00007fa73166e000) => /lib64/ (0x00007fa7312a1000) => /lib64/ (0x00007fa73106e000) => /lib64/ (0x00007fa730e43000) => /lib64/ (0x00007fa730bf1000) => /lib64/ (0x00007fa7309ca000) => /lib64/ (0x00007fa73069c000) => /lib64/ (0x00007fa73046c000) => /lib64/ (0x00007fa730268000) => /lib64/ (0x00007fa730062000) => /lib64/ (0x00007fa72fe24000) => /lib64/ (0x00007fa72fc20000) => /lib64/ (0x00007fa72f9d2000) => /lib64/ (0x00007fa72f6e9000) => /lib64/ (0x00007fa72f4b6000) => /lib64/ (0x00007fa72f2b1000) => /lib64/ (0x00007fa72f0a2000) => /lib64/ (0x00007fa72ee4d000) => /lib64/ (0x00007fa72ec36000) => /lib64/ (0x00007fa72ea10000)
  /lib64/ (0x0000559021d5f000) => /lib64/ (0x00007fa72e7ff000) => /lib64/ (0x00007fa72e5fb000) => /lib64/ (0x00007fa72e3e1000) => /lib64/ (0x00007fa72e1c4000) => /lib64/ (0x00007fa72df9c000) => /lib64/ (0x00007fa72dd65000) => /lib64/ (0x00007fa72db03000) => /lib64/ (0x00007fa72d8ff000)