view xml/ru/linux_packages.xml @ 3028:55f8ce8a8cb0

Linux packages: actualized supported Alpine Linux versions.
author Konstantin Pavlov <thresh@nginx.com>
date Mon, 11 Dec 2023 17:42:59 -0800
parents cc6b36cd17d6
children
line wrap: on
line source

<!--
  Copyright (C) Nginx, Inc.
  -->

<!DOCTYPE article SYSTEM "../../dtd/article.dtd">

<article name="nginx: пакеты для Linux"
         link="/ru/linux_packages.html"
         lang="ru"
         rev="93">

<section name="Поддерживаемые дистрибутивы и версии" id="distributions">

<para>
Пакеты nginx доступны для следующих дистрибутивов Linux и их
версий:
</para>

<para>
<link id="RHEL">RHEL и производные</link>

<table note="yes">

<tr>
<td width="30%">Версия</td>
<td>Поддерживаемые платформы</td>
</tr>

<tr>
<td width="30%">7.4+</td>
<td>x86_64, aarch64/arm64</td>
</tr>

<tr>
<td width="30%">8.x</td>
<td>x86_64, aarch64/arm64, s390x</td>
</tr>

<tr>
<td width="30%">9.x</td>
<td>x86_64, aarch64/arm64, s390x</td>
</tr>

</table>
</para>

<para>
<link id="Debian">Debian</link>

<table note="yes">

<tr>
<td width="30%">Версия</td>
<td>Поддерживаемые платформы</td>
</tr>

<tr>
<td width="30%">11.x “bullseye”</td>
<td>x86_64, aarch64/arm64</td>
</tr>

<tr>
<td width="30%">12.x “bookworm”</td>
<td>x86_64, aarch64/arm64</td>
</tr>

</table>
</para>

<para>
<link id="Ubuntu">Ubuntu</link>

<table note="yes">

<tr>
<td width="30%">Версия</td>
<td>Поддерживаемые платформы</td>
</tr>

<tr>
<td width="30%">20.04 “focal”</td>
<td>x86_64, aarch64/arm64, s390x</td>
</tr>

<tr>
<td width="30%">22.04 “jammy”</td>
<td>x86_64, aarch64/arm64, s390x</td>
</tr>

<tr>
<td width="30%">23.04 “lunar”</td>
<td>x86_64, aarch64/arm64</td>
</tr>

<tr>
<td width="30%">23.10 “mantic”</td>
<td>x86_64, aarch64/arm64</td>
</tr>

</table>
</para>

<para>
<link id="SLES">SLES</link>

<table note="yes">

<tr>
<td width="30%">Версия</td>
<td>Поддерживаемые платформы</td>
</tr>

<tr>
<td width="30%">12 SP5+</td>
<td>x86_64</td>
</tr>

<tr>
<td width="30%">15 SP2+</td>
<td>x86_64</td>
</tr>

</table>
</para>

<para>
<link id="Alpine">Alpine</link>

<table note="yes">

<tr>
<td width="30%">Версия</td>
<td>Поддерживаемые платформы</td>
</tr>

<tr>
<td width="30%">3.16</td>
<td>x86_64, aarch64/arm64</td>
</tr>

<tr>
<td width="30%">3.17</td>
<td>x86_64, aarch64/arm64</td>
</tr>

<tr>
<td width="30%">3.18</td>
<td>x86_64, aarch64/arm64</td>
</tr>

<tr>
<td width="30%">3.19</td>
<td>x86_64, aarch64/arm64</td>
</tr>

</table>
</para>

<para>
<link id="Amazon-Linux">Amazon Linux</link>

<table note="yes">

<tr>
<td width="30%">Версия</td>
<td>Поддерживаемые платформы</td>
</tr>

<tr>
<td width="30%">2 (LTS)</td>
<td>x86_64, aarch64/arm64</td>
</tr>

<tr>
<td width="30%">2023</td>
<td>x86_64, aarch64/arm64</td>
</tr>

</table>
</para>

<para>
Пакеты для RHEL 7 и SLES 12 собраны без
<link doc="docs/http/ngx_http_v3_module.xml">поддержки HTTP/3</link>,
так как OpenSSL, используемая в этих дистрибутивах, не поддерживает TLSv1.3.
</para>

</section>


<section name="Инструкции по установке" id="instructions">

<para>
Для того, чтобы поставить nginx на новой машине, необходимо подключить
и настроить репозиторий пакетов nginx.
После этого можно будет установить и обновлять nginx из этого репозитория.
</para>

<section name="RHEL и производные" id="RHEL">

<para>
Эта секция применима к Red Hat Enterprise Linux и его производным, таким как
CentOS, Oracle Linux, Rocky Linux, AlmaLinux.
</para>

<para>
Установите пакеты, необходимые для подключения yum-репозитория:
<programlisting>
sudo yum install yum-utils
</programlisting>

Для подключения yum-репозитория создайте файл с именем
<path>/etc/yum.repos.d/nginx.repo</path>
со следующим содержимым:

<programlisting>
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
</programlisting>

По умолчанию используется репозиторий для стабильной версии nginx.
Если предпочтительно использовать пакеты для основной версии nginx,
выполните следующую команду:
<programlisting>
sudo yum-config-manager --enable nginx-mainline
</programlisting>

Чтобы установить nginx, выполните следующую команду:
<programlisting>
sudo yum install nginx
</programlisting>

При запросе подтверждения GPG-ключа проверьте, что отпечаток ключа совпадает
с <command>573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62</command>, и,
если это так, подтвердите его.
</para>

</section>


<section name="Debian" id="Debian">

<para>
Установите пакеты, необходимые для подключения apt-репозитория:
<programlisting>
sudo apt install curl gnupg2 ca-certificates lsb-release debian-archive-keyring
</programlisting>
</para>

<para>
Теперь нужно импортировать официальный ключ,
используемый apt для проверки подлинности пакетов.
Скачайте ключ:
<programlisting>
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
</programlisting>

Проверьте, верный ли ключ был загружен:
<programlisting>
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
</programlisting>

Вывод команды должен содержать полный отпечаток ключа
<command>573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62</command>:
<programlisting>
pub   rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
      573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid                      nginx signing key &lt;signing-key@nginx.com&gt;
</programlisting>
Если отпечаток отличается от вышеуказанного, удалите файл ключа.
</para>

<para>
Для подключения apt-репозитория для стабильной версии nginx,
выполните следующую команду:
<programlisting>
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list
</programlisting>

Если предпочтительно использовать пакеты для основной версии nginx,
выполните следующую команду вместо предыдущей:
<programlisting>
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list
</programlisting>
</para>

<para>
Для использования пакетов из нашего репозитория вместо
распространяемых в дистрибутиве, настройте закрепление:
<programlisting>
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | sudo tee /etc/apt/preferences.d/99nginx
</programlisting>
</para>

<para>
Чтобы установить nginx, выполните следующие команды:
<programlisting>
sudo apt update
sudo apt install nginx
</programlisting>
</para>

</section>


<section name="Ubuntu" id="Ubuntu">

<para>
Установите пакеты, необходимые для подключения apt-репозитория:
<programlisting>
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
</programlisting>
</para>

<para>
Теперь нужно импортировать официальный ключ,
используемый apt для проверки подлинности пакетов.
Скачайте ключ:
<programlisting>
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
</programlisting>

Проверьте, верный ли ключ был загружен:
<programlisting>
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
</programlisting>

Вывод команды должен содержать полный отпечаток ключа
<command>573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62</command>:
<programlisting>
pub   rsa2048 2011-08-19 [SC] [expires: 2024-06-14]
      573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid                      nginx signing key &lt;signing-key@nginx.com&gt;
</programlisting>
Если отпечаток отличается от вышеуказанного, удалите файл ключа.
</para>

<para>
Для подключения apt-репозитория для стабильной версии nginx,
выполните следующую команду:
<programlisting>
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list
</programlisting>

Если предпочтительно использовать пакеты для основной версии nginx,
выполните следующую команду вместо предыдущей:
<programlisting>
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list
</programlisting>
</para>

<para>
Для использования пакетов из нашего репозитория вместо
распространяемых в дистрибутиве, настройте закрепление:
<programlisting>
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
    | sudo tee /etc/apt/preferences.d/99nginx
</programlisting>
</para>

<para>
Чтобы установить nginx, выполните следующие команды:
<programlisting>
sudo apt update
sudo apt install nginx
</programlisting>
</para>

</section>


<section name="SLES" id="SLES">

<para>
Установите пакеты, необходимые для подключения zypper-репозитория:
<programlisting>
sudo zypper install curl ca-certificates gpg2
</programlisting>

Для подключения zypper-репозитория для стабильной версии nginx,
выполните следующую команду:
<programlisting>
sudo zypper addrepo --gpgcheck --type yum --refresh --check \
    'http://nginx.org/packages/sles/$releasever_major' nginx-stable
</programlisting>

Если предпочтительно использовать пакеты для основной версии nginx,
выполните следующую команду вместо предыдущей:
<programlisting>
sudo zypper addrepo --gpgcheck --type yum --refresh --check \
    'http://nginx.org/packages/mainline/sles/$releasever_major' nginx-mainline
</programlisting>

Теперь нужно импортировать официальный ключ, используемый zypper/rpm
для проверки подлинности пакетов.
Скачайте ключ:
<programlisting>
curl -o /tmp/nginx_signing.key https://nginx.org/keys/nginx_signing.key
</programlisting>

Проверьте, верный ли ключ был загружен:
<programlisting>
gpg --with-fingerprint /tmp/nginx_signing.key
</programlisting>

Вывод команды должен содержать полный отпечаток ключа
<command>573B FD6B 3D8F BC64 1079  A6AB ABF5 BD82 7BD9 BF62</command>:
<programlisting>
pub  2048R/7BD9BF62 2011-08-19 [expires: 2024-06-14]
      Key fingerprint = 573B FD6B 3D8F BC64 1079  A6AB ABF5 BD82 7BD9 BF62
uid nginx signing key &lt;signing-key@nginx.com&gt;
</programlisting>

Импортируйте ключ в базу данных rpm:
<programlisting>
sudo rpmkeys --import /tmp/nginx_signing.key
</programlisting>

Чтобы установить nginx, выполните следующую команду:
<programlisting>
sudo zypper install nginx
</programlisting>
</para>

</section>


<section name="Alpine" id="Alpine">

<para>
Установите пакеты, необходимые для подключения apk-репозитория:
<programlisting>
sudo apk add openssl curl ca-certificates
</programlisting>

Для подключения apk-репозитория для стабильной версии nginx,
выполните следующую команду:
<programlisting>
printf "%s%s%s%s\n" \
    "@nginx " \
    "http://nginx.org/packages/alpine/v" \
    `egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release` \
    "/main" \
    | sudo tee -a /etc/apk/repositories
</programlisting>

Если предпочтительно использовать пакеты для основной версии nginx,
выполните следующую команду вместо предыдущей:
<programlisting>
printf "%s%s%s%s\n" \
    "@nginx " \
    "http://nginx.org/packages/mainline/alpine/v" \
    `egrep -o '^[0-9]+\.[0-9]+' /etc/alpine-release` \
    "/main" \
    | sudo tee -a /etc/apk/repositories
</programlisting>

Теперь нужно импортировать официальный ключ, используемый apk
для проверки подлинности пакетов.
Скачайте ключ:
<programlisting>
curl -o /tmp/nginx_signing.rsa.pub https://nginx.org/keys/nginx_signing.rsa.pub
</programlisting>

Проверьте, верный ли ключ был загружен:
<programlisting>
openssl rsa -pubin -in /tmp/nginx_signing.rsa.pub -text -noout
</programlisting>

Вывод команды должен содержать следующий модуль:
<programlisting>
Public-Key: (2048 bit)
Modulus:
    00:fe:14:f6:0a:1a:b8:86:19:fe:cd:ab:02:9f:58:
    2f:37:70:15:74:d6:06:9b:81:55:90:99:96:cc:70:
    5c:de:5b:e8:4c:b2:0c:47:5b:a8:a2:98:3d:11:b1:
    f6:7d:a0:46:df:24:23:c6:d0:24:52:67:ba:69:ab:
    9a:4a:6a:66:2c:db:e1:09:f1:0d:b2:b0:e1:47:1f:
    0a:46:ac:0d:82:f3:3c:8d:02:ce:08:43:19:d9:64:
    86:c4:4e:07:12:c0:5b:43:ba:7d:17:8a:a3:f0:3d:
    98:32:b9:75:66:f4:f0:1b:2d:94:5b:7c:1c:e6:f3:
    04:7f:dd:25:b2:82:a6:41:04:b7:50:93:94:c4:7c:
    34:7e:12:7c:bf:33:54:55:47:8c:42:94:40:8e:34:
    5f:54:04:1d:9e:8c:57:48:d4:b0:f8:e4:03:db:3f:
    68:6c:37:fa:62:14:1c:94:d6:de:f2:2b:68:29:17:
    24:6d:f7:b5:b3:18:79:fd:31:5e:7f:4c:be:c0:99:
    13:cc:e2:97:2b:dc:96:9c:9a:d0:a7:c5:77:82:67:
    c9:cb:a9:e7:68:4a:e1:c5:ba:1c:32:0e:79:40:6e:
    ef:08:d7:a3:b9:5d:1a:df:ce:1a:c7:44:91:4c:d4:
    99:c8:88:69:b3:66:2e:b3:06:f1:f4:22:d7:f2:5f:
    ab:6d
Exponent: 65537 (0x10001)
</programlisting>

Переместите ключ в каталог доверенных ключей apk:
<programlisting>
sudo mv /tmp/nginx_signing.rsa.pub /etc/apk/keys/
</programlisting>

Чтобы установить nginx, выполните следующую команду:
<programlisting>
sudo apk add nginx@nginx
</programlisting>

Тэг <literal>@nginx</literal> должен быть указан и при установке пакетов
с <link url="#dynmodules">динамическими модулями</link>:
<programlisting>
sudo apk add nginx-module-image-filter@nginx nginx-module-njs@nginx
</programlisting>
</para>

</section>


<section name="Amazon Linux" id="Amazon-Linux">

<para>
Установите пакеты, необходимые для подключения yum-репозитория:
<programlisting>
sudo yum install yum-utils
</programlisting>

Для подключения yum-репозитория для Amazon Linux 2 создайте файл с именем
<path>/etc/yum.repos.d/nginx.repo</path>
со следующим содержимым:

<programlisting>
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/amzn2/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
priority=9

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/amzn2/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
priority=9
</programlisting>

Для подключения yum-репозитория для Amazon Linux 2023 создайте файл с именем
<path>/etc/yum.repos.d/nginx.repo</path>
со следующим содержимым:

<programlisting>
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/amzn/2023/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
priority=9

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/amzn/2023/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
priority=9
</programlisting>

По умолчанию используется репозиторий для стабильной версии nginx.
Если предпочтительно использовать пакеты для основной версии nginx,
выполните следующую команду:
<programlisting>
sudo yum-config-manager --enable nginx-mainline
</programlisting>

Чтобы установить nginx, выполните следующую команду:
<programlisting>
sudo yum install nginx
</programlisting>

При запросе подтверждения GPG-ключа проверьте, что отпечаток ключа совпадает
с <command>573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62</command>, и,
если это так, подтвердите его.
</para>

</section>

</section>


<section name="Пакеты с исходным кодом" id="sourcepackages">

<para>
Исходные коды пакетов находятся в соответствующем
<link url="http://hg.nginx.org/pkg-oss">репозитории</link>.
</para>

<para>
Ветка репозитория <literal>default</literal> содержит исходные коды пакетов для
mainline-версии, в то время как ветки <literal>stable-*</literal> содержат
исходные коды пакетов для стабильных релизов.
Для сборки бинарных пакетов запустите <command>make</command> в каталоге
<path>debian/</path> для Debian/Ubuntu, или в каталоге
<path>rpm/SPECS/</path> для RHEL и производных, SLES, и Amazon Linux, или в каталоге
<path>alpine/</path> для Alpine.
</para>

<para>
Исходные коды пакетов распространяются под той же
<link url="../LICENSE">BSD-подобной лицензией из 2 пунктов</link>,
что и сам nginx.
</para>

</section>


<section name="Динамические модули" id="dynmodules">

<para>
Для того чтобы избежать увеличения числа зависимостей, основной пакет nginx не
включает модули, которым требуются дополнительные библиотеки.
Начиная с версии 1.9.11 nginx поддерживает
<link doc="docs/ngx_core_module.xml" id="load_module">динамические
модули</link>, и следующие модули собираются как динамические и поставляются в
виде отдельных пакетов:
<programlisting>
nginx-module-geoip
nginx-module-image-filter
nginx-module-njs
nginx-module-perl
nginx-module-xslt
</programlisting>
В дополнение к этому, начиная с версии 1.25.3 следующий модуль поставляется
в виде отдельного пакета:
<programlisting>
nginx-module-otel
</programlisting>
</para>

</section>


<section name="Подписи" id="signatures">

<para>
Поскольку наши <link doc="../en/pgp_keys.xml">PGP-ключи</link>
находятся на том же сервере, что и пакеты,
им следует доверять в равной степени.
Поэтому мы настоятельно рекомендуем дополнительно проверить
подлинность загруженных PGP-ключей.
В PGP есть понятие “сети доверия”,
когда ключ подписывается чьим-либо другим ключом,
тот в свою очередь третьим, и т.д.
Это зачастую позволяет построить цепочку от произвольного ключа
до ключа человека, которого вы знаете и кому доверяете лично,
и таким образом удостовериться в подлинности первого ключа в цепочке.
Подробно эта концепция описана в
<link url="https://www.gnupg.org/howtos/en/GPGMiniHowto-1.html">
GPG Mini Howto</link>.
У наших ключей есть достаточное количество подписей,
поэтому проверить их подлинность относительно несложно.
</para>

</section>

</article>