Как настроить локальный 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/).
Формирование репозитория
- Установите инструмент createrepo:
yum install createrepo
- Создайте структуру каталогов. В примере мы размещаем пакеты Fedora 8 для i386:
mkdir -p /var/www/html/yum/base/8/i386
mkdir -p /var/www/html/yum/updates/8/i386
- Скопируйте пакеты. Самый простой вариант — вставить установочный 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 и в локальном пути — они важны для корректной синхронизации.)
- Сгенерируйте метаданные репозитория:
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 /]#
- Обновления: заполните каталог обновлений (updates):
rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/8/i386/ --exclude=debug/ /var/www/html/yum/updates/8/i386
- Автоматизация: создайте 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) для управления пакетами.
Мини‑методология (короткий чеклист)
- Подготовить сервер: установить httpd, создать каталоги.
- Получить пакеты: DVD или rsync (Everything + updates).
- Сгенерировать метаданные: createrepo.
- Настроить доступ по HTTP и права/SELinux.
- Настроить клиентов (yum.conf/.repo).
- Автоматизировать обновления через cron + rsync.
- Мониторить и тестировать установку пакетов на клиенте.
Ролевые чеклисты
Администратор зеркала:
- Установить 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: http://fedoraproject.org
Важно
- Fedora 8 устарела; при возможной проблеме с зеркалами рассмотрите переход на поддерживаемый релиз.
КОНЕЦ
Похожие материалы

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

Скачать фильмы и сериалы Netflix офлайн
RAID1 на CentOS: подготовка /dev/sda и GRUB

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

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