La tentative d'installation de tmux sur CentOS 6.x échoue avec l'erreur: «EVBUFFER_EOL_LF» non déclaré

11

J'ai essayé de compiler tmux en utilisant les étapes suivantes:

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

La makecommande a échoué avec l'erreur suivante:

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

Voici les détails des packages ncurses-devel et libevent-devel installés.

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

Quelle est la bonne façon d'installer tmux sur CentOS 6.x?

Susam Pal
la source

Réponses:

17

Le problème se produit car yum installe libevent version 1.4 alors que tmux 1.9 nécessite libevent version 2.0. La solution consiste à installer libevent version 2.0 à partir de la source.

Voici l'ensemble complet des commandes pour installer tmux à partir de zéro.

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

Il y a trois blocs de commandes ici.

  1. La commande yum installe le package ncurses-devel (s'il n'est pas déjà présent) requis pour compiler tmux.
  2. Ensuite, nous compilons libevent version 2.0 à partir des sources et l'installons.
  3. Ensuite, nous compilons tmux version 2.1 à partir des sources et l'installons. Ce faisant, nous nous assurons que nous associons à tmux libevent que nous avons installé dans / usr / local / lib, autrement obtenir cette erreur: tmux: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory.

Enfin, exécutez la tmuxcommande pour lancer tmux.

Susam Pal
la source
6
La configuration de tmux les accepte également: export LIBEVENT_CFLAGS = "- I / usr / local / include" export LIBEVENT_LIBS = "- L / usr / local / lib -Wl, -rpath = / usr / local / lib -levent" Le chemin d'accès exclura le changement LD_LIBRAY_PATH qui est plus pratique pour les autres utilisateurs de votre système.
Ajith Antony
Remarque pour les Googleurs: J'ai également utilisé cela avec succès sur un ancien Centos 5.
Tyr
7

Installer libevent 2 -devel instant de libevent-devel

sur ma machine 64 bits:

yum install libevent2-devel.x86_64

Si vous avez déjà installé libevent-devel, désinstallez-le d'abord.

kijeong
la source
1

Configurez et faites commencer à travailler après avoir exécuté:

sudo yum erase libevent-devel

sudo yum install libevent2-devel

Notez que la première supprime l'ancienne version ( 1 ) et la seconde a un «2» explicite ajouté. De plus, le type de machine est heureusement résolu automatiquement.

Jordan Gee
la source