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

Как настроить локальный yum‑репозиторий для Fedora 8

5 min read Linux Обновлено 10 Oct 2025
Локальный yum‑репозиторий для Fedora 8
Локальный yum‑репозиторий для Fedora 8

Создайте локальный yum-репозиторий на сервере с Apache, скопировав пакеты с DVD или rsync- зеркала, сгенерируйте метаданные командой createrepo и укажите базовый URL в /etc/yum.conf или отдельном .repo‑файле на клиентах. Автоматизируйте обновления через cron + rsync и проверьте работоспособность на клиентских системах.

Предварительная заметка

В примерах используется имя хоста server1.example.com и IP 192.168.0.100. Замените эти значения на свои при необходимости. Репозиторий будет доступен по HTTP: по умолчанию корневая директория Apache в Fedora — /var/www/html, поэтому репозиторий мы разместим в /var/www/html/yum. Если вы используете другой виртуальный хост, отрегулируйте пути.

Важно: Fedora 8 — устаревшая версия. Некоторые зеркала могут быть недоступны; если rsync‑зеркало не отвечает, попробуйте другой источник или скачивайте DVD‑образы.

Установка Apache

Установим Apache и настроим его автозапуск:

yum install httpd

Создадим системные ссылки автозапуска (чтобы Apache запускался при загрузке):

chkconfig --levels 235 httpd on

Запустим Apache:

/etc/init.d/httpd start

Проверьте, что HTTP‑порт доступен в локальной сети (например, curl http://192.168.0.100/).

Формирование репозитория

  1. Установите инструмент createrepo:
yum install createrepo
  1. Создайте структуру каталогов. В примере мы размещаем пакеты Fedora 8 для i386:
mkdir -p /var/www/html/yum/base/8/i386
mkdir -p /var/www/html/yum/updates/8/i386
  1. Скопируйте пакеты. Самый простой вариант — вставить установочный DVD Fedora 8, смонтировать и скопировать пакеты:
mount /dev/cdrom /mnt
cd /mnt/Packages
cp -v * /var/www/html/yum/base/8/i386
cd /
umount /mnt

DVD содержит базовый набор пакетов. Чтобы получить полный набор из каталога Everything, используйте rsync с зеркала (это может занять много времени):

rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/releases/8/Everything/i386/os/Packages/ /var/www/html/yum/base/8/i386

(Обратите внимание на конечный слэш в URL rsync и в локальном пути — они важны для корректной синхронизации.)

  1. Сгенерируйте метаданные репозитория:
createrepo /var/www/html/yum/base/8/i386

Это создаст каталог repodata в /var/www/html/yum/base/8/i386. Пример содержимого:

ls -l /var/www/html/yum/base/8/i386/repodata/
[root@server1 /]# ls -l /var/www/html/yum/base/8/i386/repodata/
total 9268
-rw-r--r-- 1 root root 2227275 2007-12-18 21:11 filelists.xml.gz
-rw-r--r-- 1 root root 6487453 2007-12-18 21:11 other.xml.gz
-rw-r--r-- 1 root root  747714 2007-12-18 21:11 primary.xml.gz
-rw-r--r-- 1 root root     951 2007-12-18 21:11 repomd.xml
[root@server1 /]#
  1. Обновления: заполните каталог обновлений (updates):
rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/8/i386/ --exclude=debug/ /var/www/html/yum/updates/8/i386
  1. Автоматизация: создайте cron‑задачу, чтобы поддерживать зеркало в актуальном состоянии. Пример — запуск rsync каждые два дня в 04:23:
crontab -e

| 23 4 */2 * * /usr/bin/rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/8/i386/ --exclude=debug/ /var/www/html/yum/updates/8/i386 |

После этого локальное зеркало готово к использованию.

Конфигурация клиентов

Чтобы клиенты в вашей сети использовали локальный yum, отредактируйте /etc/yum.conf или создайте отдельный .repo файл в /etc/yum.repos.d.

Откройте /etc/yum.conf:

vi /etc/yum.conf

Найдите строки:

| # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d |

И добавьте следующие блоки (замените IP на адрес вашего зеркала, если он другой):

| [base-local] name=Fedora $releasever - $basearch failovermethod=priority baseurl=http://192.168.0.100/yum/base/$releasever/$basearch #mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch enabled=1 gpgcheck=0 [updates-local] name=Fedora $releasever - $basearch - Updates failovermethod=priority baseurl=http://192.168.0.100/yum/updates/$releasever/$basearch/ #mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch enabled=1 gpgcheck=0 |

Полный пример /etc/yum.conf (с основными настройками) — сохранён в виде примера:

| [main] cachedir=/var/cache/yum keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 metadata_expire=1800 installonly_limit=2 # PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d [base-local] name=Fedora $releasever - $basearch failovermethod=priority baseurl=http://192.168.0.100/yum/base/$releasever/$basearch #mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch enabled=1 gpgcheck=0 [updates-local] name=Fedora $releasever - $basearch - Updates failovermethod=priority baseurl=http://192.168.0.100/yum/updates/$releasever/$basearch/ #mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch enabled=1 gpgcheck=0 |

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

Отладка и типичные проблемы

  • Apache не отдает файлы: проверьте права доступа к /var/www/html/yum и SELinux (setenforce, audit.log). Если SELinux включён, выполните: restorecon -R /var/www/html/yum или настройте политику.
  • Rsync падает: попробуйте другой зеркало из списка на http://mirrors.fedoraproject.org/mirrorlists/publiclist/Fedora/8.
  • createrepo не обновляет repodata после добавления пакетов: перезапустите createrepo или запустите createrepo –update.
  • Клиенты видят старые метаданные: очистите кеш yum на клиенте: yum clean all; затем yum repolist.

Важно: при работе с устаревшими релизами часто встречается отсутствие подписей GPG. В примере gpgcheck выключен (gpgcheck=0). Для production‑окружения лучше включать проверку подписей и хранить GPG‑ключи локально.

Когда этот подход не подходит (контрпримеры)

  • Если у вас мало дискового пространства и нужен только кэш — лучше использовать прокси (squid) с пакетным кэшем или инструмент yum‑cache (reposync) вместо полного зеркала Everything.
  • Если вы управляете современным парком систем — рассмотрите переход на более свежие версии Fedora/CentOS/AlmaLinux, т.к. Fedora 8 больше не поддерживается и зеркала могут исчезнуть.

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

  • reposync + createrepo: синхронизировать только нужные репозитории/пакеты.
  • Использовать HTTP proxy (squid) для кэширования загружаемых пакетов вместо полного локального зеркала.
  • Использовать mirrormanager/API централизованного репозитория в организации (например, Artifactory, Nexus) для управления пакетами.

Мини‑методология (короткий чеклист)

  1. Подготовить сервер: установить httpd, создать каталоги.
  2. Получить пакеты: DVD или rsync (Everything + updates).
  3. Сгенерировать метаданные: createrepo.
  4. Настроить доступ по HTTP и права/SELinux.
  5. Настроить клиентов (yum.conf/.repo).
  6. Автоматизировать обновления через cron + rsync.
  7. Мониторить и тестировать установку пакетов на клиенте.

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

Администратор зеркала:

  • Установить httpd, createrepo, rsync.
  • Настроить каталоги /var/www/html/yum/*.
  • Проверить права и SELinux.
  • Настроить cron для синхронизации.
  • Проверять логи rsync и доступность HTTP.

Администратор клиента:

  • Настроить yum.conf или создать файл .repo в /etc/yum.repos.d.
  • Выполнить yum clean all; yum repolist.
  • Тестировать установку пакета из локального репозитория.

Совместимость и миграция

  • Для x86_64 просто замените пути i386 → x86_64 во всех командах и путях.
  • Для других релизов Fedora замените ‘8’ на нужный номер версии.
  • Для современных систем вместо yum используется dnf; конфигурация .repo аналогична, но инструменты (createrepo_c) могут различаться.

Критерии приёмки

  • Apache отдает индекс каталога: curl http://192.168.0.100/yum/base/8/i386/ возвращает список файлов.
  • На клиенте yum repolist показывает репозитории base-local и updates-local.
  • Установка пакета (yum install vim) успешно использует локальный репозиторий.
  • Cron‑задача успешно обновляет каталог updates (проверка времени новых файлов и логов rsync).

Глоссарий (в 1 строке)

  • yum — менеджер пакетов для RPM‑систем; управляет установкой/обновлением пакетов.
  • createrepo — утилита для создания метаданных репозитория RPM.
  • rsync — инструмент для синхронизации каталогов по сети.

Короткое резюме

Локальный yum‑репозиторий экономит интернет‑трафик и ускоряет развертывание систем в локальной сети. Для Fedora 8 процесс включает копирование пакетов (DVD или rsync), генерацию метаданных createrepo, настройку Apache и изменение конфигурации клиентов. Автоматизируйте обновления и проверьте SELinux/права доступа.

Ссылки

Важно

  • Fedora 8 устарела; при возможной проблеме с зеркалами рассмотрите переход на поддерживаемый релиз.

КОНЕЦ

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

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

Перенос фото из Facebook в Google+ через Move2Picasa
Социальные сети

Перенос фото из Facebook в Google+ через Move2Picasa

Скачать фильмы и сериалы Netflix офлайн
Streaming

Скачать фильмы и сериалы Netflix офлайн

RAID1 на CentOS: подготовка /dev/sda и GRUB
Linux

RAID1 на CentOS: подготовка /dev/sda и GRUB

Вернуть счётчик дизлайков YouTube — как посмотреть
Руководство

Вернуть счётчик дизлайков YouTube — как посмотреть

Как фильтровать RSS‑подписки с Feed Rinse
RSS

Как фильтровать RSS‑подписки с Feed Rinse

Смартфоны взломали японские автомобили
Кибербезопасность

Смартфоны взломали японские автомобили