Показаны сообщения с ярлыком RPM. Показать все сообщения
Показаны сообщения с ярлыком RPM. Показать все сообщения
суббота, 6 ноября 2010 г.
Оказывается, в RPM есть встроенный lua интерпретатор
Ага, правда: http://www.rpm.org/wiki/PackagerDocs/RpmLua
пятница, 5 ноября 2010 г.
Как распаковать rpm пакет?
rpm2cpio package.rpm | cpio -idmuv --no-absolute-filenames
Источник: http://www.opennet.ru/base/sys/rpm2cpio.txt.html
вторник, 16 февраля 2010 г.
Где взять исходники ядра CentOS?
Получаем патч + исходники чистого ядра 2.6.18:
Патчим дерево ядра 2.6.18 патчами от Red Hat:
Ключ bp обозначает:
Теперь, если необходимо провести подготовку к сборке модулей, выполняем команды:
Либо можно подключить srcrpm репо для этого и стянуть оттуда.
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 для борьбы с руткитами
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
понедельник, 21 декабря 2009 г.
воскресенье, 20 декабря 2009 г.
Как скачать файлы указанные как SOURCES в SPEC?
Никак.
The URLs listed in source directives are for convenience and future reference only. RPM will not download these files.
понедельник, 7 декабря 2009 г.
Как собирать RPM под CentOS 5?
Ставим репозиторий Epel:
Для начала ставим необходимые пакеты:
Также нам необходимо получвть SRС RPM пакеты из репозитория для пересборки, для этого нам понадобится программа yumdownloader:
Создаем пользователя, под которым будем собирать пакеты:
Входим в систему под именем нового пользователя:
Переходим в домашнюю папку:
Инициализируем структуру каталогов для сборки RPM:
Теперь скачиваем SRC RPM пакет интересующего нас модуля:
А если требуется пересобрать пакет не из EPEL, а из основного репозитория CentOS? Тут возникает небольшая проблема - репозиторий с SRC RPM пакетами стандартно не добавлен в систему. Поэтому его придется установить:
А скачивание с него выглядит так (либо update-SRPMS, если требуется самая новая версия пакета):
Итак, вернемся к nginx, попробуем собрать для него бинарный RPM пакет.
От имени рута в папке /home/rpmbuild выполняем команду:
После чего, входим в систему под именем rpmbuild и обнаруживаем в домашней папке следующий файл:
Теперь распаковываем его командой:
Далее нам необходимо поставить все пакеты, требуемые для сборки нашего пакета (запускаем от рута):
После вышеописанных операций, у нас имеются исходный код пакета и SPEC файл, описывающий как его собирать в бинарник.
Переходим в папку со SPEC файлами:
Запускаем сборку пакета:
Если же требуется только наложить патчи, но не билдить пэкадж, команда такая:
Если в ответ на это, будет выдан список пакетов с надписью "error: Failed build dependencies", то их придется поставить от имени рута.
Ну вот и все, в случае успешной сборки мы получим бинарные файлы в папке:
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
Подписаться на:
Сообщения
(
Atom
)