Ошибка компиляции nginx с поддержкой Passenger

Ошибка компиляции nginx с поддержкой Passenger

Я только что установил пассажира:

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

Затем отредактировал /etc/apt/sources.listи добавил:

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

Затем apt-get update, cd /var/tmpи apt-get source nginx. Добавлено --add-module=/usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/src/nginx_module \в debian\rulesнужном месте.

Проблема возникает при компиляции nginx с поддержкой модуля Passenger:

apt-get build-dep nginx
dpkg-buildpackage -b
-Wl,-Bsymbolic-functions -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: перемещение R_X86_64_32 в `.bss' не может использоваться при создании общего объекта; перекомпилируйте с -fPIC
/usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/buildout/common/libpassenger_common/Logging.o: ошибка добавления символов: Неверное значение
collect2: ошибка: ld вернул 1 статус выхода
objs/Makefile:344: рецепт для цели «objs/nginx» не удался
make[2]: *** [objs/nginx] Ошибка 1
make[2]: Покидаем каталог '/var/tmp/t/nginx-1.10.3/debian/build-nginx'
Makefile:8: рецепт для цели «build» не удался
make[1]: *** [сборка] Ошибка 2
make[1]: Покидаем каталог '/var/tmp/t/nginx-1.10.3/debian/build-nginx'
debian/rules:60: рецепт для цели «build-arch.nginx» не удался
сделать: *** [build-arch.nginx] Ошибка 2
dpkg-buildpackage: ошибка: сборка debian/rules дала код ошибки выхода 2

Это вывод passenger-config --nginx-addon-dir:

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

Любопытно, что если я попытаюсь скомпилировать nginx из исходного кода, то passenger-install-nginx-moduleвсе будет работать нормально.

В любом случае, кто-нибудь знает, как исправить эту проблему? Для меня компиляция nginx по указанной процедуре является обязательной. Я хотел бы иметь возможность следовать указанной выше процедуре, исправляя проблему.

Спасибо :)

решение1

Наконец я отредактировал /usr/local/rvm/gems/ruby-2.4.0/gems/passenger-5.1.2/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rbи заменил эту строку flags << "-fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED"на flags << "-fvisibility=hidden -DVISIBILITY_ATTRIBUTE_SUPPORTED -fPIC". Затем скомпилировал Passenger, выполнив предыдущую команду rake, env NOEXEC_DISABLE=1 /usr/local/rvm/gems/ruby-2.4.0/wrappers/rake nginx:clean nginx RELEASE=yes.

Связанный контент