# Linux 软件包

## nginx：Linux 软件包

目前，nginx 软件支持以下 Linux 发行版：

RHEL/CentOS：

| 版本  | 支持平台            |
| --- | --------------- |
| 6.x | x86\_64，i386    |
| 7.x | x86\_64，ppc64le |

Debian：

| 版本  | 代号      | 支持平台         |
| --- | ------- | ------------ |
| 7.x | wheezy  | x86\_64，i386 |
| 8.x | jessie  | x86\_64，i386 |
| 9.x | stretch | x86\_64，i386 |

Ubuntu：

| 版本    | 代号      | 支持平台                                |
| ----- | ------- | ----------------------------------- |
| 12.04 | precise | x86\_64，i386                        |
| 14.04 | trusty  | x86\_64，i386, aarch64/arm64         |
| 16.04 | xenial  | x86\_64，i386, ppc64el，aarch64/arm64 |
| 16.10 | yakkety | x86\_64，i386                        |

SLES：

| 版本 | 支持平台    |
| -- | ------- |
| 12 | x86\_64 |

要启用 Linux 软件包的自动更新，可设置 RHEL/CentOS 发行版的 yum 仓库（repository），Debian/Ubuntu 发行版的 apt 仓库或 SLES 的 zypper 仓库。

## 稳定版本的预构建软件包

要设置 RHEL/CentOS 的 yum 仓库，请创建名为 `/etc/yum.repos.d/nginx.repo` 的文件，其中包含以下内容：

```
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1
```

根据所使用的发行版，使用 `rhel` 或 `centos` 替换掉 `OS`，对于 6.x 或 7.x 版本，将 `OSRELEASE` 替换为 `6` 或 `7`。

对于 Debian/Ubuntu，为了验证 nginx 仓库签名，并且在安装 nginx 软件包时消除关于缺少 PGP 密钥的警告，需要将用于将 nginx 软件包和仓库签署的密钥添加到 `apt` 程序密钥环中。请从我们的网站下载此[密钥](http://nginx.org/keys/nginx_signing.key)，并使用以下命令将其添加到 `apt` 程序密钥环：

```bash
sudo apt-key add nginx_signing.key
```

对于 Debian，使用 Debian 发行版代号替换掉 `codename`，并将以下内容追加到 `/etc/apt/sources.list` 文件末尾：

```bash
deb http://nginx.org/packages/debian/ codename nginx
deb-src http://nginx.org/packages/debian/ codename nginx
```

对于 Ubuntu，使用 Ubuntu 发行版代号替换掉 `codename`，并将以下内容追加到 `/etc/apt/sources.list` 文件末尾：

```bash
deb http://nginx.org/packages/ubuntu/ codename nginx
deb-src http://nginx.org/packages/ubuntu/ codename nginx
```

对于 Debian/Ubuntu，请运行以下命令：

```bash
apt-get update
apt-get install nginx
```

对于 SLES，运行以下命令：

```bash
zypper addrepo -G -t yum -c 'http://nginx.org/packages/sles/12' nginx
```

## 主线版本的预构建软件包

要设置 RHEL/CentOS 的 yum 仓库，请创建名为 `/etc/yum.repos.d/nginx.repo` 的文件，其中包含以下内容：

```
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1
```

根据所使用的发行版，使用 `rhel` 或 `centos` 替换掉 `OS`，对于 6.x 或 7.x 版本，将 `OSRELEASE` 替换为 `6` 或 `7`。

对于 Debian/Ubuntu，为了验证 nginx 仓库签名，并且在安装 nginx 软件包时消除关于缺少 PGP 密钥的警告，必须将用于将 nginx 软件包和仓库签署的密钥添加到 `apt` 程序密钥环中。请从我们的网站下载此 [密钥](http://nginx.org/keys/nginx_signing.key)，并使用以下命令将其添加到 `apt` 程序密钥环：

```bash
sudo apt-key add nginx_signing.key
```

对于 Debian，使用 Debian 发行版代号替换 `codename`，并将以下内容追加到 `/etc/apt/sources.list` 文件末尾：

```bash
deb http://nginx.org/packages/mainline/debian/ codename nginx
deb-src http://nginx.org/packages/mainline/debian/ codename nginx
```

对于 Ubuntu，使用 Ubuntu 发行版代号替换 `codename`，并将以下内容追加到 `/etc/apt/sources.list` 文件末尾：

```bash
deb http://nginx.org/packages/mainline/ubuntu/ codename nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ codename nginx
```

对于 Debian/Ubuntu，请运行以下命令：

```bash
apt-get update
apt-get install nginx
```

对于 SLES，请运行以下命令：

```bash
zypper addrepo -G -t yum -c 'http://nginx.org/packages/mainline/sles/12' nginx
```

## 源码包

源码包可以在 [源码包库](http://hg.nginx.org/pkg-oss?_ga=2.100560158.1468443122.1505551652-1890203964.1497190280) 中找到。

`default` 分支保存当前主线版本的源码包，而 `stable-*` 分支包含了稳定版本的最新源码。要构建二进制包，请在 Debian/Ubuntu 上的 `debian/` 目录或在 RHEL/CentOS/SLES 上的 `rpm/SPECS/` 中运行 `make`。

源码包在 [类 BSD 的两项条款许可证](http://nginx.org/LICENSE) 下发行，与 nginx 相同。

## 动态模块

主 nginx 包使用了所有模块进行构建，没有使用到附加库，以避免额外的依赖。自 1.9.11 版本开始，nginx 支持 [动态模块](http://nginx.org/en/docs/ngx_core_module.html#load_module)，并将以下模块构建为动态模块，以独立软件包的形式发布：

```
nginx-module-geoip
nginx-module-image-filter
nginx-module-njs
nginx-module-perl
nginx-module-xslt
```

## 签名

RPM 软件包和 Debian/Ubuntu 仓库都使用数字签名来验证下载包的完整性和来源。为了检查签名，需要下载 [nginx 签名密钥](http://nginx.org/keys/nginx_signing.key) 并将其导入 rpm 或 apt 程序密钥环：

在 Debian/Ubuntu 上：

```bash
sudo apt-key add nginx_signing.key
```

在 RHEL/CentOS 上；

```bash
sudo rpm --import nginx_signing.key
```

在 SLES 上：

```bash
sudo rpm --import nginx_signing.key
```

Debian/Ubuntu/SLES 签名默认情况被检查，但是在 RHEL/CentOS 上，需要在 `/etc/yum.repos.d/nginx.repo` 文件中进行设置：

```
gpgcheck= 1
```

由于我们的 [PGP 密钥](http://nginx.org/en/pgp_keys.html) 和软件包都位于同一台服务器上，因此它们都是可信的。强烈建议另行验证下载的 PGP 密钥的真实性。PGP 具有“Web of Trust”（信任网络）的概念，当一个密钥是由别人的密钥签署的，而另一个密钥则由另一个密钥签名。它通常可以建立一个从任意密钥到您知道和信任的某人的密钥，从而验证链中第一个密钥的真实性。这个概念在 [GPG Mini Howto](http://www.dewinter.com/gnupg_howto/english/GPGMiniHowto-1.html) 中有详细描述。我们的钥匙有足够的签名，其真实性比较容易检查。

## 原文档

<http://nginx.org/en/linux_packages.html#distributions>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docshome.gitbook.io/nginx-docs/qi-ta/linux-bao.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
