Como eu poderia instalar o libevent 2.0+ ao reservar o libevent 1.4 fornecido pelo sistema?

0

Eu sou um novato em RPM

Eu quero construir um RPM do tmux e libevent para o centos 6.5 que não é enviado.

O problema é que o tmux precisa do libevent 2.0+ que o centos 6.5 não envia. Então eu escrevi as especificações de rpm para ambos os pacotes aqui: link

No entanto, o centos 6.0 vendeu um libevent 1.4 que é requerido pelo pacote nfs, e yum se recusou a atualizar o libevent.

Como eu poderia instalar o libevent 2.0+ ao reservar o libevent 1.4 fornecido pelo sistema?

Atualizado # 1:

  1. Por que não usei / usr / local?

    Porque eu quero usar o% {_ libdir} para indicar o diretório lib para lib64 ao invés de lib automaticamente.

por sprhawk 08.08.2014 / 05:38

1 resposta

0

A maneira mais simples de obter o tmux é habilitar o repositório de pacotes EPEL. Esse pacote está aqui: link

Mas, é mais fácil instalar o pacote de lançamento EPEL, sobre o qual você pode ler aqui: link

Atualmente, o EPEL tem uma versão um pouco mais antiga do tmux, mas faz tudo que eu sempre precisei fazer, e parece extremamente estável (nunca vi isso se comportar mal).

Se você realmente precisava de uma versão mais nova do tmux e do libevent, a maneira padrão de construir versões de bibliotecas alternativas é chamar o pacote de algo como libevent2 e incluir informações de versão nos nomes de arquivos da biblioteca (libevent-2.0.so.5, para exemplo). configure fornece opções para isso em alguns casos; O libtool é usado por algumas bibliotecas para ajudar nisso. Um rápido googling revela que o libevent agora usa libtool em algum lugar da árvore 2.0.x, então deve ser razoavelmente fácil obter uma biblioteca de nomes alternativos.

Veja aqui algumas documentações sobre o empacotamento de várias versões de bibliotecas com o RPM, com alguns exemplos decentes: link

E os documentos oficiais do RPM sobre o assunto de várias versões (mas não abrangem diretamente as bibliotecas): link

Por fim, se eu estivesse planejando criar um pacote do libevent 2.0, começaria com o encontrado no repositório atual do CentOS 7 e adicionaria as informações adicionais sobre a versão ao nome do pacote para torná-lo instalável simultaneamente. Você pode encontrar exemplos de pacotes que possuem várias versões para ver como isso pode ser feito. gtk2 e gtk3 são comumente disponíveis na maioria dos sistemas baseados em RPM, por exemplo, embora sejam tão grandes que são colocados em seus próprios diretórios em lib ou lib64, o que provavelmente não é útil ou necessário com o libevent.

    
por 08.08.2014 / 06:52