Ошибка компиляции nginx с поддержкой пассажиров
Я только что установил пассажира:
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 с поддержкой пассажирского модуля:
apt-get build-dep nginx
dpkg-buildpackage -b
-Wl,-Bsymbolic-функции -Wl,-z,relro -Wl,-z, теперь -Wl,- по мере необходимости -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 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: error: 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]: *** [build] Ошибка 2 make[1]: выход из каталога'/var/tmp/t/nginx-1.10.3/debian/build-nginx' debian/rules:60: рецепт для цели'build-arch.nginx'не выполнен make: *** [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"
, Затем скомпилировал пассажира, выполнив предыдущую команду рейка, env NOEXEC_DISABLE=1 /usr/local/rvm/gems/ruby-2.4.0/wrappers/rake nginx:clean nginx RELEASE=yes
,