Tentativo di installare tmux su CentOS 6.x non riesce con errore: "EVBUFFER_EOL_LF" non dichiarato


11

Ho provato a compilare tmux usando i seguenti passi:

yum -y install ncurses-devel libevent-devel
wget http://downloads.sourceforge.net/tmux/tmux-1.9a.tar.gz
tar -xvzf tmux-1.9a.tar.gz
cd tmux-1.9a
./configure
make

Il makecomando non è riuscito con il seguente errore:

control.c:64:47: error: ‘EVBUFFER_EOL_LF’ undeclared (first use in this function)

Ecco i dettagli dei pacchetti ncurses-devel e libevent-devel installati.

[root@rigel ~]# yum info ncurses-devel.x86_64 libevent-devel.x86_64
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: centosmirror.go4hosting.in
Installed Packages
Name        : libevent-devel
Arch        : x86_64
Version     : 1.4.13
Release     : 4.el6
Size        : 421 k
Repo        : installed
From repo   : base
Summary     : Header files, libraries and development documentation for libevent
URL         : http://monkey.org/~provos/libevent/
License     : BSD
Description : This package contains the static libraries documentation for libevent.
            : If you like to develop programs using libevent, you will need
            : to install libevent-devel.

Name        : ncurses-devel
Arch        : x86_64
Version     : 5.7
Release     : 3.20090208.el6
Size        : 1.7 M
Repo        : installed
From repo   : base
Summary     : Development files for the ncurses library
URL         : http://invisible-island.net/ncurses/ncurses.html
License     : MIT
Description : The header files and libraries for developing applications that use
            : the ncurses terminal handling library.
            :
            : Install the ncurses-devel package if you want to develop applications
            : which will use ncurses.

Qual è il modo giusto per installare tmux su CentOS 6.x?

Risposte:


17

Il problema si verifica perché yum installa libevent versione 1.4 mentre tmux 1.9 richiede libevent versione 2.0. La soluzione è installare libevent versione 2.0 dal sorgente.

Ecco il set completo di comandi per installare tmux da zero.

yum -y install ncurses-devel

wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz
tar -xvzf libevent-2.0.22-stable.tar.gz
cd libevent-2.0.22-stable
./configure
make -j 4
make install
cd ..

wget https://github.com/tmux/tmux/releases/download/2.1/tmux-2.1.tar.gz
tar -xvzf tmux-2.1.tar.gz
cd tmux-2.1
./configure LDFLAGS="-Wl,-rpath,/usr/local/lib"
make -j 4
make install

Ci sono tre blocchi di comandi qui.

  1. Il comando yum installa il pacchetto ncurses-devel (se non è già presente) richiesto per compilare tmux.
  2. Quindi compiliamo la versione 2.0 di libevent dal sorgente e la installiamo.
  3. Quindi compiliamo tmux versione 2.1 dal sorgente e lo installiamo. Mentre in questo modo, ci assicuriamo che ci colleghiamo ad tmux libevent che abbiamo installato in / usr / / lib locale, altrimenti sarebbe ottenere questo errore: tmux: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory.

Infine, esegui il tmuxcomando per avviare tmux.


6
tmux's configure accetta anche questi: export LIBEVENT_CFLAGS = "- I / usr / local / include" export LIBEVENT_LIBS = "- L / usr / local / lib -Wl, -rpath = / usr / local / lib -levent" Il percorso precluderà la modifica LD_LIBRAY_PATH che è più conveniente per altri utenti sul tuo sistema.
Ajith Antony,

Nota per i googler: l'ho usato con successo anche su un antico Centos 5.
Tyr,

7

Installa libevent 2 -devel istante di libevent-devel

sulla mia macchina a 64 bit:

yum install libevent2-devel.x86_64

Se hai già installato libevent-devel, disinstallalo prima.


1

Configurare e far funzionare dopo che ho eseguito:

sudo yum erase libevent-devel

sudo yum install libevent2-devel

Nota che il primo rimuove la vecchia versione ( 1 ) e il secondo ha un esplicito '2' aggiunto. Anche il tipo di macchina viene fortunatamente risolto automaticamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.