Как установить flatpak-builder в Docker RHEL (ubi)?

Вопрос или проблема

Для контекста: я пытаюсь кросс-собрать wezterm-mux-server, чтобы использовать его на удалённых серверах моей компании, которые работают на RHEL 9.2+. Поскольку у меня нет полного доступа к root, я хочу кросс-собрать их на своём локальном компьютере, а затем скопировать бинарные файлы. Проблема в том, что сборка требует некоторых зависимостей, связанных с дистрибутивом, например, для rhel требуется flatpak-builder. Теперь, как же мне получить flatpak-builder в образ docker rhel (ubi)? Похоже, что его нет ни в одном из репозиториев, которые запрашиваются через yum.

Вот мои шаги на данный момент:

Получение и выполнение docker-образа:

docker login registry.redhat.io # Используйте ваше имя пользователя и пароль Red Hat
docker pull registry.redhat.io/ubi9/ubi:9.5-1732804088
docker run -v $PWD:/opt -it --entrypoint /bin/bash registry.redhat.io/ubi9/ubi:9.5-1732804088

Изнутри образа выполните:

yum install flatpak-builder

Что приводит к следующему сообщению об ошибке

[root@00cef48d6bb3 /]# yum install flatpak-builder
Обновление репозиториев управления подпиской.
Не удалось прочитать идентификатор потребителя

Эта система не зарегистрирована на сервере прав на использование. Вы можете использовать subscription-manager для регистрации.

Red Hat Universal Base Image 9 (RPMs) - BaseOS                                               1.4 MB/s | 525 kB     00:00
Red Hat Universal Base Image 9 (RPMs) - AppStream                                            461 kB/s | 2.3 MB     00:05
Red Hat Universal Base Image 9 (RPMs) - CodeReady Builder                                    1.0 MB/s | 281 kB     00:00
Нет совпадений для аргумента: flatpak-builder
Ошибка: Не удалось найти совпадение: flatpak-builder

Сборка из исходников не является по-настоящему вариантом, поскольку flatpak-builder сам нуждается в большом количестве дополнительных зависимостей (я не хочу вручную собирать всё дерево зависимостей). Поэтому мой предпочтительный способ – сделать это с помощью менеджера пакетов. Однако, поскольку я новичок в RHEL, я не имею понятия, как добавить новый онлайн-репозиторий или как выяснить, какие онлайн-репозитории содержат flatpak-builder?

Ответ или решение

Как установить flatpak-builder в контейнере RHEL (UBI)?

Установка flatpak-builder в контейнере Red Hat Universal Base Image (UBI) может представлять определённые сложности, особенно если у вас нет полного доступа к системным ресурсам. В данной статье мы рассмотрим шаги, которые помогут вам успешно установить flatpak-builder в вашем RHEL 9.2+ контейнере, а также объясним, как работать с репозиториями в RHEL.

1. Подготовка окружения

Перед началом установки убедитесь, что вы успешно загрузили Universal Base Image RHEL 9:

docker login registry.redhat.io # Используйте свои учетные данные Red Hat
docker pull registry.redhat.io/ubi9/ubi:9.5-1732804088
docker run -v $PWD:/opt -it --entrypoint /bin/bash registry.redhat.io/ubi9/ubi:9.5-1732804088

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

2. Регистрация с использованием subscription-manager

Поскольку UBI требует регистрации для доступа к некоторым репозиториям, необходимо выполнить команду subscription-manager. Если у вас нет соответствующей подписки, рекомендуется создать новую или использовать соответствующую учетную запись.

subscription-manager register --username <your_username> --password <your_password>

После успешной регистрации следует активировать подходящую подписку:

subscription-manager attach --auto

3. Проверка доступных репозиториев

Теперь, когда ваш контейнер зарегистрирован, можно включить репозитории, необходимые для установки flatpak-builder. Обычно flatpak-builder находится в репозитории CodeReady Builder. Сначала можно проверить доступные репозитории:

yum repolist

Если CodeReady Builder неактивен, активируйте его:

subscription-manager repos --enable codeready-builder-for-rhel-9-<arch>-rfp

Где <arch> — это архитектура вашего контейнера, например, x86_64.

4. Установка Flatpak Builder

После того как вы зарегистрировались и активировали необходимые репозитории, теперь можно установить flatpak-builder:

yum install flatpak-builder

5. Устранение проблем

Если после выполнения вышеуказанных шагов всё ещё возникает ошибка "No match for argument: flatpak-builder", выполните следующие команды для обновления кэша:

yum clean all
yum makecache

Затем попробуйте снова установить flatpak-builder.

6. Альтернативный метод: Использование контейнеров с предустановленным Flatpak

Если у вас нет возможности зарегистрироваться и активировать репозитории, рассмотрите возможность использования контейнеров, которые уже включают flatpak и flatpak-builder. Вы можете найти такие контейнеры на Docker Hub или других ресурсах.

Заключение

Установка flatpak-builder в контейнере RHEL 9 (UBI) может показаться сложной задачей из-за требований к подписке и доступу к репозиториям. Следуя приведённым шагам, вы сможете успешно установить необходимые инструменты и подготовить ваш проект для удаленного развертывания. Не забывайте всегда очищать кэш и проверять доступные репозитории, чтобы избежать недоразумений при установке программного обеспечения.

Оцените материал
Добавить комментарий

Капча загружается...