Что такое репозиторий linux centos

Настройка своего репозитория CentOS

Свой репозиторий может понадобиться в случае использования защищенного сегмента сети, желания сократить время загрузки пакетов, использовании своих сборок для установочных пакетов. Установка и настройка будет выполнена из командной строки.

Подготовка сервера

Выполняем некоторые настройки безопасности сервера.

Firewall

Разрешаем порты, на которых наш сервер будет принимать запросы:

firewall-cmd —permanent —add-port=<80,443>/tcp

* в данном примере мы разрешаем запросы http и https.

SELinux

Данный модель безопасности лучше отключить. Для этого вводим две команды:

sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config

* первая команда отключить его разово, вторая — на постоянной основе.

При необходимости использовать SELinux, читаем статью Настройка SELinux в CentOS 7.

Настройка веб-сервера

Репозиторий для загрузки и установки пакетов представляет из себя хранилище файлов, доступ к которым осуществляется по http протоколу. Для этого нам понадобиться развернуть веб-сервер.

В качестве последнего мы будем использовать nginx. Для его установки, устанавливаем репозиторий epel:

yum install epel-release

После ставим сам nginx:

yum install nginx

Разрешаем запуск веб-сервера:

systemctl enable nginx

systemctl start nginx

Открываем браузер и переходим по адресу http:// — мы должны увидеть приветствие NGINX:

Создание репозитория

Настроим свой репозиторий, в котором будут храниться установочные пакеты. Также настроим их автоматическую синхронизацию с репозиторием CentOS.

Устанавливаем необходимые утилиты для работы с локальным репозиторием:

yum install createrepo yum-utils

Создаем каталоги для репозитория:

mkdir -p /usr/share/nginx/html/repos/7//x86_64

* в данном примере будет создан каталог /usr/share/nginx/html/repos/7, а внутри него каталоги os (стандартный репозиторий для установка пакетов) и updates (обновления), в каждой из которых каталог x86_64 (для систем x64 архитектуры x86).

Синхронизируем наш будущий репозиторий с источником пакетов, например, с зеркалом от Яндекса:

rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/7/os/x86_64/ /usr/share/nginx/html/repos/7/os/x86_64/

После синхронизируем updates:

rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/7/updates/x86_64/ /usr/share/nginx/html/repos/7/updates/x86_64/

createrepo -v /usr/share/nginx/html/repos/7/os/x86_64

createrepo -v /usr/share/nginx/html/repos/7/updates/x86_64

А также разрешаем группы:

createrepo /usr/share/nginx/html/repos/7/os/x86_64 -g /usr/share/nginx/html/repos/7/os/x86_64/repodata/repomd.xml

createrepo /usr/share/nginx/html/repos/7/updates/x86_64 -g /usr/share/nginx/html/repos/updates/os/x86_64/repodata/repomd.xml

* в некоторых репозиториях файл repomd.xml может иметь другое название, например, comps.xml.

.
location / <
root /usr/share/nginx/html;
index index.html index.htm;
autoindex on;
>
.

* в данном примере мы добавили autoindex on для удобства — это позволит просматривать содержимое репозитория в браузере.

systemctl restart nginx

Открываем браузер и переходим по адресу http:// /repos/7 — мы должны увидеть список os и updates. Походив по нему, мы найдем список скачанных пакетов.

Настройка клиента

Чтобы гарантировать, что все пакеты будут скачиваться с локального репозитория, отключаем имеющиеся:

find /etc/yum.repos.d -type f -exec sed -i «s/enabled=1/enabled=0/g» <> \;

* в данном примере мы во всей файлах каталога /etc/yum.repos.d нашли и заменили enabled=1 на enabled=0.
* можно также поступить радикально и удалить репозитории командой
\rm /etc/yum.repos.d/*

Создаем файл с настройкой репозитория:

Читайте также:  Создание виртуальных образов дисков windows

[local]
name=Local Yum Repo
baseurl=http://192.168.0.10/repos/$releasever/os/$basearch/
enabled=1
gpgcheck=0

[local-update]
name=Local Yum Repo for update packages
baseurl=http://192.168.0.10/repos/$releasever/updates/$basearch/
enabled=1
gpgcheck=0

* где local — название репозитория; name — описание; baseurl — базовый адрес http, по которому нужно искать пакеты; enabled — указание на включение или отключение репозитория; gpgcheck — включить или отключить проверку GPG сигнатур для пакетов.

Также можно задать приоритет для каждого из репозиториев:

* 1 — наивысший приоритет.

Готово. Можно выполнить установку.

Если в процессе обновления или установки мы получим ошибку [Errno 14] PYCURL ERROR 22, выполняем команду yum clean all. Подробнее в статье Ошибка CentOS: [Errno 14] PYCURL ERROR 22 — The requested URL returned error: 404.

Посмотреть список установленных пакетов и с какого репозитория они были скачаны можно командой:

yum list installed

Обновление репозитория

Для поддержания списка пакетов в актуальном состоянии необходимо постоянно обновлять установочные файлы в репозиториях. Это можно делать вручную и/или автоматическом режиме.

Ручное обновление

Для обновления репозитория выполняем синхронизацию с источником пакетов (также, как мы делали начальную синхронизацию):

rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/7/os/x86_64/ /usr/share/nginx/html/repos/7/os/x86_64/

И обновляем служебную информацию:

createrepo —update /usr/share/nginx/html/repos/7/os/x86_64

Аналогично, со всеми остальными репозиториями.

Автоматическое обновление

Его суть сводится к запуску скрипта в cron. Сначала создадим папку для хранения скриптов, затем сам скрипт:

rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/7/os/x86_64/ /usr/share/nginx/html/repos/7/os/x86_64/
createrepo —update /usr/share/nginx/html/repos/7/os/x86_64

rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/7/updates/x86_64/ /usr/share/nginx/html/repos/7/updates/x86_64/
createrepo —update /usr/share/nginx/html/repos/7/updates/x86_64

Разрешаем запуск скрипта на выполнение:

chmod +x /scripts/repos_update.sh

Добавляем задание в cron:

0 1 * * * /scripts/repos_update.sh

* в данном примере мы запускаем наш скрипт каждый день в час ночи.

Разные релизы CentOS

В одном репозитории мы можем легко хранить пакеты для различных релизов операционной системы CentOS (и не только CentOS, но и PPA). Для этого создаем каталог под новый релиз, синхронизируем его с источником и создаем из него репозиторий, например:

mkdir -p /usr/share/nginx/html/repos/6//x86_64

* в данном примере предполагается использование репозитория для релиза 6.

rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/6/os/x86_64/ /usr/share/nginx/html/repos/6/os/x86_64/

rsync -iavrt —delete —exclude=’repo*’ rsync://mirror.yandex.ru/centos/6/updates/x86_64/ /usr/share/nginx/html/repos/6/updates/x86_64/

createrepo -v /usr/share/nginx/html/repos/6/os/x86_64

createrepo -v /usr/share/nginx/html/repos/6/updates/x86_64

Epel Repo

Для Epel репозитория схема добавления похожа, кроме метода синхронизации — синхронизация с yandex выполняется с помощью wget.

Создаем отдельную ветку каталога:

mkdir -p /usr/share/nginx/html/repos/epel/7/x86_64

wget -r -nH -np -nc -R index.html* https://mirror.yandex.ru/epel/7/x86_64/ -P /usr/share/nginx/html/repos/

createrepo -v /usr/share/nginx/html/repos/epel/7/x86_64

При настройке клиента создаем файл с настройкой репозитория:

[local-epel]
name=Local Extra Packages for Enterprise Linux 7
baseurl=http://192.168.0.10/epel/$releasever/$basearch/
enabled=1
gpgcheck=0

По такому же принципу мы можем добавить любой репозиторий, например, rpmforge, remi, nginx и другие.

Источник

Репозиторий в CentOS: что это такое и как добавить

Стандартные репозитории CentOS (и, соответственно, Red Hat Enterprise Linux) содержат достаточно ограниченное количество пакетов, среди которых, как ни странно, отсутствует много популярных, а также часто нет самых новых версий. Для того, чтобы устранить эти недостатки можно подключить дополнительные (неофициальные) репозитории CentOS — EPEL, RPMForge и Remi.

Какие пакеты подключены

В первую очередь желательно проверить, какие репозитории уже подключены в вашей системе. Для этого используйте команду:
yum repolist

Читайте также:  Oracle linux ��� kde

Репозиторий EPEL (Extra Packages for Enterprise Linux) — поддерживается в рамках проекта Fedora и содержит некоторые пакеты, которые не вошли в стандартный набор RHEL (CentOS).

Установка репозитория EPEL в CentOS 6 (i386):
rpm -Uvh http://fedora-mirror01.rbc.ru/pub/epel/6/i386/epel-release-6-8.noarch.rpm

Установка репозитория EPEL в CentOS 6 (x64):
rpm -Uvh http://mirror.logol.ru/epel/6/x86_64/epel-release-6-8.noarch.rpm

Если команда выдает ошибку, то значит уже выпущена новая версия пакета. Перейдите по ссылке http://download.fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html (для 32-разрядной версии) или http://mirror.logol.ru/epel/6/x86_64/repoview/epel-release.html (для 64-разрядной версии) и подставьте номер новой версии в команду, или скачайте RPM файл и установите из локальной папки.

RPMforge / RepoForge

RPMforge (теперь называется RepoForge) является результатом сотрудничества создателей пакетов. Он содержит более 4000 пакетов для CentOS. При этом RepoForge не является частью Red Hat или CentOS, но предназначен для работы с этими (и некоторыми другими) дистрибутивами.

Прежде всего, проверьте наличие новых версий ссылок на репозиторий. Получить ссылки можно здесь: http://repoforge.org/use/

После чего выполните команду, например:

Для подключения репозитория в 32-битной системе выполните следующую команду:
rpm -Uhv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm

А для 64-битной системы эту:
rpm -Uhv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

Создатели репозитория Remi пишут, что основной задачей Remi является предоставление самых последних версий пакетов для rpm-based дистрибутивов, в том числе CentOS, RHEL, Fedora и др. Особенно важным это является в том случае, если вы используете не самую последнюю версию дистрибутива и выпуск новых пакетов в официальных репозиториях уже прекращен.

Для подключения репозитория:

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

Репозиторий REMI устанавливается отключенным. Для подключения в файле /etc/yum.repos.d/remi.repo необходимо поменять значение переменной enabled в секции [remi] c 0 на 1.

Проверка репозиториев

Проверьте список подключенных репозиториев:

yum repolist
repo id repo name status
base CentOS-6 — Base 4 710+66
epel Extra Packages for Enterprise Linux 6 — i386 6 887
extras CentOS-6 — Extras 10+7
rpmforge RHEL 6 — RPMforge.net — dag 4 512+1
updates CentOS-6 — Updates 850+1

После подключения всех репозиториев желательно выполнить обновление, т.к. возможно, обновились сами пакеты, содержащие файлы конфигураций репозиториев:

Источник

Управление репозиториями в CentOS. Добавление репозиториев EPEL, ELRepo, REMI в CentOS

Репозитории CentOS — хранилища программного обеспечения в виде упакованных файлов, так называемых RPM-пакетов.

RPM-пакет — представляет из себя файл формата «.rpm», расширение указывает на принадлежность файла менеджеру пакетов Red Hat (Red Hat Package Manager), позволяющего устанавливать программное обеспечение на Red Hat/CentOS системы.

Нужные для установки пакеты загружаются из репозиториев посредством пакетного менеджера YUM, после чего происходит дальнейшая распаковка и установка.

Репозитории могут быть официальными и дополнительными. Если программное обеспечение не доступно в официальных репозиториях, можно прибегнуть к помощи дополнительных. Бывает что версии пакетов содержащихся в дополнительных репозиториях, являются более свежими чем версии в официальных.

Наиболее популярными и распространенными являются следующие репозитории:

CentOS Official Repository — официальный репозиторий.

EPEL — Extra Packages for Enterprise Linux — хранилище пакетов команды Fedora. Содержит пакеты дополнительного программного обеспечения для таких систем как: RHEL, SentOS, Scientific Linux. Пакеты этого репозитория не конфликтуют с родными пакетами RHEL и не заменяют их. Самый ходовой и популярный репозиторий.

ElRepo — пакеты для RHEL, SentOS, Scientific Linux. В хранилище представлены последние версии драйверов для: графических, звуковых, сетевых карт, веб камер и прочей периферии.

Читайте также:  Langpack для windows 10

REMI — специализируется по MySQL и PHP. Пакеты этого репозитория могут заменять базовые пакеты, поэтому с ними надо поосторожнее.

Управление репозиториями в CentOS

Управление пакетами и репозиториями осуществляет утилита YUM (Yellowdog Updater, Modified) — менеджер RPM-пакетов, использующийся в дистрибутивах: RHEL, SentOS, Scientific Linux. В его задачи входит: поиск, установка, удаление пакетов, обновление системы.

Процесс установки пакетов происходит после выполнения команды — yum install packagename. После ввода команды менеджер пакетов проверяет наличие конфигурационных файлов «*.repo», эти файлы содержат информацию о репозиториях и хранятся в директории /etc/yum.repos.d. Во время проверки YUM получает всю необходимую информацию, указывающую откуда загружать пакет и какие зависимости имеют к нему отношение. После чего происходит установка пакета.

Конфигурационные файлы репозиториев содержат следующие параметры:

  • name — имя репозитория, может быть любым.
  • baseurl — ссылка указывающая на репозиторий. Может быть вида: ftp://link, http://link, https://link, если репозиторий размещен в сети интернет, или file://path, если репозиторий размещен локально.
  • enabled — указывает на активацию репозитория при выполнении обновления. Может иметь следующие значения, 1 — если подключен, 0 — если отключен.
  • gpgcheck — включить или выключить проверку сигнатуры GPG. Может иметь следующие значения, 1 — проверять, 0- не проверять.
  • gpgkey — ссылка на ключ GPG.
  • exclude — список исключаемых пакетов.
  • includepkgs — список включаемых пакетов.
  • mirrorlist — вместо ссылки на конкретный адрес репозитория, может использоваться ссылка на список адресов из которых будет выбран нужный адрес.

Подключение репозиториев в CentOS

Добавить репозиторий в CentOS можно несколькими способами. Можно создать файл «.repo» в директории /etc/yum.repos.d или установить rpm-пакет с информацией о репозитории. Если rpm-пакет отсутствует, то добавлять приходится ручками, создавая конф. файл репозитория.

Для просмотра списка активных репозиториев выполняют команду — yum repolist

Удаление репозиториев в CentOS

Для удаления репозиториев в системе должен быть установлен пакет yum-utils.

Допустим мы хотим удалить из системы репозитории REMI и ELRepo, для этого надо узнать «repo id» при помощи команды yum repolist.

Удалим указанные репозитории.

Команда скорее отключает указанные репозитории, чем удаляет их. Она выставляет значение параметра enabled равным 0. Файлы репозиториев «.repo» останутся на месте. Если выполнить команду yum repolist, то репозитории будут недоступны.

Теперь нужно обновить кэш YUM.

Для полного удаления репозиториев следует удалить их конфигурационные файлы.

Добавление репозитория EPEL

EPEL — самый простой в установке репозиторий. Epel-release package включен в стандартный Extras repository и доступен по умолчанию. Для его установки достаточно выполнить команду:

В процессе установки будет создан файл «epel.repo», который будет содержать все данные для работы с репозиторием. Выполним команду выводящую содержимое файла.

Добавление репозитория ELRepo

Сначала устанавливаем GPG ключ.

Устанавливаем rpm-файл репозитория.

Добавление репозитория REMI

Установка репозитория REMI происходит в несколько этапов. Для выполнения команды, у вас должна быть установлена утилита wget.

Существуют и другие репозитории, процесс их установки будет таким же. Все нужные ссылки, как правило, указываются на страничке проектов, так же как и инструкции по установке.

Источник

Оцените статью