Você pode usar pkg-config
fazer isso facilmente.
Primeiro, crie libevent
. Neste exemplo, vamos instalar
libevent
to /tmp/libevent
- você não precisa criar esse
diretório manualmente, ele será criado automaticamente durante a compilação
processo. Você não precisa ser root para executar make install
:
$ ./autogen.sh
$ ./configure --prefix=/tmp/libevent
$ make
$ make install
Agora você deve ter /tmp/libevent/lib/pkgconfig/libevent.pc
:
$ cat /tmp/libevent/lib/pkgconfig/libevent.pc
#libevent pkg-config source file
prefix=/tmp/libevent
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: libevent
Description: libevent is an asynchronous notification event loop library
Version: 2.2.0-alpha-dev
Requires:
Conflicts:
Libs: -L${libdir} -levent
Libs.private:
Cflags: -I${includedir}
Observe que prefix
está configurado para o diretório que passamos como argumento
para ./configure
.
Antes de criar o tmux, adicione /tmp/libevent/lib/pkgconfig
ao
PKG_CONFIG_PATH
:
$ export PKG_CONFIG_PATH=/tmp/libevent/lib/pkgconfig:$PKG_CONFIG_PATH
$ pkg-config --cflags --libs libevent
-I/tmp/libevent/include -L/tmp/libevent/lib -levent
E, em seguida, crie tmux
normalmente:
$ ./autogen.sh
$ ./configure
$ make
Observe que, para realmente iniciar tmux
com seu personalizado
libevent
, você precisa definir LD_LIBRARY_PATH
corretamente:
$ ldd ./tmux
linux-vdso.so.1 (0x00007ffce3d92000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007f2f1d77e000)
libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f2f1d527000)
libevent-2.2.so.1 => not found
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f2f1d30b000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2f1cf42000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f2f1cd3d000)
/lib64/ld-linux-x86-64.so.2 (0x000055cdf0697000)
$ ./tmux
./tmux: error while loading shared libraries: libevent-2.2.so.1: cannot open shared object file: No such file or directory
$ LD_LIBRARY_PATH=/tmp/libevent/lib ./tmux -V
tmux master
EDITAR :
Para poder usar a configuração LD_LIBRARY_PATH
, você pode definir rpath
ao criar tmux
:
$ ./configure LDFLAGS="-Wl,-rpath=/tmp/libevent/lib"
$ make
$ ldd ./tmux
linux-vdso.so.1 (0x00007ffcc6de1000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007fbe121a4000)
libncurses.so.5 => /lib64/libncurses.so.5 (0x00007fbe11f4c000)
libevent-2.2.so.1 => /tmp/libevent/lib/libevent-2.2.so.1 (0x00007fbe11cf7000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fbe11adc000)
libc.so.6 => /lib64/libc.so.6 (0x00007fbe11712000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fbe1150e000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbe112f1000)
/lib64/ld-linux-x86-64.so.2 (0x000055f057ef4000)
$ ./tmux -V
tmux master