Skip to content

Dependency Installation

Giacomo Bergami edited this page Dec 23, 2024 · 6 revisions

Dependency Installation (v3.0)

Coming Soon

Dependency Installation (v2.1 and LaSSI v1.0)

Linux

Installing GCC-13 and G++-13

You can first try whether you can install this via package manager:

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install --reinstall gcc-13 g++-13 g++-13-multilib gcc-13-multilib
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 131 --slave /usr/bin/g++ g++ /usr/bin/g++-13 --slave /usr/bin/gcov gcov /usr/bin/gcov-13
sudo rm /usr/bin/x86_64-linux-gnu-cpp  
sudo rm /usr/bin/x86_64-linux-gnu-gcc     
sudo rm /usr/bin/x86_64-linux-gnu-gcc-nm      
sudo rm /usr/bin/x86_64-linux-gnu-gcov       
sudo rm /usr/bin/x86_64-linux-gnu-gcov-tool
sudo rm /usr/bin/x86_64-linux-gnu-g++  
sudo rm /usr/bin/x86_64-linux-gnu-gcc-ar  
sudo rm /usr/bin/x86_64-linux-gnu-gcc-ranlib  
sudo rm /usr/bin/x86_64-linux-gnu-gcov-dump  
sudo rm /usr/bin/x86_64-linux-gnu-lto-dump
sudo ln -s /usr/bin/x86_64-linux-gnu-cpp-13  /usr/bin/x86_64-linux-gnu-cpp
sudo ln -s /usr/bin/x86_64-linux-gnu-gcc-13     /usr/bin/x86_64-linux-gnu-gcc
sudo ln -s /usr/bin/x86_64-linux-gnu-gcc-nm-13      /usr/bin/x86_64-linux-gnu-gcc-nm
sudo ln -s /usr/bin/x86_64-linux-gnu-gcov-13       /usr/bin/x86_64-linux-gnu-gcov
sudo ln -s /usr/bin/x86_64-linux-gnu-gcov-tool-13 /usr/bin/x86_64-linux-gnu-gcov-tool
sudo ln -s /usr/bin/x86_64-linux-gnu-g++-13  /usr/bin/x86_64-linux-gnu-g++
sudo ln -s /usr/bin/x86_64-linux-gnu-gcc-ar-13  /usr/bin/x86_64-linux-gnu-gcc-ar
sudo ln -s /usr/bin/x86_64-linux-gnu-gcc-ranlib-13  /usr/bin/x86_64-linux-gnu-gcc-ranlib
sudo ln -s /usr/bin/x86_64-linux-gnu-gcov-dump-13  /usr/bin/x86_64-linux-gnu-gcov-dump
sudo ln -s /usr/bin/x86_64-linux-gnu-lto-dump-13 /usr/bin/x86_64-linux-gnu-lto-dump

If your system does not provide GCC-13 or any later version, then you can install it via this script. This process might take some time.

Installing CMake 3.30

For installing CMake 3.30,

sudo apt remove --purge --auto-remove cmake
sudo apt update && \
sudo apt install -y software-properties-common lsb-release && \
sudo apt clean all
sudo apt update
sudo apt-get install libssl-dev
wget https://github.com/Kitware/CMake/releases/download/v3.30.3/cmake-3.30.3.tar.gz
tar -xf cmake-3.30.3.tar.gz
cd cmake-3.30.3
./bootstrap --parallel=$(nrpoc --all)
make -j $(nrpoc --all)
sudo make install && cd .. && rm -rf cmake-3.30.3

Installing Python3.10

Please observe that Python 3.8 is not currently supported by the python wrapper, as it is using a package manager for installing the project via pyproject.toml rather than the traditional setup.py script (which will be discontinued in any later Python version). If your system does not provide dependencies for Python3.10, you can install python3.10 via deadsnakes as follows:

sudo apt update
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.10 python3.10-venv python3.10-dev
curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10

Compiling the source code

C++ Codebase

The C++ codebase can be compiled with CMake as customary:

mkdir build
cd build
cmake ..
make -j $(nrpoc --all)

Python bindings

As the main project requires to have a C++ compiler supporting C++23, the user should consider having g++13 installed as specified above.

If you want to install the Python bindings by automating the code cloning and compilation of only the PyDatagramDb package, then you can run the following command on the terminal:

python3.10 -m pip install -e "git+https://github.com/datagram-db/datagram-db.git#egg=PyDatagramDB&subdirectory=DatagramDB"

If, on the other hand, you already have your local copy on your computer and you have already recursively pulled all of the submodules, then you can run the following customary Python command

python3.10 pip install ./DatagramDB
Clone this wiki locally