AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1060841
Accepted
mark
mark
Asked: 2018-07-31 07:39:34 +0800 CST2018-07-31 07:39:34 +0800 CST 2018-07-31 07:39:34 +0800 CST

如何在 14.04 上安装 nginx/development?

  • 772

直到最近我一直在使用ppa:nginx/development,但突然我无法在 14.04 上从那里安装 nginx 版本。

https://launchpad.net/~nginx/+archive/ubuntu/development还指出:

PPA 不再支持以下 Ubuntu 版本,因为构建依赖关系或由于版本年龄而无法解决的问题:

  • 值得信赖 (14.04)

在 14.04 上获得更新版本的 nginx 时,我还有哪些其他选择?

我至少需要http2支持(我在某些机器上成功运行了 1.9 和 1.13)。

server nginx 14.04
  • 1 1 个回答
  • 335 Views

1 个回答

  • Voted
  1. Best Answer
    Thomas Ward
    2018-07-31T08:14:05+08:002018-07-31T08:14:05+08:00

    仅供参考:我是该 PPA 的维护者,所以这是与为什么PPA 不再支持 14.04 相关的所有知识。

    仅供参考,“NGINX 开发”不再是“开发”。开发分支变成了“主线”分支,所以你应该这样称呼它——PPAnginx/development是因为它是在他们称之为主线之前保留的“旧”PPA。

    我本来打算改变它,但它并不是一个重要的优先事项,所以......


    为什么 PPA 不再支持 Trusty 14.04?

    较新的 NGINX 所需的依赖项在 14.04 上不存在,我们仅从 Debian 构建 Debian 软件包,而不是 Ubuntu 特定的变体。因此,NGINX 14.04 包的构建失败,因为 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.
    

    ... 跨 PPA 14.04 中的所有体系结构构建(1.15.0 的构建日志:amd64、、、、arm64和)。确切的构建失败在于第三方模块,该模块随许多人一起提供并被许多人使用。这种构建失败也不是 NGINX 的 Mainline 分支所独有的,因为同样的失败发生在 Stable 分支中。而这个构建失败只发生在 14.04 中。armhfi386ppc64elnginx-extras

    该模块在任何情况下都不会在 14.04 中构建;因此 14.04 构建无法完成。我可以从 Trusty 的包中删除此功能,但这会使包在不同版本之间不一致。

    出于这个原因,我放弃了 14.04 作为 NGINX PPA 的支持。


    PPA 曾经有一个较旧的 1.13.x 版本,为什么不再起作用了?

    至于 PPA 不再有 1.13,那是因为通常(通常每年一次,大约在每年 7 月中下旬的某个时间),我会检查并清理 PPA 以删除“不支持在PPA”发布。

    这就是为什么 PPA 不再适用于 14.04 的原因,因为我去清理了 PPA 中的包。

    (我们在 2014 年遇到了 Precise 类似的问题,出于同样的原因,我不得不终止 Precise 构建:旧的库不会构建新的 NGINX 和模块要求)


    PPA 的替代方案:使用 NGINX 上游存储库

    这将不包含 nginx-extras 或任何第三方模块,例如 Lua 模块 - 如果你需要那些你运气不好。

    现在,要在 14.04 中更新 NGINX,您可以尝试使用说明安装 NGINX Upstream Repositories,但是为了做到这一点,您必须先删除所有其他 NGINX 包,并确保您没有使用任何第三方Lua 等模块


    “真正的问题”,或者,“为什么你应该升级到更新的 Ubuntu 而不是为更新的 NGINX 使用 14.04”:

    您真正应该升级到更新的 Ubuntu而不是尝试使用 14.04 的主要原因是 14.04 上的HTTP/2 将不具备真正支持 HTTP/2 所需的所有功能- 即来自 OpenSSL 库的 ALPN 支持。

    HTTP/2 需要 ALPN 支持才能在现代真正发挥作用;这在 Ubuntu 14.04 中的 OpenSSL 库中不可用。许多浏览器不支持 HTTP/2 (NPN) 的另一种模式,因此您现在实际上不会从许多库中获得 HTTP/2 支持,因为许多浏览器等不支持 NPN HTTP/2。

    解决此问题的唯一方法是将您的系统升级到至少 16.04,因为这些将提供足够新的 OpenSSL 以启用 HTTP/2 支持,并且还将使您能够使用更新的 NGINX 构建,因为库更新和构建依赖项编译较新的 NGINX 并且存在来自 Debian 的软件包。

    • 4

相关问题

  • 使用 dpkg 手动安装软件包是否会阻止未来的升级路径?

  • 如何从命令行刻录双层 dvd iso

  • 如果在服务器机器上运行 Ubuntu 桌面版,性能损失是多少?

  • 将桌面版剥离为服务器版的最简单方法是什么?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve