LINUX.ORG.RU
ФорумAdmin

Ошибка при сборке nginx с поддержкой OpenSSL 1.0.2h

 


0

2

Приветствую.

Подскажите новичку как правильно сделать, опыта еще маловато.

sed -i "s|--with-http_ssl_module|--with-http_ssl_module --with-openssl=/opt/lib/openssl-1.0.2h|g" /root/rpmbuild/SPECS/nginx.spec
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec

получаю ошибку:

/usr/bin/ld: /opt/lib/openssl-1.0.2h/.openssl/lib/libssl.a(s23_meth.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/opt/lib/openssl-1.0.2h/.openssl/lib/libssl.a: could not read symbols: Bad value
Хз как исправить, подскажите...


recompile with -fPIC
Вот так исправить.

aol ★★★★★ ()
Ответ на: комментарий от mrxk

Ну, ты же опенссл в опт как-то собрал?! Вот повтори ещё раз с -fPIC

aol ★★★★★ ()
Ответ на: комментарий от aol

я его там только распоковал tar -zxvf /opt/lib/openssl-1.0.2h.tar.gz -C /opt/lib

mrxk ()
Ответ на: комментарий от aol

Попробовал,другая ошибка теперь выходит:

 ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-openssl=/opt/lib/openssl-1.0.2h --with-openssl=/opt/lib/openssl-1.0.2h --with-openssl=/opt/lib/openssl-1.0.2h --with-openssl=/opt/lib/openssl-1.0.2h --with-openssl=/opt/lib/openssl-1.0.2h --with-openssl=/opt/lib/openssl-1.0.2h --with-openssl=/opt/lib/openssl-1.0.2h --with -fPIC --with-openssl=/opt/lib/openssl-1.0.2h --with-fPIC --with-openssl=/opt/lib/openssl-1.0.2h --with-openssl=/opt/lib/openssl-1.0.2h --with-openssl=/opt/lib/openssl-1.0.2h --with-openssl=/opt/lib/openssl-1.0.2h --with-openssl=/opt/lib/openssl-1.0.2h --with-openssl=/opt/lib/openssl-1.0.2h --with-openssl=/opt/lib/openssl-1.0.2h --with-openssl=/opt/lib/openssl-1.0.2h --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module '--with-cc-opt=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' '--with-ld-opt=-Wl,-z,relro -Wl,-z,now -pie' --with-debug
./configure: error: invalid option "--with"
error: Bad exit status from /var/tmp/rpm-tmp.G9I4nO (%build)

лишние прописываются --with-openssl=/opt/lib/openssl-1.0.2h --with-fPIC

mrxk ()
Ответ на: комментарий от mrxk

найдит src rpm пакет для openssl и также его собери только в opt

Jopich1 ()
Ответ на: комментарий от mrxk

Это надо компилятору говорить, а не конфигуре!

aol ★★★★★ ()
Ответ на: комментарий от Jopich1

так:

cd /opt/lib/openssl-1.0.2h
./config -fPIC --prefix=/usr/local --openssldir=/usr/local/ssl
make
make install

mrxk ()
Ответ на: комментарий от mrxk
OPENSSL="openssl-1.0.2h"
NGINX_VERSION="1.13.5-1"
NGINXURL="http://nginx.org/packages/mainline/centos/7/SRPMS/"
rpm -ivh ${NGINXURL}nginx-$NGINX_VERSION.el7.ngx.src.rpm
sed -i "/Source12: .*/a Source100: https://www.openssl.org/source/$OPENSSL.tar.gz" /root/rpmbuild/SPECS/nginx.spec
sed -i "s|--with-http_ssl_module|--with-http_ssl_module --with-openssl=$OPENSSL|g" /root/rpmbuild/SPECS/nginx.spec
sed -i '/%setup -q/a tar zxf %{SOURCE100}' /root/rpmbuild/SPECS/nginx.spec
sed -i '/.*Requires: openssl.*/d' /root/rpmbuild/SPECS/nginx.spec
sed -i 's|%define WITH_LD_OPT .*|%define WITH_LD_OPT ""|g' /root/rpmbuild/SPECS/nginx.spec
sed -i 's| -fPIC||g' /root/rpmbuild/SPECS/nginx.spec
spectool -g -R /root/rpmbuild/SPECS/nginx.spec
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec

Попробуй такой скрипт. Номера версий поправь только в первых строчках на нужные.
Я собираю с openssl-1.1.1 ради tls1.3
Готовый можно здесь взять: https://repo.lumi.pw/pub/CentOS/7/x86_64/Packages/

imul ★★★★★ ()
Последнее исправление: imul (всего исправлений: 2)
Ответ на: комментарий от mrxk

нет возьми свежий src rpm пакет от centos7 и измени его имя+ prefix. Все необходимые флаги уже будут указаны в src rpm пакете

Jopich1 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.