Quero instalar o tmux em uma máquina em que não tenho acesso root. Eu já compilei o libevent e o instalei no $HOME/.bin-libevent
e agora quero compilar o tmux, mas o configure sempre termina com configure: error: "libevent not found"
, mesmo que eu tenha tentado apontar para o diretório libevent no Makefile.am
modificando LDFLAGS
e CPPFLAGS
, mas nada parece funcionar.
Como posso dizer ao sistema para procurar no diretório home o libevent?
Respostas:
Experimentar:
(Tenho certeza de que deve haver uma maneira melhor de configurar os caminhos da biblioteca com o autoconf. Geralmente há uma
--with-libevent=dir
opção. Mas aqui parece que não existe essa opção.)fonte
make
finalmente fez o trabalho. Tentei definir outras variáveis de ambienteprefix
eexec-prefix
, mas, uma vez incluídas essas bandeiras, as coisas realmente foram construídas../configure CFLAGS="-I$DIR/include:/usr/otherdir" LDFLAGS="-L$DIR/lib:/usr/otherdir"
, mas sem sucessoCFLAGS="-Idir1 -Idir2 -Idir3" LDFLAGS="-Ldira -Ldirb -Ldirb"
libevent not found
erro foi embora, mas agora eu recebo o mesmo comncurses
:curses not found
. Meuslibevent
bem comoncurses
instalações estão ambos em$HOME/.local/
libevent
, useLIBEVENT_CFLAGS
e emLIBEVENT_LIBS
vez deCFLASG
eLDFLAGS
. Parancurse
, useLIBTINFO_CFLAGS
eLIBTINFO_LIBS
@AalokEu estava tendo um problema semelhante e descobri que, após a execução
sudo yum install libevent-devel
, consegui criar e instalar o tmux com sucesso.EDIT: Se você estiver instalando isso em uma máquina Red Hat, também precisará visitar a seleção de canais para seu servidor na Red Hat Network e adicionar o canal opcional do servidor RHEL. Isso lhe dará acesso aos pacotes -devel para libevent (os canais base e suplementares não o fornecem).
fonte
Eu tive o mesmo problema no RHEL 5.4 e realmente encontrei o libevent está instalado, mas não existe o link simbólico libevent.so, apenas a versão real da biblioteca:
Portanto,
ln -s /usr/lib64/libevent-1.1a.so.1 /usr/lib64/libevent.so
funciona muito bem para mim sem a necessidade de instalar ou alterar nada. Não faço ideia por que o rpm libevent do RedHat não criou o link simbólico. Talvez um bug para relatar?Mas agora, ele está reclamando para isso:
error: event.h: No such file or directory
.fonte
error: event.h: No such file or directory
.tmux='LD_PRELOAD=/opt-local/lib/libevent-2.0.so.5 /opt-local/bin/tmux'
. Funciona como um encanto!Antes da configuração e compilação do tmux (ou de qualquer programa), é necessário informar onde ele pode encontrar as bibliotecas necessárias. Se você instalou alguma biblioteca em um local não padrão, pode usar a variável ambiental
LD_LIBRARY_PRELOAD
para informar onde estão localizadas algumas bibliotecas.Eu seu caso:
E depois continue com a configuração / compilação.
Posteriormente, o binário também precisará saber onde suas bibliotecas adicionais podem ser encontradas; portanto, você precisará colocar a
export
declaração no seu.bashrc
(se bash for seu shell de login).fonte
find .bin-libevent -name 'libevent.so*'
mostra?$ find .bin-libevent -name 'libevent.so*'
encontra.bin-libevent/lib/libevent.so
$HOME/.bin-libevent/lib
(atualizado a resposta)Há uma essência em https://gist.github.com/ryin/3106801 :
fonte
ncurses
subdiretório de qualquer caminho de inclusão / biblioteca que você especificar. Escolha de design ímpar. Isso consertou para mim.Eu tenho o mesmo problema e parece que a resposta mais votada não funcionou para mim. Estou usando o Fedora 22 Workstation. Aqui está o que eu fiz para corrigir isso: 1. Instale o
libevent-devel
pacote. 2. Instale oncurses-devel
pacoteO primeiro não resolve nenhum
event.h
problema e o segundo resolve não consegue encontrar o problema das maldições. BTW, o método softlink acima também funciona para mim durante./configure
.fonte
A resposta aceita é boa, mas, pelo menos, no tmux 2.8, há suporte para especificar a localização do libevent usando variáveis de ambiente.
Primeiro instale o libevent no local desejado. Eu usei o cmake porque tive um problema com o autoconf
Em seguida, construa e instale o tmux:
As
LIBEVENT_CFLAGS
substituições de variáveis de ambientepkg-config
incluem configurações para libevent eLIBEVENT_LIBS
substituem as configurações de sinalizador do vinculador.fonte
No CentOS 6, compile e instale o libevent no
/opt/libevent
diretório com o comando:Em seguida, instale minha aplicação (neste caso, o PgBouncer)
Você pode alterar os diretórios onde quiser.
fonte