Let's clone the repository and start building the i2pd:
* WITH_HARDENING -- enable hardening features (ON/OFF) (gcc only)
```bash
* WITH_BINARY -- build i2pd itself
git clone https://github.com/PurpleI2P/i2pd.git
* WITH_LIBRARY -- build libi2pd
cd i2pd/build
* WITH_STATIC -- build static versions of library and i2pd binary
cmake -DCMAKE_BUILD_TYPE=Release # more options could be passed, see "CMake Options"
* WITH_UPNP -- build with UPnP support (requires libupnp)
make
* WITH_PCH -- use pre-compiled header (experimental, speeds up build)
```
After successfull build i2pd could be installed with:
```bash
make install
```
Debian/Ubuntu
Debian/Ubuntu
-------------
-------------
For building from source on debian system you will need the following "-dev" packages:
You will need a compiler and other tools that could be installed with `build-essential` package:
```bash
* libboost-chrono-dev
sudo apt-get install build-essential
* libboost-date-time-dev
```
* libboost-filesystem-dev
* libboost-program-options-dev
Also you will need a bunch of development libraries:
* libboost-regex-dev
```bash
* libboost-system-dev
sudo apt-get install \
* libboost-thread-dev
libboost-chrono-dev \
* libssl-dev (e.g. openssl)
libboost-date-time-dev \
* zlib1g-dev (libssl-dev already depends on it)
libboost-filesystem-dev \
* libminiupnpc-dev (optional, if WITH_UPNP=ON)
libboost-program-options-dev \
libboost-regex-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:
```bash
sudo apt-get install libminiupnpc-dev
```
You may also build deb-package with the following:
You may also build deb-package with the following:
```bash
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:
```bash
sudo yum install make cmake gcc gcc-c++
```
*Latest Fedora system using [DNF](https://en.wikipedia.org/wiki/DNF_(software)) instead of YUM by default, you may prefer to use DNF, but YUM should be ok*
> *Centos 7 has CMake 2.8.11 in the official repositories that too old to build i2pd, CMake >=2.8.12 is required*
> You could build CMake for Centos manualy(WARNING there are a lot of build dependencies!):