Создание локального репозитория

Материал из FedoraMD.org Wiki
Перейти к навигации Перейти к поиску

ВНИМАНИЕ: команды предваряемые символом '#' должны выполняться с правами root (Суперпользователь). Открыв терминал (или находясь в консоли) с правами обычного пользователя, введите команду $ su - для повышения уровня привелегий. Символы '$' и '#' в начале строки не являются частью команды и не должны вводится. Прочие команды могут выполняться с правами обыкновенного пользователя.


1. Определимся с путями зададим переменные и создадим каталог:

export REPO_NAME=myrepo
export REPO_ROOT=/srv/repos/$REPO_NAME
mkdir -p $REPO_ROOT

если предполагается сделать репо доступным по HTTP протоколу, также обозначим имя нашего сервера (если вы его не знаете - посмотрите на вывод команды hostname).

REPO_HOST=anyhost.anydomain.md

2. Зависимости. httpd требуется для удаленного доступа к репо.

# yum install createrepo anaconda-runtime anaconda yum-utils httpd

3. Заполняем репозиторий RPM пакетами. Для примера возьмем их с дистрибутивного диска.

$ cd /media/FC_6\ i386\ DVD/Fedora/RPMS/ && cp -a *.rpm $REPO_ROOT

в репозитории также содержится файл comps.xml описывающий группы пакетов. Также его скопируем.

$ cp -a /media/FC_6\ i386\ DVD/Fedora/base/comps.xml $REPO_ROOT/

4. Собственно создадим данные репозитория. Эту операцию нужно делать при каждом обновлении данных в репо (новые или обновленные пакеты).

$ cd $REPO_ROOT
$ createrepo -p -g comps.xml .

5. Теперь добавляем новый репо в конфигурацию yum

$ cat >/etc/yum.repos.d/$REPO_NAME.repo <<EOF
[$REPO_NAME]
name=My cool $REPO_NAME - $basearch
baseurl=file://$REPO_ROOT
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
EOF

6. Добавив myrepo в конфигурацию Apache. Пропускаем этот шаг если нужен только локальный доступ. В примере доступ разрешен только с локальной машины и локальной сети с диапазоном IP адресов 192.168.0.1-254.

$ cat >/etc/httpd/conf.d/$REPO_NAME.conf <<EOF
Alias /$REPO_NAME $REPO_ROOT

<Directory "$REPO_ROOT">
    Options Indexes MultiViews
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
    Allow from 192.168.0.0/24
</Directory>
EOF

service httpd reload

7. Теперь добавляем новый репо в конфигурацию yum на локальной и удаленных машинах. Пропускаем этот шаг если нужен только локальный доступ.

$ cat >/etc/yum.repos.d/$REPO_NAME.repo <<EOF
[$REPO_NAME]
name=My cool $REPO_NAME - $basearch
baseurl=
        http://$REPO_HOST/$REPO_NAME
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
EOF
cp /etc/yum.repos.d/$REPO_NAME.repo /var/www/html/

На удаленных машинах (клиентах) достаточно будет сохранить файл http://anyhost.anydomain.md/myrepo.repo в каталог /etc/yum.repos.d/