Der Versuch, tmux unter CentOS 6.x zu installieren, schlägt mit dem folgenden Fehler fehl: 'EVBUFFER_EOL_LF' nicht deklariert

11

Ich habe versucht, tmux mit den folgenden Schritten zu kompilieren:

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

Der makeBefehl schlug mit folgendem Fehler fehl:

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

Hier sind die Details der installierten Pakete ncurses-devel und libevent-devel.

[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.

Was ist der richtige Weg, um tmux unter CentOS 6.x zu installieren?

Susam Pal
quelle

Antworten:

17

Das Problem tritt auf, weil yum libevent Version 1.4 installiert, während für tmux 1.9 libevent Version 2.0 erforderlich ist. Die Lösung besteht darin, libevent Version 2.0 von der Quelle zu installieren.

Hier finden Sie den vollständigen Befehlssatz zum Installieren von tmux von Grund auf neu.

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

Hier gibt es drei Befehlsblöcke.

  1. Der Befehl yum installiert das Paket ncurses-devel (falls nicht bereits vorhanden), das zum Kompilieren von tmux erforderlich ist.
  2. Dann kompilieren wir libevent Version 2.0 aus dem Quellcode und installieren es.
  3. Dann kompilieren wir tmux Version 2.1 aus dem Quellcode und installieren es. Dabei stellen wir sicher, dass wir tmux mit libevent verknüpfen, das wir in / usr / local / lib installiert haben. Andernfalls wird der folgende Fehler angezeigt : tmux: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory.

tmuxFühren Sie abschließend den Befehl aus, um tmux zu starten.

Susam Pal
quelle
6
Die Konfiguration von tmux akzeptiert auch diese: export LIBEVENT_CFLAGS = "- I / usr / local / include" export LIBEVENT_LIBS = "- L / usr / local / lib -Wl, -rpath = / usr / local / lib -levent" Der Pfad wird ausgeschlossen die LD_LIBRAY_PATH-Änderung, die für andere Benutzer auf Ihrem System bequemer ist.
Ajith Antony
Hinweis für Googler: Ich habe dies auch bei einem alten Centos 5 erfolgreich eingesetzt.
Tyr
7

Installieren Sie Libevent 2- Level Instant von Libevent-Devel

auf meinem 64bit Computer:

yum install libevent2-devel.x86_64

Wenn Sie libevent-devel bereits installiert haben, deinstallieren Sie es zuerst.

Kijeong
quelle
1

Konfigurieren und machen , nachdem ich ausgeführt habe:

sudo yum erase libevent-devel

sudo yum install libevent2-devel

Beachten Sie, dass die erste die alte Version ( 1 ) entfernt und die zweite eine explizite '2' hinzugefügt hat. Auch der Maschinentyp wird zum Glück automatisch aufgelöst.

Jordan Gee
quelle