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)