CentOS 6.xにtmuxをインストールしようとすると、「EVBUFFER_EOL_LF」が宣言されていないというエラーで失敗する


11

次の手順でtmuxをコンパイルしてみました。

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

makeコマンドは次のエラーで失敗しました:

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

インストールされているncurses-develおよび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.

CentOS 6.xにtmuxをインストールする正しい方法は何ですか?

回答:


17

この問題は、yumがlibeventバージョン1.4をインストールするのに対して、tmux 1.9はlibeventバージョン2.0を必要とするために発生します。解決策は、ソースからlibeventバージョン2.0をインストールすることです。

tmuxを最初からインストールするための一連のコマンドを次に示します。

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

ここには3つのコマンドブロックがあります。

  1. yumコマンドは、tmuxのコンパイルに必要なncurses-develパッケージ(まだ存在しない場合)をインストールします。
  2. 次に、ソースからlibeventバージョン2.0をコンパイルしてインストールします。
  3. 次に、ソースからtmuxバージョン2.1をコンパイルしてインストールします。そうしている間、/ usr / local / libにインストールしたlibeventにtmuxを確実にリンクしますtmux: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory。そうしないと、次のエラーが発生します。

最後に、tmuxコマンドを実行してtmuxを起動します。


6
tmuxの設定もこれらを受け入れます。export LIBEVENT_CFLAGS = "-I / usr / local / include" export LIBEVENT_LIBS = "-L / usr / local / lib -Wl、-rpath = / usr / local / lib -levent" rpathは除外しますLD_LIBRAY_PATHの変更。これは、システムの他のユーザーにとってより便利です。
Ajith Antony、2014

Google社員への注意:私はこれを古代のCentos 5でもうまく使用しました。
Tyr

7

libevent 2のインストール-libevent -develのdevelインスタント

私の64ビットマシン:

yum install libevent2-devel.x86_64

libevent-develがすでにインストールされている場合は、最初にアンインストールします。


1

私が実行した後、設定動作させます:

sudo yum erase libevent-devel

sudo yum install libevent2-devel

最初のバージョンでは古いバージョン(1)が削除され、2番目のバージョンでは明示的に「2」が追加されています。また、マシンのタイプは幸運にも自動的に解決されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.