Цинизмът в ИТ Създаване на собствено хранилище за 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.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 ..
Запазване на първични метаданни Запазване на метаданни от списъци с файлове Запазване на други метаданни
createrepo x86_64/ 1/1 - mpt-status-1.2.0_RC7-3.i386.rpm Запазване на първични метаданни Запазване на метаданни от списъци с файлове Запазване на други метаданни
Запазване на първични метаданни Запазване на метаданни от списъци с файлове Запазване на други метаданни
Ако по време на работа на хранилището планирате да добавите нови пакети, тогава използвайте различен синтаксис createrepo:
createrepo --update x86_64 createrepo --update i386 createrepo --update SRPMS
Сега малко автоматизация за удобна актуализация на репо:
Със следното съдържание:
актуализация: createrepo --актуализиране на x86_64 createrepo --актуализиране на i386 createrepo --актуализиране на SRPMS
Сега актуализирането на хранилища при добавяне на нови пакети може да се направи по следния начин:
Сега нашето хранилище трябва да бъде свързано към клиентската машина (имам го 64-битова и моят пример няма да работи с 32-битова), създайте файл с описание на хранилището:
[myrepo-centos] name=Моето лично Yum Repo baseurl=http://domain.ru/centos_repository/5/$basearch enabled=1 # не е защитено gpgcheck=0
Сега изпълняваме yum и се уверяваме, че няма грешки в нашето хранилище:
Получаване на информация за тестовия пакет в нашето хранилище:
yum info mpt-status Заредени плъгини: fastestmirror, versionlock Скорости на огледалното зареждане от кеширания хост файл * добавки: ftp.plusline.de * база: centos.copahost.com * epel: mirror.andreas-mueller.com * екстри: ftp.plusline.de * openvz-kernel-rhel5: openvz.copahost.com * openvz-utils: openvz.copahost.com * актуализации: centos.copahost.com Четене на конфигурация за заключване на версия Налични пакети Име: mpt-статус Архив: i386 Версия: 1.2.0_RC7 Издаване: 3 Размер : 27 k Repo : myrepo-centos Резюме : MPT Fusion raid инструмент за запитване URL : http://www.drugphish.ch/
ratz/mpt-status/ Лиценз: GPL Описание: mpt-status дава информация за състоянието на raid за LSI Fusion контролери. : Това е доста модифицирана версия на оригиналния пакет mpt-status-1.0.
Поставяме го (всъщност, в името на това всичко беше започнато):
Добавяне на нови пакети към хранилището
Просто поставяме новия rpm в папката, съответстваща на архитектурата, и след това правим --update както по-горе. В резултат ще видим следното:
make createrepo --update x86_64 2/2 - vzprocps-2.0.11-6.13.swsoft.i386.rpm Запазване на първични метаданни Запазване на файлови списъци с метаданни Запазване на други метаданни createrepo --update i386 2/2 - vzprocps-2.0.11-6.13 .swsoft.i 386.rpm Запазване на първични метаданни Запазване на метаданни от списъци с файлове Запазване на други метаданни createrepo --update SRPMS
Запазване на първични метаданни Запазване на метаданни от списъци с файлове Запазване на други метаданни