Я новичок в RPM

Я хочу собрать RPM из tmux и libevent для centos 6.5, который не поставляется.

Проблема в том, что tmux нужен libevent 2.0+, который также не поставляется с centos 6.5. Поэтому я написал спецификацию rpm для обоих пакетов здесь: https://github.com/sprhawk/RPMSPECs/tree/master/SPECS

Однако centos 6.0 поставил libevent 1.4, который требуется для пакета nfs, и yum отказался обновлять libevent.

Как я могу установить libevent 2.0+ при резервировании системы, предоставленной libevent 1.4?

Обновлено # 1:

  1. Почему я не использовал /usr /local?

    Потому что я хочу использовать% {_ libdir} для автоматического указания директории lib на lib64 вместо lib.

1 ответ1

0

Самый простой способ получить tmux - включить репозиторий пакетов EPEL. Этот пакет находится здесь: http://dl.fedoraproject.org/pub/epel/6/x86_64/repoview/tmux.html

Но проще всего установить пакет выпуска EPEL, о котором вы можете прочитать здесь: https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F

EPEL в настоящее время имеет немного более старую версию tmux, но она делает все, что мне когда-либо требовалось, и кажется чрезвычайно стабильной (я никогда не видел ее неправильной работы).

Если вам действительно нужна более новая версия tmux и libevent, стандартным способом создания альтернативных версий библиотеки является вызов пакета, например, libevent2, и включение информации о версии в имена файлов библиотеки (например, libevent-2.0.so.5). configure предоставляет варианты для этого в некоторых случаях; libtool используется некоторыми библиотеками, чтобы помочь с этим. Быстрое поиск в Google показывает, что libevent теперь использует libtool где-то в дереве 2.0.x, поэтому должно быть достаточно легко получить библиотеку с альтернативным именем.

Вот некоторая документация по упаковке нескольких версий библиотек с помощью RPM, с некоторыми достойными примерами: http://en.opensuse.org/openSUSE:Shared_library_packaging_policy

И официальные документы RPM по теме нескольких версий (но они не охватывают библиотеки напрямую): http://rpm.org/wiki/PackagerDocs/MultipleVersions

Наконец, если бы я собирался создать пакет libevent 2.0, я бы начал с пакета, найденного в текущем репозитории CentOS 7, и добавил бы дополнительную информацию о версии к имени пакета, чтобы сделать его устанавливаемым одновременно. Вы можете найти примеры пакетов, которые имеют несколько версий, чтобы увидеть, как это можно сделать. Например, gtk2 и gtk3 обычно доступны в большинстве систем на основе RPM, хотя они настолько велики, что их помещают в свои собственные каталоги в lib или lib64, что, вероятно, бесполезно или не нужно в libevent.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .