使用 apt-get 安装可选的 Nginx 模块

Mic*_*ley 43 package-management nginx apt

我目前通过 Nginx 站点上的说明安装了 Nginx:

nginx=stable
sudo su -
add-apt-repository ppa:nginx/$nginx
apt-get update 
apt-get install
Run Code Online (Sandbox Code Playgroud)

我已经配置了 Nginx,它已经运行了一段时间。现在,我想添加一些自定义模块——比如说,上传进度模块。此模块的说明说要添加--add-module=path/to/nginx_uploadprogress_module到您的./configure命令中。但是,我没有从源代码安装 Nginx。

处理这种情况的最佳方法是什么?是否可以告诉 APT 从源代码编译并将选项传递给./configure?我可以在现有安装上编译吗?路径怎么样——我如何让它们匹配?还是我必须删除 APT 托管版本并重新开始?

alv*_*osu 60

安装 dpkg-dev:

sudo apt-get install dpkg-dev
Run Code Online (Sandbox Code Playgroud)

添加存储库:

sudo add-apt-repository ppa:nginx/stable
Run Code Online (Sandbox Code Playgroud)

编辑/etc/apt/sources.list.d/nginx-stable-lucid.list,添加 dpkg-src:

deb http://ppa.launchpad.net/nginx/stable/ubuntu lucid main
deb-src http://ppa.launchpad.net/nginx/stable/ubuntu lucid main
Run Code Online (Sandbox Code Playgroud)

注意:(上一步可能已经在 Ubuntu >= 12.04 上自动执行了 - 还要确保您进行更改lucid以反映您的版本)

重新同步包索引文件:

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

获取来源:

apt-get source nginx
Run Code Online (Sandbox Code Playgroud)

构建依赖:

sudo apt-get build-dep nginx
Run Code Online (Sandbox Code Playgroud)

编辑 nginx-0.8.54/debian/rules:

config.status.full: config.env.full config.sub config.guess
...
--add-module=path/to/nginx_uploadprogress_module
Run Code Online (Sandbox Code Playgroud)

构建包:

cd nginx-0.8.54 && dpkg-buildpackage -b
Run Code Online (Sandbox Code Playgroud)

安装软件包:

sudo dpkg --install nginx-common_1.2.4-2ubuntu0ppa1~precise_all.deb

sudo dpkg --install nginx-full_1.2.4-2ubuntu0ppa1~precise_amd64.deb
Run Code Online (Sandbox Code Playgroud)

  • @BrandonTilley 如果你这样安装,你可以通过 `apt-get`/`dpkg` 卸载它,你通过 `apt-get` 安装的其他包也会知道安装了 `nginx` 并且不会询问你安装它。如果你直接从源代码安装它,你将不会得到这个。 (4认同)
  • 嗨 alvosu,我收到此错误: dpkg-buildpackage: error: debian/rules build give error exit status 2. 知道吗? (2认同)
  • 如果你有这样的错误“dpkg-buildpackage: warning: Failed to sign .dsc and .changes file”,使用`dpkg-buildpackage -uc -us`代替`dpkg-buildpackage -b`。否则,将不会创建 .deb 文件。 (2认同)

Vic*_*nko 35

由于挤入 Debian和Ubuntu 中的oneric,有一些(就像headers-more-module我需要的)

apt-get install nginx-extras
Run Code Online (Sandbox Code Playgroud)

  • Dotdeb 提供了一个不错的 nginx-extras 包:http://www.dotdeb.org/instructions/ (3认同)