Гид по технологиям

Сборка библиотеки Brotli из исходников на CentOS 7

• 3 min read • Linux • Обновлено 18 Nov 2025
Brotli на CentOS 7: сборка из исходников
Brotli на CentOS 7: сборка из исходников

Логотип Brotli и схема алгоритма сжатия

Brotli — универсальный безпотерьный алгоритм сжатия, использующий модифицированный LZ77, кодирование Хаффмана и контекстное моделирование второго порядка. Предоставляет плотное сжатие, сопоставимое с лучшими общими методами, сопоставим по скорости с deflate и распространяется под лицензией MIT. Спецификация формата описана в RFC 7932. В этом руководстве показано, как собрать библиотеку Brotli из исходников на системе CentOS 7.

Требования

  • Система CentOS 7.
  • Пользователь с sudo-доступом (не root).

Шаги перед сборкой

Проверьте версию CentOS:

cat /etc/centos-release
# CentOS Linux release 7.6.1810 (Core)

Настройте часовой пояс (замените ‘Region/City’ на нужный вам регион):

timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'

Обновите пакеты системы:

sudo yum update -y

Важно: на CentOS 7 стандартный набор компиляторов может быть старее современных требований к сборке некоторых проектов. Если сборка не проходит из-за версии gcc, рассмотрите установку devtoolset (см. раздел «Альтернативные подходы»).

Установка инструментов сборки

Установите необходимые пакеты для сборки Brotli:

sudo yum install -y wget gcc make bc sed autoconf automake libtool git tree

Клонируйте репозиторий Brotli:

git clone https://github.com/google/brotli.git

Перейдите в директорию исходников:

cd brotli

Создайте страницу справки (man) для команды brotli:

sudo cp ~/brotli/docs/brotli.1 /usr/share/man/man1 && sudo gzip /usr/share/man/man1/brotli.1

Проверьте man-страницу:

man brotli

Генерация скрипта configure и сборка

Чтобы сгенерировать Autotools configure, выполните:

./bootstrap

После успешного выполнения будут доступны стандартные шаги: ./configure, make, make install.

Базовые команды сборки и установки:

./configure --prefix=/usr \
            --bindir=/usr/bin \
            --sbindir=/usr/sbin \
            --libexecdir=/usr/lib64/brotli \
            --libdir=/usr/lib64/brotli \
            --datarootdir=/usr/share \
            --mandir=/usr/share/man/man1 \
            --docdir=/usr/share/doc

make
sudo make install

После успешной установки проверьте версию:

brotli --version
# brotli 1.0.7

Для краткой справки по команде:

brotli -h

Проверка работоспособности (Критерии приёмки)

  • Команда brotli --version возвращает версию.
  • Команда man brotli открывает man-страницу.
  • Упаковка и распаковка тестового файла:
echo "test" > test.txt
brotli test.txt
brotli -d test.txt.br

Если при распаковке получен исходный файл, установка прошла успешно.

Распространённые ошибки и пути решения

Важно: перечисленные проблемы — самые частые при сборке ПО из исходников на старых дистрибутивах.

  • Ошибка при запуске ./bootstrap или ./configure: убедитесь, что установлены autoconf, automake и libtool.
  • Ошибки компиляции, связанные с современными возможностями C/C++: на CentOS 7 может потребоваться более свежий gcc — рассмотрите установку devtoolset (Software Collections) или сборку с использованием контейнера с новой средой.
  • Проблемы с правами: запуск make install требует sudo; проверьте SELinux или политики доступа, если файлы не попадают в ожидаемые директории.

Альтернативные подходы

  • Установка из пакета: в некоторых репозиториях EPEL или сторонних сборках могут быть готовые RPM для Brotli — быстрее, но не всегда самая свежая версия.
  • Использование контейнера: собрать внутри CentOS 8/9 или Ubuntu-контейнера, затем вынести бинарники.
  • Компиляция с помощью CMake (если поддерживается исходниками) — даёт дополнительный контроль над опциями.

Контроль качества и тесты

Минимальные тесты после установки:

  • Версия и man-страница (см. «Критерии приёмки»).
  • Сжатие/распаковка случайного файла размера от 1 КБ до 1 МБ и проверка целостности.
  • Интеграционный тест: если Brotli используется в веб-сервере, проверить корректность передачи заголовков Content-Encoding и распаковки в браузере.

Роли и чеклист

Для системного администратора:

  • Проверить доступность обновлений и зависимостей.
  • Контролировать права и SELinux.

Для разработчика:

  • Собрать библиотеку с нужными флагами оптимизации.
  • Протестировать совместимость с целевой средой выполнения.

Для сборщика пакетов:

  • Упаковать результат в RPM с корректными путями и зависимостями.

Короткая диаграмма принятия решения

flowchart TD
  A[Нужна последняя версия Brotli?] -->|Да| B[Сборка из исходников]
  A -->|Нет| C[Искать RPM в репозиториях]
  B --> D{Есть проблемы со сборкой}
  D -->|Да| E[Использовать контейнер/обновить gcc]
  D -->|Нет| F[Установить и тестировать]

Ссылки и ресурсы

Краткое резюме: следуйте шагам установки инструментов, выполните ./bootstrap, затем стандартную цепочку ./configure && make && sudo make install. При проблемах проверьте версии инструментов сборки и используйте контейнер или devtoolset для спокойной сборки на CentOS 7.

Важно: если вам нужно поддерживать пакет в репозитории и обеспечивать автоматические сборки, оформите RPM и добавьте тесты интеграции для CI.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро