Игорь Олемской — практические заметки по системному администрированию Linux CentOS

Архив тега ‘Новости репозитория Southbridge’

Как создать и подписать собственный RPM-репозиторий

2 комментария

Когда администрируешь множество серверов, возникает необходимость централизованного хранения собственных RPM-пакетов. В этой статье описано, как создать RPM-репозиторий и как сделать gpg-подпись пакетов, хранимых в этом репозитории.

Как создать подпись

Генерируем новый gpg-ключ

mkdir ~/.gnupg
gpg --gen-key

Если gpg выдаст ошибку типа

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 277 more bytes)

можно параллельно выполнить трудоемкую операцию, к примеру,

tar -jcvf tmp.tar.bz2 /usr

Это ускорит генерацию ключа. Когда ключ будет создан, не забудьте удалить tmp.tar.bz2. 😉

Теперь можно сделать экспорт ключа (к примеру, чтобы дальше он был доступен по ссылке rpms.southbridge.ru/RPM-GPG-KEY-southbridge).

gpg --list-keys
gpg --export -a 'Igor Olemskoi' > /var/www/rpms.southbridge.ru/htdocs/RPM-GPG-KEY-southbridge

Теперь ключ можно импортировать командой

rpm --import http://rpms.southbridge.ru/RPM-GPG-KEY-southbridge

Проверить список пакетов в RPM-базе можно командой

rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'

Чтобы в пакеты автоматом добавлялась подпись, можно создать ~/.rpmmacros со следующим содержанием («Igor Olemskoi» нужно заменить на данные, которые заполняли при создании ключа)

%_signature gpg
%_gpg_name  Igor Olemskoi

Чтобы подписать уже существующий rpm, нужно запустить

rpm --addsign mytool.x64_86.rpm

Если пакет ранее уже был подписан, --addsign замените на --resign.

Чтобы подписать пакет во время сборки, нужно добавить опцию --sign, к примеру

rpmbuild -ba --sign mytool.spec

Как создать RPM-репозиторий

Создайте сайт, на котором будут размещены пакеты, а на нем дерево папок, к примеру (htdocs — корень сайта rpms.southbridge.ru)

htdocs/SRPMS
htdocs/i386
htdocs/x86_64
htdocs/RPM-GPG-KEY-southbridge

Остается лишь разместить готовые rpm/srpm-пакеты в соответствующие папки, после чего для каждой из папок запустить createrepo (эту операцию следует выполнять после каждого изменения файлов)

createrepo htdocs/SRPMS
createrepo htdocs/i386
createrepo htdocs/x86_64

В случае, если createrepo в системе нет, установить можно командой

yum install createrepo

Как использовать собственный RPM-репозиторий

Добавьте файл /etc/yum.repos.d/southbridge.repo, к примеру, такого содержания

[southbridge]
name=Southbridge Repository
gpgcheck=1
gpgkey=http://rpms.southbridge.ru/RPM-GPG-KEY-southbridge
enabled=1
baseurl=http://rpms.southbridge.ru/$basearch/

19.06.2009

Написал Игорь Олемской

CentOS 5: особенности установки memcached и pgbouncer на одной машине

Один комментарий

В этой заметке описано, как установить memcached на ту же машину, где уже запущен pgbouncer (из репозитория pgdg). Сложность в том, что pgbouncer использует более новую версию libevent, чем memcached, в результате чего memcached при установке выдает «transaction failed».

Один из наиболее красивых выходов из ситуации — пересборка SRPM с новой библиотекой libevent, а заодно и новой версией memcached.

В случае, если репозиторий pgdg еще не установлен, его можно инсталировать следующей командой (версию можно выбрать на странице http://yum.pgsqlrpms.org/reporpms/repoview/pgdg-centos.html)

rpm -ihv http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-6.noarch.rpm

Из репозитория pgdg необходимо установить новый libevent-devel (вместо 83 может быть ваша версия pgdg)

yum --disablerepo=\* --enablerepo=pgdg83 install libevent-devel

Теперь необходимо загрузить srpm memcached (выбрать версию из репозитория можно по адресу: http://download.fedora.redhat.com/pub/epel/5/SRPMS/repoview/memcached.html) и последнюю версию самого memcached

rpm -Uhv http://download.fedora.redhat.com/pub/epel/5/SRPMS/memcached-1.2.5-2.el5.src.rpm
wget http://memcached.googlecode.com/files/memcached-1.2.8.tar.gz -O /usr/src/redhat/SOURCES/memcached-1.2.8.tar.gz

В файле /usr/src/redhat/SPECS/memcached.spec необходимо актуализировать версии memcached и rpm

Version:        1.2.8
Release:        1%{?dist}

Осталось собрать rpm

rpmbuild -bb /usr/src/redhat/SPECS/memcached.spec

В случае, если не хватает каких-то дополнительных библиотек, их можно установить командой «yum install».

Готовые пакеты можно найти в папке /usr/src/redhat/RPMS/

28.05.2009

Написал Игорь Олемской

Установка свежей версии ffmpeg на CentOS 5

Комментариев нет

UPD: Используйте репозиторий Rpmforge для установки ffmpeg 🙂

Сравнительно свежая версия ffmpeg доступна в RPMFusion.

Устанавливается так (http://rpmfusion.org/Configuration):

rpm -Uvh http://download1.rpmfusion.org/free/el/updates/testing/5/i386/rpmfusion-free-release-5-0.1.noarch.rpm

Ввиду того, что для CentOS поддержка сравнительно сыровата, будет не лишним в файлах /etc/yum.repos.d/rpmfusion-free-updates.repo и /etc/yum.repos.d/rpmfusion-free-updates.repo отключить параметр «enabled», чтобы из этого репозитория по-умолчанию пакеты не устанавливались:

enabled=0

Теперь собственно можно установить и ffmpeg:

yum --enablerepo=rpmfusion-free-updates-testing install ffmpeg

25.05.2009

Написал Игорь Олемской

Установка актуальных версий PHP / MySQL на CentOS 5

6 комментариев

В стандартной комплектации CentOS 5 идут достаточно устаревшие версии PHP (5.1.6) и MySQL (5.0.45), которых, к сожалению, все чаще не достаточно для работы современных веб-приложений.

Ниже описано, как установить актуальные версии из yum-репозитория «remi».

Установка epel и remi

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

Если php и mysql уже установлены, необходимо запустить

yum --enablerepo=remi update php\* mysql\*

Если mysql-server еще не установлен

yum --enablerepo=remi install mysql-server

Установка php, php-cli, php-ускорителя «eaccelerator» и частоиспользуемых php-библиотек

yum --enablerepo=remi install php php-cli php-eaccelerator php-mysql php-mbstring php-gd

23.05.2009

Написал Игорь Олемской