I2P: End-to-End encrypted and anonymous Internet https://i2pd.website/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

3.9 KiB

Building on Unix systems

First of all we need to make sure that all dependencies are satisfied.

This doc is trying to cover:

Make sure you have all required dependencies for your system successfully installed.

If so then we are ready to go! Let's clone the repository and start building the i2pd:

git clone https://github.com/PurpleI2P/i2pd.git
cd i2pd/build
cmake -DCMAKE_BUILD_TYPE=Release # more options could be passed, see "CMake Options"
make                             # you may add VERBOSE=1 to cmdline for debugging

After successfull build i2pd could be installed with:

make install

or you can just use 'make' once you have all dependencies (boost and openssl) installed

git clone https://github.com/PurpleI2P/i2pd.git
cd i2pd
make

Debian/Ubuntu

You will need a compiler and other tools that could be installed with build-essential package:

sudo apt-get install build-essential

Also you will need a bunch of development libraries:

sudo apt-get install \
    libboost-chrono-dev \
    libboost-date-time-dev \
    libboost-filesystem-dev \
    libboost-program-options-dev \
    libboost-system-dev \
    libboost-thread-dev \
    libssl-dev

If you need UPnP support (don't forget to run CMake with WITH_UPNP=ON) miniupnpc development library should be installed:

sudo apt-get install libminiupnpc-dev

You may also build deb-package with the following:

sudo apt-get install fakeroot devscripts
cd i2pd
debuild --no-tgz-check

Fedora/Centos

You will need a compiler and other tools to perform a build:

sudo yum install make cmake gcc gcc-c++

Latest Fedora system using DNF instead of YUM by default, you may prefer to use DNF, but YUM should be ok

Also you will need a bunch of development libraries

sudo yum install boost-devel openssl-devel

If you need UPnP support (don't forget to run CMake with WITH_UPNP=ON) miniupnpc development library should be installed:

miniupnpc-devel

Centos 7 has CMake 2.8.11 in the official repositories that too old to build i2pd, CMake >=2.8.12 is required.

But you can use cmake3 from the epel repository:

yum install epel-release -y
yum install make cmake3 gcc gcc-c++ miniupnpc-devel boost-devel openssl-devel -y
cmake3 -DWITH_LIBRARY=OFF -DWITH_UPNP=ON  -DWITH_HARDENING=ON -DBUILD_SHARED_LIBS:BOOL=OFF
make

MAC OS X

Requires homebrew

brew install libressl boost

Then build:

make HOMEBREW=1

FreeBSD

For 10.X use clang. You would also need boost and openssl ports. Type gmake, it invokes Makefile.bsd, make necessary changes there is required.

Branch 9.X has gcc v4.2, that knows nothing about required c++11 standart.

Required ports:

  • devel/cmake
  • devel/boost-libs
  • lang/gcc47(or later version)

To use newer compiler you should set these variables(replace "47" with your actual gcc version):

export CC=/usr/local/bin/gcc47
export CXX=/usr/local/bin/g++47

CMake Options

Available CMake options(each option has a form of <key>=<value>, for more information see man 1 cmake):

  • CMAKE_BUILD_TYPE build profile (Debug/Release)
  • WITH_BINARY build i2pd itself
  • WITH_LIBRARY build libi2pd
  • WITH_STATIC build static versions of library and i2pd binary
  • WITH_UPNP build with UPnP support (requires libupnp)
  • WITH_AESNI build with AES-NI support (ON/OFF)
  • WITH_HARDENING enable hardening features (ON/OFF) (gcc only)
  • WITH_PCH use pre-compiled header (experimental, speeds up build)

Also there is -L flag for CMake that could be used to list current cached options:

cmake -L