Репозиторий CodeIT
Сборки nginx и Apache httpd с поддержкой HTTP/3, TLS 1.3 и Brotli для Ubuntu и Debian.
Поддерживаются: Ubuntu 22.04 (jammy) и
Ubuntu 24.04 (noble) для архитектур amd64 и
arm64. Поддерживаются и производные Ubuntu, например Linux Mint: используйте версию Ubuntu, на которой основан ваш дистрибутив.
Быстрая установка
Определяет версию вашей системы и устанавливает подходящий пакет репозитория:
curl -fsSL https://repo.codeit.guru/setup | sudo sh
Чтобы заранее увидеть все действия без внесения изменений:
curl -fsSL https://repo.codeit.guru/setup | sh -s -- --print
Скрипт делает только это: определяет версию системы и устанавливает один пакет. Если вы не хотите передавать скрипт напрямую командной оболочке, используйте следующий раздел — результат будет тем же.
Установка без скрипта
Выберите версию системы. Пакет установит источник apt и ключ подписи.
Ubuntu 24.04 — noble
curl -fsSLO https://repo.codeit.guru/codeit-repo-release.noble.deb
sudo dpkg -i codeit-repo-release.noble.deb
sudo apt-get update
Ubuntu 22.04 — jammy
curl -fsSLO https://repo.codeit.guru/codeit-repo-release.jammy.deb
sudo dpkg -i codeit-repo-release.jammy.deb
sudo apt-get update
Как узнать версию системы?
. /etc/os-release; echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}"
В Mint, Pop!_OS и похожих дистрибутивах используйте UBUNTU_CODENAME — это нужное значение.
VERSION_CODENAME содержит собственное имя производного дистрибутива, а пакеты для такого набора мы не публикуем.
Для каждого выпуска нужен отдельный пакет: в отличие от dnf, apt не умеет подставлять переменную в файл источников, поэтому кодовое имя должно быть указано явно.
Проверенная установка
Для тех, кто предпочитает проверить содержимое пакета перед установкой. Все шаги необязательны; результат будет тем же.
Заменяйте jammy на кодовое имя своей версии во всех командах.
1. Скачайте пакет, не устанавливая его
curl -fsSLO https://repo.codeit.guru/codeit-repo-release.jammy.deb
2. Проверьте содержимое пакета
dpkg -I codeit-repo-release.jammy.deb # control data, dependencies
dpkg -c codeit-repo-release.jammy.deb # every file it installs
В пакете два файла: источник apt и связка ключей. Сценариев сопровождающего нет, поэтому при установке пакет не запускает никакой код.
3. Просмотрите добавляемый источник apt
dpkg-deb --fsys-tarfile codeit-repo-release.jammy.deb \
| tar -xO ./etc/apt/sources.list.d/codeit.sources
4. Сверьте ключ с опубликованным ниже отпечатком
dpkg-deb --fsys-tarfile codeit-repo-release.jammy.deb \
| tar -xO ./usr/share/keyrings/codeit-archive-keyring.asc \
| gpg --show-keys --with-fingerprint
Сравните его с таблицей в разделе Ключи подписи.
Откуда берётся доверие. Пакет загружается по HTTPS и сам по себе не подписан. В apt подпись хранится в файле
Release репозитория, но проверка работает только после установки ключа. Поэтому действительно важен описанный выше контроль отпечатка, а его надёжность зависит от вашего доверия к этой странице. Если для вашей модели угроз этого недостаточно, сначала получите отпечаток по независимому каналу.
5. Установите только что проверенный файл
sudo dpkg -i ./codeit-repo-release.jammy.deb
sudo apt-get update
Установка пакетов
sudo apt-get install -y nginx
sudo apt-get install -y apache2
Оба семейства пакетов находятся в одном наборе, поэтому предварительно ничего включать не нужно: у потоков модулей Enterprise Linux нет аналога в apt.
Чтобы закрепить пакет за этим репозиторием или проверить, из какого источника он будет установлен:
apt policy nginx
Проверка установки
apt policy | grep -i codeit
ls -l /etc/apt/sources.list.d/codeit.sources
ls -l /usr/share/keyrings/codeit-archive-keyring.asc
Успешное выполнение apt-get update без предупреждений NO_PUBKEY или
signature означает, что файл Release репозитория успешно проверен установленным ключом.
Тестовый набор
Устанавливается и вторая, отключённая запись для предварительных сборок. Чтобы включить её, измените Enabled: no на Enabled: yes во второй секции:
sudoedit /etc/apt/sources.list.d/codeit.sources
sudo apt-get update
Тестовый набор содержит ещё не выпущенные сборки. Не оставляйте его включённым на важных системах.
Ключи подписи
Пакеты Ubuntu и Debian подписаны одним ключом.
| Назначение | Ключ | Отпечаток |
|---|---|---|
| Ubuntu, Debian EL 8, 9, 10 | MasterOfDevon
<[email protected]>
RSA 2048, 2021-12-08 |
A841 3774 B3FA A303 D8A6 CD79 5F53 E10D 0918 7DCD |
Чтобы вывести отпечаток ключа, установленного в системе:
gpg --show-keys --with-fingerprint /usr/share/keyrings/codeit-archive-keyring.asc
Ключ не добавляется в глобальную связку ключей apt, и это правильно. Он устанавливается отдельным файлом и указывается через
Signed-By: в codeit.sources, поэтому может подтверждать подлинность только этого репозитория. Ключ, добавленный командой apt-key , считается доверенным для всех репозиториев в системе. Именно поэтому эта команда устарела и отсутствует в современных выпусках.
Удаление репозитория
sudo apt-get remove -y codeit-repo-release
sudo apt-get update
Вместе с пакетом будут удалены источник apt и связка ключей. Уже установленные пакеты останутся; если их тоже нужно удалить, сделайте это заранее.
