
Acabei de instalar o passageiro 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
Em seguida, editei /etc/apt/sources.list
e adicionei:
deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx
Então apt-get update
, cd /var/tmp
e apt-get source nginx
. Adicionado --add-module=/usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/src/nginx_module \
no debian\rules
lugar certo.
O problema surge ao compilar o nginx com suporte ao módulo passageiro:
apt-get build-dep nginx
dpkg-buildpackage -b
-Wl,-Bfunções simbólicas -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -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: realocação R_X86_64_32 contra `.bss 'não pode ser usado ao criar um objeto compartilhado; recompilar com -fPIC /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Logging.o: erro ao adicionar símbolos: valor inválido collect2: erro: ld retornou 1 status de saída objs/Makefile:344: receita para o alvo 'objs/nginx' falhou make[2]: *** [objs/nginx] Erro 1 make[2]: Saindo do diretório '/var/tmp/t/nginx-1.10.3/debian/build-nginx' Makefile:8: receita para 'build' de destino falhou make[1]: *** [compilação] Erro 2 make[1]: Saindo do diretório '/var/tmp/t/nginx-1.10.3/debian/build-nginx' debian/rules:60: receita para o alvo 'build-arch.nginx' falhou make: *** [build-arch.nginx] Erro 2 dpkg-buildpackage: erro: compilação debian/rules deu status de saída de erro 2
Esta é a saída de passenger-config --nginx-addon-dir
:
/usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/src/nginx_module
O curioso é que se eu tentar compilar o nginx a partir do código-fonte passenger-install-nginx-module
tudo funciona bem.
De qualquer forma, alguém sabe como posso resolver esse problema? Para mim, compilar o nginx seguindo o procedimento mencionado é obrigatório. Gostaria de poder seguir o procedimento acima ao corrigir o problema.
Obrigado :)
Responder1
Finalmente editei /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb
e substituí esta linha flags << "-fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED"
por flags << "-fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED -fPIC"
. Em seguida, compilei o passageiro executando o comando rake anterior, env NOEXEC_DISABLE=1 /usr/local/rvm/gems/ruby-2.4.0/wrappers/rake nginx:clean nginx RELEASE=yes
.