Цинізм в IT Створення власного репозиторію для CentOS

FastNetMon

Створення власного репозиторію для CentOS

Створюємо папку для зберігання пакетів:

mkdir -p /var/www/html/centos_repository cd /var/www/html/centos_repository

Тепер необхідно покласти тестовий пакет до нашого репозиторію:

Запускаємо генерацію метаданих репозиторію:

Після цього буде згенеровано службову папку repodata з даними про всі наші пакети:

./mpt-status-1.2.0_RC7-3.i386.rpm ./repodata ./repodata/repomd.xml ./repodata/other.xml.gz . /repodata/filelists.xml.gz ./repodata/primary.xml.gz

Тепер нам необхідно налаштувати Apache, щоб вказана папка була повністю доступна за протоколом HTTP, це зміцніть самі, будь ласка.

У результаті в нас вийде веб-сторінка http://repo.domain.ru/centos_repository з одним файлом mpt-status-1.2.0_RC7-3.i386.rpm і папкою repodata, але "правильні" репозиторії виглядають трохи інакше: http: //mirror.yandex.ru/epel/5/

Тобто всередині папки репозиторію створюється папка 5, відповідна версії дистрибутива, далі створюються підпапки під архітектури i386, x86_64 або навіть SRPMS, а вже всередині них розташовуються rpm пакети і папка repodata. Якщо так роблять сильні світу цього, то і ми зробимо аналогічно, щоб не отримати смітника з пакетами (наприклад, такий як у OpenVZ репозиторію - http://download.openvz.org/kernel/branches/rhel5-2.6.18/current/ і як наслідок цього "смітника" при встановленні пакетів з їх репозиторію доводиться явно вказувати його (пакета) платформу, тобто замість "package" доводиться писати "package.x86_64", що вкрай незручно).

Переробляємо на "як правильно":

rm -rf /var/www/html/centos_repository mkdir /var/www/html/centos_repository cd/var/www/html/centos_repository mkdir 5 cd 5 mkdir cd x86_64 wget http://fastvps.googlecode.com/files/mpt-status-1.2.0_RC7 -3.i386.rpm cd..

Saving Primary metadata Saving file lists metadata Saving other metadata

createrepo x86_64/ 1/1 - mpt-status-1.2.0_RC7-3.i386.rpm Замовлення вихідних metadata Завантаження файлових повідомлень metadata Завантаження інших metadata

Saving Primary metadata Saving file lists metadata Saving other metadata

Якщо ж у процесі експлуатації репозиторію Ви плануєте додавати нові пакети, використовуйте інший синтаксис createrepo:

createrepo --update x86_64 createrepo --update i386 createrepo --update SRPMS

Тепер трохи автоматизації для зручного апдейта репо:

З наступним контентом:

update: createrepo --update x86_64 createrepo --update i386 createrepo --update SRPMS

Тепер оновлення репозиторіїв при додаванні нових пакетів можна робити так:

Тепер наш репозиторій необхідно підключити до клієнтської машинки (у мене вона 64 бітна, і з 32 бітною мій приклад працювати не буде), створюємо файл опис репозиторію:

[myrepo-centos] name=My Personal Yum Repo baseurl=http://domain.ru/centos_repository/5/$basearch enabled=1 # not secure >gpgcheck=0

Тепер запускаємо yum і переконуємося, що не видано жодних помилок щодо нашого репозиторію:

Отримуємо інформацію про тестовий пакет у нашому репозиторії:

Yum info mpt-status Loaded plugins: fastestmirror, versionlock Loading mirror Speeds з cached hostfile * addons: ftp.plusline.de * base: centos.copahost.com * epel: mirror.andreas-mueller.com * extras: ftp.plusline.de * openvz-kernel-rhel5: openvz.copahost.com * openvz-utils: openvz.copahost.com * updates: centos.copahost.com Налаштування версії lock configuration Available Packages Name : mpt- status Arch : i386 Version : 1.2.0_RC7 Release : 3 Size : 27 k Repo : myrepo-centos Суммари : MPT Fusion raid inquiry tool URL : http://www.drugphish.ch/

ratz/mpt-status/ License : GPL Дизайн: mpt-status є інформацією про raid status for LSI Fusion controllers. : Ця функція змінила версію до оригіналу mpt-status-1.0 package.

Ставимо його (власне, задля цього все й починалося):

Додавання нових пакетів до репозиторій

Просто кладемо нові rpm в папку, яка відповідає архітектурі і після цього робимо --update, як зазначено вище. Як результат побачимо таке:

make createrepo --update x86_64 2/2 - vzprocps-2.0.11-6.13.swsoft.i386.rpm Завантажити вихідні metadata Завантажити файлові файли metadata Завантажити інші metadata createrepo --update i386 2/2 - vzprocps-2.0.11-6.13.swsoft.i386.rpm Завантаження значних metadata Завантаження файлових повідомлень metadata Завантаження інших metadata createrepo - -update SRPMS

Saving Primary metadata Saving file lists metadata Saving other metadata