Я работаю над спецификацией RPM для Centos, и мне нужно установить общие библиотеки в /usr/lib64, если арка 64-битная, и /usr/lib в противном случае?
Как сделать спецификацию rpm, которая устанавливает библиотеки в /usr/lib xor /usr/lib64 на основе арки?
Ответы (3)
Это не так, как это должно работать. Не тип ядра должен определять, куда идут ваши библиотеки, а сами типы библиотек — 64-битные .so идут в /usr/lib64, 32-битные — в /usr/lib.
У вас не может быть одного RPM, содержащего обе архитектуры, результатом должно быть 2 разных RPM, и, если я не ошибаюсь, макросы RPM должны решить эту проблему, если вы используете %_libdir.
Путь, по которому устанавливается библиотека, будет определяться типом создаваемого вами пакета.
Похоже, что для Redhat (и CentOS) 6 макрос RPM уже внедряет —libdir=/usr/lib64.
Вот как RH/CentOS 6 устанавливает lib64 через файл RPM SPEC.
В RH/CentOS 6 выполнение automake/configure не приводит (и, согласно RH, не будет) префикс библиотеки к /usr/lib64 в случае типа архитектуры x86_64.
Все это исправлено для RH/CentOS 7 и выше.