Попытка установить tmux на CentOS 6.x завершается неудачно с ошибкой: 'EVBUFFER_EOL_LF' undeclared

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.

Как правильно установить tmux на CentOS 6.x?

Сусам Пал
источник

Ответы:

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

Здесь есть три блока команд.

  1. Команда yum устанавливает пакет ncurses-devel (если он еще не существует), необходимый для компиляции tmux.
  2. Затем мы компилируем libevent версии 2.0 из исходного кода и устанавливаем его.
  3. Затем мы скомпилируем tmux версии 2.1 из исходного кода и установим его. Делая это, мы гарантируем , что мы связываем tmux к Libevent , что мы установили в / USR / местные / Lib, в противном случае получили бы эту ошибку: 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, более удобное для других пользователей вашей системы.
Аджит Энтони
Примечание для Google: я успешно использовал это и на древнем Centos 5.
Тыр
7

Установите libevent 2 -devel Instant of libevent-devel

на моей 64-битной машине:

yum install libevent2-devel.x86_64

Если у вас уже установлен libevent-devel, сначала удалите его.

kijeong
источник
1

Настройка и макияж начали работать после того, как я выполнил:

sudo yum erase libevent-devel

sudo yum install libevent2-devel

Обратите внимание, что первая удаляет старую версию ( 1 ), а вторая добавляет явное «2». Кроме того, тип машины, к счастью, определяется автоматически.

Джордан Джи
источник