Mencoba memasang tmux pada CentOS 6.x gagal dengan kesalahan: 'EVBUFFER_EOL_LF' tidak dideklarasikan

11

Saya mencoba mengkompilasi tmux menggunakan langkah-langkah berikut:

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

The makeperintah gagal dengan error berikut:

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

Berikut ini rincian paket ncurses-devel dan libevent-devel yang diinstal.

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

Apa cara yang tepat untuk menginstal tmux pada CentOS 6.x?

Susam Pal
sumber

Jawaban:

17

Masalah ini terjadi karena Anda menginstal libevent versi 1.4 sedangkan tmux 1.9 memerlukan libevent versi 2.0. Solusinya adalah menginstal libevent versi 2.0 dari sumbernya.

Ini adalah rangkaian lengkap perintah untuk menginstal tmux dari awal.

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

Ada tiga blok perintah di sini.

  1. Perintah yum menginstal paket ncurses-devel (jika belum ada) yang diperlukan untuk mengkompilasi tmux.
  2. Kemudian kami mengkompilasi libevent versi 2.0 dari sumber dan menginstalnya.
  3. Kemudian kami mengkompilasi tmux versi 2.1 dari sumber dan menginstalnya. Meskipun demikian, kami memastikan bahwa kita link tmux untuk libevent bahwa kita dipasang di / usr / local / lib, jika tidak akan mendapatkan error ini: tmux: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory.

Akhirnya, jalankan tmuxperintah untuk meluncurkan tmux.

Susam Pal
sumber
6
Konfigurasi tmux juga menerima ini: ekspor LIBEVENT_CFLAGS = "- I / usr / local / sertakan" export LIBEVENT_LIBS = "- L / usr / local / lib -Wl, -rpath = / usr / local / lib -levent" Rpath akan menghalangi perubahan LD_LIBRAY_PATH yang lebih nyaman bagi pengguna lain di sistem Anda.
Ajith Antony
Catatan untuk Googler: Saya telah berhasil menggunakan ini pada Centos 5 kuno juga.
Tyr
7

Instal libevent 2- tingkat instan libevent-devel

di mesin 64bit saya:

yum install libevent2-devel.x86_64

Jika Anda sudah menginstal libevent-devel, hapus instalannya terlebih dahulu.

kijeong
sumber
1

Konfigurasi dan make mulai bekerja setelah saya dieksekusi:

sudo yum erase libevent-devel

sudo yum install libevent2-devel

Perhatikan yang pertama menghapus versi lama ( 1 ) dan yang kedua menambahkan '2' secara eksplisit. Juga jenis mesin untungnya diselesaikan secara otomatis.

Jordan Gee
sumber