Цинізм в 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