在类 Unix 系统上构建

本文档涵盖: * Debian/Ubuntu(包括打包) * Arch/Manjaro * Fedora/RHEL/CentOS Stream * macOS * FreeBSD * OpenBSD * Solaris/OpenIndiana 请确保已为您的系统安装所有所需的依赖项。 请参阅 此页面 获取常见依赖要求。

克隆并构建(使用 CMake)

git clone https://github.com/PurpleI2P/i2pd.git
cd i2pd
mkdir -p build && cd build
cmake <cmake options> ..
cmake --build . -j

…或者使用普通 make 的快速简易方式:

cd i2pd/
make

运行测试:

cd i2pd/tests/
make

在成功构建后进行安装:

sudo make install

CMake 选项

-D<key>=<value> 的形式传递选项(参见 man 1 cmake): * CMAKE_BUILD_TYPE 构建配置文件(Debug/Release,默认:none) * WITH_BINARY 构建 i2pd(默认:ON) * WITH_LIBRARY 构建 libi2pd(默认:ON) * WITH_STATIC 构建静态库和静态二进制文件(默认:OFF) * WITH_UPNP 启用 UPnP 支持(需要 miniupnpc,默认:OFF) * WITH_AESNI 启用 AES-NI 支持(默认:ON) * WITH_HARDENING 启用加固选项(GCC/Clang,默认:OFF) * WITH_MESHNET 为 cjdns 测试网络构建(不适用于主网,默认:OFF) * WITH_ADDRSANITIZER 启用 AddressSanitizer(默认:OFF) * WITH_THREADSANITIZER 启用 ThreadSanitizer(默认:OFF)

列出已缓存的选项:

cmake -L

Debian/Ubuntu

工具:

sudo apt install build-essential debhelper cmake

库:

sudo apt install \
  libboost-date-time-dev \
  libboost-filesystem-dev \
  libboost-program-options-dev \
  libboost-system-dev \
  libssl-dev \
  zlib1g-dev

UPnP(可选):

sudo apt install libminiupnpc-dev

构建 .deb 包:

sudo apt install fakeroot devscripts dh-apparmor
cd i2pd
debuild --no-tgz-check -us -uc -b

(UPnP 开发包名称:libminiupnpc-dev。)

Arch/Manjaro

工具:

sudo pacman -S --needed base-devel cmake

库:

sudo pacman -S --needed boost openssl zlib

Fedora/RHEL/CentOS Stream

工具:

sudo dnf install make cmake gcc gcc-c++

库:

sudo dnf install boost-devel openssl-devel zlib-devel atomic

UPnP(可选):

sudo dnf install miniupnpc-devel

静态构建(可选):

sudo dnf install boost-static

(UPnP/Boost 静态包名称:miniupnpc-develboost-static。在某些类似 RHEL 的系统上,您可能需要启用 EPEL/CRB 仓库。)

macOS

需要 Homebrew 和 Xcode Command Line Tools。 安装依赖:

brew install boost openssl@3 cmake make

构建:

make HOMEBREW=1 -j8

安装到系统根目录(/):

sudo make install HOMEBREW=1

安装到 Homebrew 前缀(Intel 为 /usr/local,Apple Silicon 为 /opt/homebrew):

sudo make install HOMEBREW=1 PREFIX="$(brew --prefix)"

FreeBSD

使用基础编译器(Clang)。以 root 身份安装工具和库:

pkg install boost-libs cmake gmake

UPnP(可选):

pkg install miniupnpc

如果使用 BSD Makefile 路径,请使用 GNU make 构建:

gmake

(注意:FreeBSD 的基础系统中已包含 OpenSSL 和 zlib;您不需要额外安装 SSL 包。)

OpenBSD

使用基础编译器(Clang)。以 root 身份安装工具和库:

pkg_add boost cmake gmake

UPnP(可选):

pkg_add miniupnpc

如果使用 BSD Makefile 路径,请使用 GNU make 构建:

gmake

(注意:OpenBSD 的基础系统中已包含 LibreSSL 和 zlib;您不需要额外安装 SSL 包。)

Solaris/OpenIndiana

安装所需软件包:

pkg install developer/gcc-14
pkg install developer/build/cmake
pkg install system/library/boost
pkg install developer/build/gnu-make

然后如果直接调用 Makefile,请使用 gmake。 (现代 OpenIndiana 提供 GCC 14;软件包 FMRI 如 developer/gcc-14system/library/boost 遵循 IPS 命名规则。)