Настройка сервера репозитория
|
В openEuler доступно несколько источников репозитория для использования через Интернет.
Подробнее об источниках репозитория см. в разделе Руководство по установке.
Если вы не можете получить источник репозитория openEuler через Интернет, можно создать локальный источник, воспользовавшись пакетом выпуска от openEuler в формате ISO.
В этом разделе в качестве примера используется файл |
Обзор
Создайте источник репозитория из файла openEuler-22.09-aarch64-dvd.iso, предоставленного openEuler.
Ниже показан пример использования Nginx для того, чтобы развернуть источник репозитория и предоставить HTTP-сервис.
Создание и обновление локального источника репозитория
Смонтируйте ISO-файл openEuler-22.09-aarch64-dvd.iso от openEuler, чтобы создать и обновить источник репозитория.
Монтирование файла ISO для создания источника репозитория
Чтобы смонтировать ISO-файл, выполните команду mount от имени пользователя root:
mount /home/openEuler/openEuler-22.09-aarch64-dvd.iso /mnt/
Смонтированный каталог /mnt/ выглядит следующим образом:
│── boot.catalog
│── docs
│── EFI
│── images
│── Packages
│── repodata
│── TRANS.TBL
└── RPM-GPG-KEY-openEuler
В результатах команды выше Packages указывает каталог, где хранится пакет RPM, repodata — каталог метаданных источника репозитория, а RPM-GPG-KEY-openEuler указывает открытый ключ для подписи openEuler.
Создание локального источника репозитория
Вы можете скопировать определенные файлы из файла ISO в локальный каталог, чтобы создать локальный источник репозитория:
mount /home/openEuler/openEuler-22.09-aarch64-dvd.iso /mnt/
mkdir -p ~/srv/repo/ $ cp -r /mnt/Packages ~/srv/repo/ $ cp -r /mnt/repodata ~/srv/repo/ $ cp -r /mnt/RPM-GPG-KEY-openEuler ~/srv/repo/
Локальный каталог репозитория выглядит следующим образом.
│── Packages
│── repodata
└── RPM-GPG-KEY-openEuler
Packages указывает каталог, где хранится пакет RPM, repodata — каталог метаданных источника репозитория, а RPM-GPG-KEY-openEuler указывает открытый ключ для подписи openEuler.
Обновление источника репозитория
Обновить источник репозитория можно двумя способами.
-
Используйте актуальную версию файла ISO для обновления существующего источника репозитория. Это делается так же, как создание источника репозитория, то есть монтированием файла ISO или копированием его содержимого в локальный каталог.
-
Добавьте пакет RPM в каталог
Packagesисточника репозитория и выполните командуcreaterepo, чтобы обновить источник:createrepo --update --workers=10 ~/srv/repoВ этой команде
--updateуказывает на обновление, а--workers— число потоков, которое можно изменить.Если при запуске команды выводится "createrepo: command not found" (команда не найдена) то чтобы установить
createrepoот имени пользователяrootвыполните команду:dnf install createrepo
Развертывание удалённого источника репозитория
Установите операционную систему openEuler и разверните в ней источник репозитория с помощью Nginx.
Установка и настройка Nginx
-
Загрузите инструмент Nginx и установите его от имени пользователя
root. -
Установив Nginx, в роли пользователя
rootнастройте/etc/nginx/nginx.conf.Содержимое конфигурации в этом документе приводится только для справки. Вы можете настроить его в соответствии с требованиями узла (например, для усиления защиты).
user nginx; worker_processes auto; # Рекомендуется задать для этого параметра значение `core-1` error_log /var/log/nginx/error.log warn; # Место хранения журнала pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; # Имя сервера (URL) client_max_body_size 4G; root /usr/share/nginx/repo; # Каталог сервисов по умолчанию location / { autoindex on; # Активация доступа к файлам более низкого уровня в каталоге. autoindex_exact_size on; autoindex_localtime on; } } }
Запуск Nginx
-
Выполните команду
systemdот имени пользователяroot, чтобы запустить сервис Nginx:systemctl enable nginx systemctl start nginx -
Для проверки запуска Nginx можно выполнить следующую команду:
systemctl status nginx -
Если сервис Nginx не запускается, просмотрите сведения об ошибке:
systemctl status nginx.service --full
Развертывание источника репозитория
-
От имени пользователя
rootвыполните команду, чтобы создать каталог/usr/share/nginx/repo/, указанный в конфигурации Nginx в файле/etc/nginx/nginx.conf:mkdir -p /usr/share/nginx/repo -
Выполните от имени пользователя
rootследующую команду, чтобы изменить права доступа к каталогу/usr/share/nginx/repo:chmod -R 755 /usr/share/nginx/repo -
В роли пользователя
rootвключите настроенный для Nginx порт (порт 80) в правилах брандмауэра:firewall-cmd --add-port=80/tcp --permanent firewall-cmd --reload -
От имени пользователя
rootпроверьте, включен ли порт 80. Если будет выведеноyes(да), то порт 80 включен:firewall-cmd --query-port=80/tcpВы также можете включить порт 80, используя в роли
rootкомандуiptables:iptables -I INPUT -p tcp --dport 80 -j ACCEPT -
После настройки сервиса Nginx вы можете использовать IP-адрес для доступа к веб-странице.
-
Добавьте источник репозитория в каталог
/usr/share/nginx/repo/любым из следующих способов.-
Скопируйте соответствующие файлы из образа в каталог
/usr/share/nginx/repoот имени пользователяroot:mount /home/openEuler/openEuler-22.09-aarch64-dvd.iso /mnt/ cp -r /mnt/Packages /usr/share/nginx/repo/ cp -r /mnt/repodata /usr/share/nginx/repo/ cp -r /mnt/RPM-GPG-KEY-openEuler /usr/share/nginx/repo/ chmod -R 755 /usr/share/nginx/repoФайл
openEuler-22.09-aarch64-dvd.isoхранится в каталоге/home/openEuler/. -
Создайте символическую ссылку для источника репозитория в каталоге
/usr/share/nginx/repo/от имени пользователяroot:ln -s /mnt /usr/share/nginx/repo/os/mnt— это созданный источник репозитория, а/usr/share/nginx/repo/osуказывает на/mnt.
-
Использование источника репозитория
Источник репозитория может быть настроен как источник YUM. Это менеджер программных пакетов, представляющий собой интерфейс-оболочку. YUM основан на диспетчере пакетов Red Hat (RPM) и может автоматически загружать пакет RPM с указанного сервера, устанавливать пакет и обрабатывать зависимые отношения. Он поддерживает единовременную установку всех зависимых пакетов программного обеспечения.
Настройка репозитория в качестве источника YUM
Вы можете настроить созданный репозиторий в качестве источника YUM и создать файл конфигурации с расширением .repo в каталоге /etc/yum.repos.d/ от имени пользователя root. Настроить источник YUM можно на локальном узле или HTTP-сервере.
Настройка локального источника YUM
Создайте файл openEuler.repo в каталоге /etc/yum.repos.d/ и используйте в качестве источника YUM локальный репозиторий.
Содержимое файла openEuler.repo следующее:
[base] name=base baseurl=file:///home/openEuler/srv/repo enabled=1 gpgcheck=1 gpgkey=file:///home/openEuler/srv/repo/RPM-GPG-KEY-openEuler
Здесь: repoid указывает идентификатор репозитория программного обеспечения.
Идентификаторы repoid во всех файлах конфигурации .repo должны быть уникальными.
В этом в качестве repoid задано base.
-
name— это строка описания программного репозитория. -
baseurlуказывает адрес репозитория программного обеспечения. -
enabledуказывает, включать ли репозиторий источника программного обеспечения. Значением может быть1или0. Значение по умолчанию1указывает, что репозиторий источника программного обеспечения включен. -
gpgcheckуказывает, включать ли GNU Privacy Guard (GPG) для проверки действительности и безопасности источников RPM-пакетов.1означает, что проверка GPG включена.0означает, что проверка GPG отключена. -
gpgkeyуказывает открытый ключ, используемый для проверки подписи.
Настройка источника YUM для HTTP-сервера
Создайте файл openEuler.repo в каталоге /etc/yum.repos.d/.
-
Если источником YUM служит источник репозитория на HTTP-сервере, развернутый пользователем, то содержимое
openEuler.repoвыглядит следующим образом:[base] name=base baseurl=http://192.168.139.209/ enabled=1 gpgcheck=1 gpgkey=http://192.168.139.209/RPM-GPG-KEY-openEuler -
Если источником YUM служит источник репозитория, предоставленный openEuler, то содержимое
openEuler.repoбудет следующим (для примера используется источник репозитория ОС на основе AArch64):[base] name=base baseurl=http://repo.openeuler.org/openEuler-22.09/OS/aarch64/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-22.09/OS/aarch64/RPM-GPG-KEY-openEuler
Приоритет репозитория
Если источников репозитория несколько, вы можете установить приоритет репозитория в файле .repo.
Если приоритет не задан, по умолчанию он равен 99.
Если в источниках с одинаковым приоритетом имеется один и тот же пакет RPM, устанавливается последняя версия.
Значение 1 соответствует самому высокому приоритету, а 99 — самому низкому.
Ниже показано, как задать для openEuler.repo приоритет 2.
[base] name=base baseurl=http://192.168.139.209/ enabled=1 priority=2 gpgcheck=1 gpgkey=http://192.168.139.209/RPM-GPG-KEY-openEuler
Связанные команды dnf
Команда dnf может автоматически анализировать зависимости между пакетами в ходе установки и обновления.
Общий метод использования выглядит следующим образом:
dnf <command> <packages-names>
Здесь:
-
<command>— команда; -
<packages-names>— названия пакетов.
Основные команды приведены ниже.
-
Установка
dnf install <packages name> -
Обновление
dnf update <packages name> -
Откат
dnf downgrade <packages name> -
Проверка обновления
dnf check-update -
Удаление
dnf remove <packages name> -
Запрос
dnf search <packages name> -
Локальная установка
dnf localinstall <absolute path to package name> -
Просмотр записей журнала
dnf history -
Очистка записей кеша
dnf clean all -
Обновление кеша
dnf makecache