Error al compilar nginx con soporte para pasajeros

Error al compilar nginx con soporte para pasajeros

Acabo de instalar el pasajero por:

gem install passenger
cd /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2
env NOEXEC_DISABLE=1 /usr/local/rvm/gems/ruby-2.4.0/wrappers/rake nginx:clean nginx RELEASE=yes

Luego editado /etc/apt/sources.listy agregado:

deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx

Entonces apt-get updatey .cd /var/tmpapt-get source nginxAgregado --add-module=/usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/src/nginx_module \en debian\rulesel lugar correcto.

El problema surge al compilar nginx con soporte para módulo de pasajero:

apt-get build-dep nginx
dpkg-buildpackage -b
-Wl,-Bfunciones-simbólicas -Wl,-z,relro -Wl,-z,now -Wl,--según sea necesario -pie -ldl -lpthread -lpthread -lcrypt /var/tmp/ngx_pagespeed-1.12.34.2- beta/psol/lib/Release/linux/x64/pagespeed_automatic.a -lstdc++ -lrt -pthread -lm -lexpat /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/ common/libpassenger_common/Logging.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Exceptions.o /usr/local/rvm/gems/ruby- 2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Utils/SystemTime.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/ libpassenger_common/Utils/StrIntUtils.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Utils/StrIntUtilsNoStrictAliasing.o /usr/local/rvm/gems/ ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Utils/IOUtils.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/ common/libpassenger_common/Utils.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/WatchdogLauncher.o /usr/local/rvm/gems/ruby- 2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/AppTypes.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/ Utils/CachedFileStat.o /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/UnionStationFilterSupport.o /usr/local/rvm/gems/ruby-2.4. 0/gems/passenger-5.1.2/buildout/common/libboost_oxt.a -lstdc++ -lpthread -lm -lrt -lpcre -lssl -lcrypto -ldl -lz -lGeoIP \
-Wl,-E
/usr/bin/ld.bfd.real: /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Logging.o: reubicación R_X86_64_32 contra `.bss ' no se puede utilizar al crear un objeto compartido; recompilar con -fPIC
/usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Logging.o: error al agregar símbolos: valor incorrecto
Collect2: error: ld devolvió 1 estado de salida
objs/Makefile:344: la receta para el objetivo 'objs/nginx' falló
hacer[2]: *** [objs/nginx] Error 1
make[2]: Saliendo del directorio '/var/tmp/t/nginx-1.10.3/debian/build-nginx'
Makefile:8: la receta para la 'compilación' del objetivo falló
hacer[1]: *** [compilación] Error 2
make[1]: Saliendo del directorio '/var/tmp/t/nginx-1.10.3/debian/build-nginx'
debian/rules:60: la receta para el objetivo 'build-arch.nginx' falló
hacer: *** [build-arch.nginx] Error 2
dpkg-buildpackage: error: la compilación de Debian/rules dio un estado de salida de error 2

Esta es la salida de passenger-config --nginx-addon-dir:

/usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/src/nginx_module

Lo curioso es que si intento compilar nginx desde la fuente, passenger-install-nginx-moduletodo funciona bien.

De todos modos, ¿alguien sabe cómo puedo solucionar este problema? Para mí, compilar nginx siguiendo el procedimiento mencionado es imprescindible. Me gustaría poder seguir el procedimiento anterior mientras soluciono el problema.

Gracias :)

Respuesta1

Finalmente edité /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rby reemplacé esta línea flags << "-fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED"por flags << "-fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED -fPIC". Luego compiló el pasajero ejecutando el comando rake anterior, env NOEXEC_DISABLE=1 /usr/local/rvm/gems/ruby-2.4.0/wrappers/rake nginx:clean nginx RELEASE=yes.

información relacionada