Как установить nginx/development на 14,04?

До недавнего времени я использовал ppa:nginx/development но внезапно я не могу устанавливать nginx версию оттуда больше на 14,04.

https://launchpad.net / ~ nginx / + архив/человечность/разработка также указывает:

Следующие релизы Ubuntu больше не поддерживаются в PPA, должном создавать зависимости или проблемы, которые не могут быть разрешены из-за возраста выпуска:

  • Надежный человек (14.04)

Что другие опции я должен получить более позднюю версию nginx на 14,04?

Мне нужно, по крайней мере, http2 поддержка (я работаю 1.9 и 1.13 на некоторых машинах успешно).

1
задан 30 July 2018 в 18:39

1 ответ

К вашему сведению: я - специалист по обслуживанию того, что PPA, таким образом, это - все знание, связанное с тем, почему 14.04 больше не поддерживается в PPA.

Просто к вашему сведению, "Разработкой NGINX" больше не является "Разработка". Ответвление Разработки стало ответвлением "Магистрали", таким образом, необходимо обратиться к нему как таковой - PPA nginx/development то, потому что это - 'старый' PPA, отложенный до, они назвали это Магистралью.

Я означал изменять его, но это не был огромный приоритет так...


Почему PPA не поддерживает Надежного человека 14.04 еще?

Необходимые зависимости для более нового NGINX не существуют на 14,04, и мы создаем только пакеты Debian из Debian, не Ubuntu определенные варианты. По сути, сборки для 14.04 из пакетов NGINX перестали работать, потому что один или несколько битов кода в NGINX не создают в (теперь более чем 4 года) 14,04 кодовых баз.

Журналы сборки показывают этот отказ:

cc -c -fPIC -g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -g -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fPIC -D_FORTIFY_SOURCE=2 -DNDK_SET_VAR -I src/core -I src/event -I src/event/modules -I src/os/unix -I src/http/modules/perl -I /<<PKGBUILDDIR>>/debian/modules/http-ndk/objs -I objs/addon/ndk -I /<<PKGBUILDDIR>>/debian/modules/http-ndk/src -I /<<PKGBUILDDIR>>/debian/modules/http-ndk/objs -I objs/addon/ndk -I /<<PKGBUILDDIR>>/debian/modules/nchan/src -I /<<PKGBUILDDIR>>/debian/modules/http-lua/src/api -I /usr/include/lua5.1 -I /<<PKGBUILDDIR>>/debian/modules/rtmp -I /usr/include/libxml2 -I objs -I src/http -I src/http/modules -I src/http/v2 -I /<<PKGBUILDDIR>>/debian/modules/http-ndk/src -I src/mail -I src/stream \
        -o objs/addon/store/store_common.o \
        /<<PKGBUILDDIR>>/debian/modules/nchan/src/store/store_common.c
make[3]: *** No rule to make target `/<<PKGBUILDDIR>>/debian/modules/nchan/src/hiredis/hiredis.c', needed by `objs/addon/hiredis/hiredis.o'.  Stop.

... через всю архитектуру создает в 14,04 для PPA (журналы сборки для 1.15.0: amd64, arm64, armhf, i386, и ppc64el). Точный отказ сборки находится в стороннем модуле, который поставлется с nginx-extras и используется многими людьми. Этот отказ сборки не уникален для ответвления Магистрали NGINX, также, поскольку тот же отказ происходит в Стабильном ответвлении. И этот отказ сборки только происходит в 14,04.

Этот модуль не создает в 14,04 ни при каких обстоятельствах; 14,04 сборкам как таковым не удается завершиться. Я мог отбросить эту функцию от пакета для Надежного человека, но это сделает пакеты не последовательными через выпуски.

Поэтому я отбросил 14.04 как поддерживаемый от NGINX PPAs.


PPA раньше имел более старое 1.13.x сборка в нем, почему это больше не работает?

Что касается PPA, больше не имеющего 1.13, поэтому обычно (обычно один раз в год приблизительно в то же время каждый год когда-то в середине до конца июля), я прохожу и очищаю PPAs для удаления версий пакета для "Не Поддерживаемый в PPA" выпуски.

Поэтому PPA больше не работает на 14,04, потому что я пошел и очистил пакеты в PPA.

(У нас была подобная проблема с Точной спиной в 2014, где я должен был уничтожить Точные сборки по той же причине: более старые библиотеки не создали бы более новый NGINX и требования модуля),


Альтернатива PPA: используйте восходящие репозитории NGINX

Это не будет содержать nginx-отдельно-оплачиваемые-предметы или любые сторонние модули, такие как модуль Lua - при необходимости в них, Вам не повезло.

Теперь, чтобы быть обновленными NGINX в 14,04, можно попытаться использовать инструкции установить восходящие Репозитории NGINX, однако чтобы сделать это, необходимо удалить все другие пакеты NGINX сначала и удостовериться, что не используете сторонних модулей, таких как Lua


"Настоящая проблема", или, "Почему необходимо на самом деле обновить до более новой Ubuntu вместо того, чтобы использовать 14.04 для более нового NGINX":

Основная причина действительно необходимо идти и обновлять до более новой Ubuntu вместо того, чтобы пытаться использовать 14.04, то, что HTTP/2 на 14,04 не будет иметь всех необходимых функций необходимыми для истинной поддержки HTTP/2 - а именно, поддержка ALPN со стороны библиотек OpenSSL.

HTTP/2 нужна поддержка ALPN, чтобы действительно функционировать в нашем времени; это не доступно из библиотек OpenSSL в Ubuntu 14.04. Другой режим для HTTP/2 (N-P-N-СТРУКТУРА) не поддерживается многими браузерами, таким образом, Вы на самом деле не получите поддержку HTTP/2 со стороны многих библиотек теперь, поскольку много браузеров и такой не поддерживают N-P-N-СТРУКТУРУ HTTP/2.

Единственный подход, который фиксирует это, является обновлением Ваши системы по крайней мере к 16,04, поскольку они обеспечат достаточно новый OpenSSL для включения поддержки HTTP/2 и также предоставят Вам способность использовать более новые сборки NGINX, поскольку библиотеки являются более новыми и зависимости от сборки для компиляции более нового NGINX, и пакеты от Debian существуют.

4
ответ дан 3 December 2019 в 06:51

Другие вопросы по тегам:

Похожие вопросы: