Создание локального репозитория
ВНИМАНИЕ: команды предваряемые символом '#
' должны выполняться с правами 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/