FastNetMon

Показаны сообщения с ярлыком RPM. Показать все сообщения
Показаны сообщения с ярлыком RPM. Показать все сообщения

суббота, 6 ноября 2010 г.

вторник, 16 февраля 2010 г.

Где взять исходники ядра CentOS?

Получаем патч + исходники чистого ядра 2.6.18:
cd /usr/src
wget ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/kernel-`uname -r`.src.rpm
mkdir -p /usr/src/redhat/SOURCES
mkdir -p /usr/src/redhat/BUILD
rpm -ihv kernel-`uname -r`.src.rpm


Патчим дерево ядра 2.6.18 патчами от Red Hat:

yum install -y rpm-build redhat-rpm-config unifdef # необходимы для наложения патчей
cd /usr/src/redhat/SPECS
rpmbuild -bp kernel-2.6.spec


Ключ bp обозначает:

-bp Executes the "%prep" stage from the spec file. Normally this involves unpacking the sources and applying any patches.



Теперь, если необходимо провести подготовку к сборке модулей, выполняем команды:

cd /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.i386
make oldconfig
make prepare


Либо можно подключить srcrpm репо для этого и стянуть оттуда.

вторник, 12 января 2010 г.

Аналог rpm -ql в Debian

Просмотреть список файлов входящих в пакет:
dpkg --listfiles postgrey

Полезная опция rpm для борьбы с руткитами


rpm {-V|--verify} [select-options] [verify-options]

Verifying a package compares information about the installed files in the package with information about the files taken from the package metadata stored in the rpm database. Among other things, verifying compares the size, MD5 sum, permissions, type, owner and group of each file. Any discrepancies are displayed. Files that were not installed from the package, for example, documentation files excluded on installation using the "--excludedocs" option, will be silently ignored.


Для Debian есть команда:
apt-get install -y dpkg-sig

понедельник, 7 декабря 2009 г.

Как собирать RPM под CentOS 5?

Ставим репозиторий Epel:
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm


Для начала ставим необходимые пакеты:
yum install -y rpmdevtools


Также нам необходимо получвть SRС RPM пакеты из репозитория для пересборки, для этого нам понадобится программа yumdownloader:
yum -y install yum-utils



Создаем пользователя, под которым будем собирать пакеты:
/usr/sbin/useradd rpmbuild


Входим в систему под именем нового пользователя:

su - rpmbuild


Переходим в домашнюю папку:
cd


Инициализируем структуру каталогов для сборки RPM:
rpmdev-setuptree


Теперь скачиваем SRC RPM пакет интересующего нас модуля:

yumdownloader --enablerepo=epel-source --source nginx


А если требуется пересобрать пакет не из EPEL, а из основного репозитория CentOS? Тут возникает небольшая проблема - репозиторий с SRC RPM пакетами стандартно не добавлен в систему. Поэтому его придется установить:


wget http://fastvps.googlecode.com/svn/trunk/configs/CentOS-SRPMS.repo -O/etc/yum.repos.d/CentOS-SRPMS.repo
yum update


А скачивание с него выглядит так (либо update-SRPMS, если требуется самая новая версия пакета):
yumdownloader --enablerepo=base-SRPMS --source mysql


Итак, вернемся к nginx, попробуем собрать для него бинарный RPM пакет.

От имени рута в папке /home/rpmbuild выполняем команду:
yumdownloader --enablerepo=epel-source --source nginx



После чего, входим в систему под именем rpmbuild и обнаруживаем в домашней папке следующий файл:
nginx-0.6.39-1.el5.src.rpm


Теперь распаковываем его командой:
rpm -ihv nginx-0.6.39-1.el5.src.rpm


Далее нам необходимо поставить все пакеты, требуемые для сборки нашего пакета (запускаем от рута):
yum-builddep nginx-0.6.39-1.el5.src.rpm


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

Переходим в папку со SPEC файлами:

cd rpmbuild/SPECS/


Запускаем сборку пакета:

rpmbuild -bb nginx.spec


Если же требуется только наложить патчи, но не билдить пэкадж, команда такая:
rpmbuild -bp nginx.spec


Если в ответ на это, будет выдан список пакетов с надписью "error: Failed build dependencies", то их придется поставить от имени рута.

Ну вот и все, в случае успешной сборки мы получим бинарные файлы в папке:

ls ~/rpmbuild/RPMS/x86_64/
nginx-0.6.39-1.x86_64.rpm nginx-debuginfo-0.6.39-1.x86_64.rpm