Подключение репозитория CodeIT в Enterprise Linux

Репозиторий CodeIT

Сборки nginx и Apache httpd с поддержкой HTTP/3, TLS 1.3 и Brotli для Enterprise Linux.

Поддерживаются: EL 7, 8, 9 и 10 — RHEL, CentOS, AlmaLinux, Rocky Linux и Oracle Linux для архитектур x86_64 и aarch64.

CentOS Stream не поддерживается. Мы не тестируем пакеты репозитория в CentOS Stream.

Быстрая установка

Определяет версию вашей системы и устанавливает подходящий пакет репозитория:

curl -fsSL https://repo.codeit.guru/setup | sudo sh

Чтобы заранее увидеть все действия без внесения изменений:

curl -fsSL https://repo.codeit.guru/setup | sh -s -- --print

Скрипт делает только это: определяет версию системы и устанавливает один пакет. Если вы не хотите передавать скрипт напрямую командной оболочке, используйте следующий раздел — результат будет тем же, а команда одна.

Установка без скрипта

Выберите версию системы. Пакет настроит репозиторий и установит ключ подписи.

EL 9 — RHEL 9, AlmaLinux 9, Rocky 9

sudo dnf install -y https://repo.codeit.guru/codeit-repo-release.el9.rpm

EL 10

sudo dnf install -y https://repo.codeit.guru/codeit-repo-release.el10.rpm

EL 8

sudo dnf install -y https://repo.codeit.guru/codeit-repo-release.el8.rpm

EL 7 — CentOS 7, RHEL 7

sudo yum install -y https://repo.codeit.guru/codeit-repo-release.el7.rpm

Не знаете, какая у вас версия? rpm -E %{rhel} выводит номер поколения EL — 7, 8, 9 или 10. Используйте эту команду вместо /etc/redhat-release: в RHEL 7 версия выводится как 7Server, а производные дистрибутивы могут выводить значения от 9 до 9.4 и 9-stream.

Для зависимостей некоторых пакетов требуется EPEL . Этот пакет больше не подключает EPEL автоматически, поэтому при необходимости включите его самостоятельно:

sudo dnf install -y epel-release

Проверенная установка

Для тех, кто предпочитает проверить содержимое пакета перед установкой. Все шаги необязательны; результат совпадает с результатом команды выше.

Заменяйте el9 на обозначение своей версии во всех командах.

1. Скачайте пакет, не устанавливая его

curl -fsSLO https://repo.codeit.guru/codeit-repo-release.el9.rpm

2. Проверьте содержимое пакета

rpm -qip codeit-repo-release.el9.rpm     # description, licence, size
rpm -qlp codeit-repo-release.el9.rpm     # every file it installs
rpm -qp --scripts codeit-repo-release.el9.rpm

Последняя команда ничего не выводит. В пакете нет скриптлетов: он только устанавливает файлы конфигурации и ключи и ни на одном этапе не запускает код.

3. Сверьте ключ с опубликованным ниже отпечатком

rpm2cpio codeit-repo-release.el9.rpm \
  | cpio -i --quiet --to-stdout ./etc/pki/rpm-gpg/RPM-GPG-KEY-codeit \
  | gpg --show-keys --with-fingerprint

Сравните отпечаток с таблицей в разделе Ключи подписи.

Откуда берётся доверие. Пакет репозитория загружается по HTTPS, но его собственная подпись ничего не доказывает, пока вы не доверяете одному из наших ключей. Поэтому действительно важен описанный выше контроль отпечатка, а его надёжность зависит от вашего доверия к этой странице. Если для вашей модели угроз этого недостаточно, перед продолжением получите отпечаток по независимому каналу.

4. Установите только что проверенный файл

sudo dnf install -y ./codeit-repo-release.el9.rpm

После этого каждый пакет из репозитория автоматически проверяется этим ключом — за это отвечает параметр gpgcheck=1 в установленном файле /etc/yum.repos.d/codeit.repo . Перед установкой можно убедиться, что пакет подписан:

sudo dnf download nginx
rpm -Kv nginx-*.rpm

Выбор ветки

EL 8, 9 и 10 — потоки модулей

nginx публикуется в двух потоках, а httpd — в одном. Включите нужный поток, затем установите пакет обычным способом:

sudo dnf module enable -y nginx:codeit-stable      # nginx stable
sudo dnf module enable -y nginx:codeit-mainline    # or nginx mainline
sudo dnf module enable -y httpd:codeit             # Apache httpd

sudo dnf install -y nginx

Посмотреть доступные варианты:

dnf module list --disablerepo='*' --enablerepo=CodeIT

EL 7 — отдельный репозиторий

В EL 7 ещё не было потоков модулей, поэтому основная ветка nginx размещена в отдельном репозитории, который по умолчанию отключён:

sudo yum-config-manager --enable CodeIT-mainline --save
sudo yum install -y nginx

Проверка установки

dnf repolist enabled | grep -i codeit
dnf list available --disablerepo='*' --enablerepo=CodeIT | head

В EL 7 используйте yum вместо dnf.

Тестовый репозиторий и репозиторий исходников

Также устанавливаются два отключённых репозитория. Подключайте нужный только для конкретной команды, а не постоянно:

sudo dnf --enablerepo=CodeIT-testing install nginx    # pre-release builds
sudo dnf --enablerepo=CodeIT-source download --source nginx

CodeIT-testing содержит ещё не выпущенные сборки. Не включайте его постоянно на важных системах.

Ключи подписи

Оба ключа опубликованы, чтобы вы могли проверить их независимо.

Назначение Ключ Отпечаток
Пакеты для EL 8, 9, 10 Все метаданные репозитория MasterOfDevon <[email protected]> RSA 2048, 2021-12-08 A841 3774 B3FA A303 D8A6  CD79 5F53 E10D 0918 7DCD
Пакеты для EL 7 teatron (CodeIT) <[email protected]> RSA 2048, 2016-04-29 FF42 C2CE 04DC 87ED 8F22  99AF FBF1 407B 898B 43F4

Пакет для EL 7 устанавливает оба ключа. Пакеты EL 7 подписаны старым ключом и останутся подписанными им: системы, на которых репозиторий был настроен вручную до появления установочного пакета, доверяют этому ключу и не могут автоматически узнать о новом. В EL 8 и более новых версиях устанавливается только текущий ключ.

Чтобы в любой момент вывести отпечаток ключа, установленного в системе:

gpg --show-keys --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-codeit

Удаление репозитория

sudo dnf remove -y codeit-repo-release

Вместе с пакетом будут удалены конфигурация репозитория и ключи. Уже установленные пакеты останутся; если их тоже нужно удалить, сделайте это заранее.