Второй день сижу и смотрю, как компилируется rpm. Конечно, не только сижу и смотрю, но и прикладываю к нему наших 10 патчиков. Забил крохотный баг [Red Hat bug #191480] на распоследний rpm.
Зато скоро в OpenVZ пекедж тулзы (vzpkg/vzyum) будут поддерживать x86_64. Наконец-то! Сейчас пока приходится пользоваться предварительно созданными темплейтами для x86_64, а можно будет делать свои.
Проблема связана с тем, что разные версии rpm несовместимы по формату базы данных. И если с помощью rpm-4.4 можно поставить пакеты в chroot (в VE), то потом "внутренний" rpm-4.3 сильно расстроится и не станет там работать. Обратная проблема тоже есть -- если "снаружи" использовать rpm-4.3, а внутри rpm-4.4, то всё будет поначалу хорошо, но после того, как внутренний rpm-4.4 потрогает базу (хоть бы rpm -q rpm), наружний rpm-4.3 уже ничего с ней сделать не может.
Существует много разных способов решения этой проблемы. Мы делаем "свои" внешние rpmы разных версий, которые по мажорной версии соответствуют тому, что внутри. Чтобы эти наши rpmы работали на разных платформах, мы их компиляем статикой. Но, как оказалось, откомпилять статикой rpm-python — занятие не для слабонервных. Если на ix86 этого ещё можно достичь (правда, в процессе мы обнаружили и исправили баг в binutils, тому препятствующий), то на x86_64 лучше даже и не пытаться.
Поэтому я плюнул и компиляю rpm-python динамически. Придётся провайдить две версии каждого rpm-4.x — для python-2.3 и для python 2.4. Забавная матрица получается.
Никто ничего, конечно, не понял, но я хотя бы высказался.
rpm, rpm, rpm
Поняли, поняли :) О, поддержка 64-хразрядных платформ - это наше все. : ))) Кстати, можно Вас помучать на предмет OpenVZ (по почте или еще как)? 64-х разрядные платформы поддерживаются на пять, не было только пекедж тулзов. |