Skip to main content

Nginx 构建 RPM 包

构建参数修改

使用 cmake 命令配置项目,指定使用小型 OpenSSL 版本并设置构建类型为 Release。

cmake -DOPENSSL_SMALL=1 -DCMAKE_BUILD_TYPE=Release ..

安装依赖包

使用 dnf 命令安装一系列开发工具和库,确保编译环境完备。

dnf -y install \
git \
gcc \
gcc-c++ \
make \
rpm-build \
tar \
golang \
cmake \
libunwind-devel \
pcre2-devel \
krb5-devel \
libedit \
libxml2-devel \
libxslt-devel \
gd-devel \
libmaxminddb \
perl-ExtUtils-Embed \
perl-devel \
c-ares-devel \
openssl-devel \
re2-devel \
boost-devel \
libstdc++-devel \
yaml-cpp-devel \
rake \
brotli-devel \
which \
libatomic \
libedit-devel \
libmaxminddb-devel \
libstdc++-static \
lua-devel \
perl-macros \
xz

make 参数修改

使用 make 命令构建特定的模块,确保所有必要的模块都被编译。

make \
base \
module-auth-spnego \
module-brotli \
module-encrypted-session \
module-fips-check \
module-geoip \
module-geoip2 \
module-headers-more \
module-image-filter \
module-lua \
module-ndk \
module-njs \
module-otel \
module-passenger \
module-perl \
module-rtmp \
module-set-misc \
module-subs-filter \
module-xslt

注意事项

由于上游修改移除了一个模块,使用 make all 构建时会缺失 module-passenger 模块。

!!! 注意 如果使用 make all 构建,将会缺失 module-passenger 模块。

Red Hat 系统

更新缓存并安装依赖包:

dnf makecache
dnf install -y \
g++ \
gcc \
git \
epel-release \
libxslt \
make \
rpm-build \
which \
xz \
'dnf-command(config-manager)'
dnf config-manager --set-enabled crb

Ubuntu 系统

更新包列表并安装依赖包:

sudo apt-get update
sudo apt-get install -y --no-install-suggests --no-install-recommends \
curl \
devscripts \
equivs \
git \
libxml2-utils \
lsb-release \
xsltproc

Debian 创建用户并添加到 sudo 组

sudo adduser <username>
sudo usermod -aG sudo <username>

编译 BoringSSL

进入 BoringSSL 目录,创建构建目录并编译:

cd boringssl && \
mkdir build && \
cd build && \
cmake -DOPENSSL_SMALL=1 -DCMAKE_BUILD_TYPE=Release .. && \
make -j $(nproc)