উত্স থেকে tmux তৈরি করার সময় কেন জিসিসি মুক্তি পেতে পারে না?


68

আমি এমন কোনও মেশিনে tmux ইনস্টল করতে চাই যেখানে আমার রুট অ্যাক্সেস নেই। আমি ইতিমধ্যে libevent কম্পাইল করুন এবং এটি ইনস্টল করা $HOME/.bin-libeventএবং এখন আমি tmux কম্পাইল করতে চাই, কিন্তু কনফিগার সবসময় দিয়ে শেষ হয় configure: error: "libevent not found", যদিও আমি libevent ডিরেক্টরি নির্দেশ করার চেষ্টা করে Makefile.amপরিবর্তন করে LDFLAGSএবং CPPFLAGS, কিন্তু কিছুই কাজ মনে হয়।

আমি কীভাবে সিস্টেমটিকে আমার বাড়ির দির মুক্তির জন্য দেখতে বলব?


একটি বিকল্প dtach তদন্ত করা হয় । আপনি যখন আলাদা করতে পারবেন সেশনগুলি চান তখন সহজ তবে আপনার মূল নেই এবং স্ট্যাটিকালি tmux সংকলনের সময় নেই।
সোনিয়া হ্যামিল্টন

আপনি যদি RHEL 6.x এ থাকেন তবে রেপোসে একটি প্রাক-সংকলিত টেমাক্স থাকে।
চিলি

উত্তর:


63

চেষ্টা করুন:

DIR="$HOME/.bin-libevent"
./configure CFLAGS="-I$DIR/include" LDFLAGS="-L$DIR/lib"

(আমি নিশ্চিত autoconf সঙ্গে গ্রন্থাগার পাথ কনফিগার করতে একটি ভাল উপায় হতে হবে নই। সাধারণত আছে --with-libevent=dirবিকল্প। কিন্তু এখানে, মনে এমন কোনো বিকল্প নেই।)


4
এটি এমন পদ্ধতির যা makeশেষ পর্যন্ত কাজ করে। আমি অন্য এনভায়রনমেন্ট ভেরিয়েবলের মান স্থাপনার চেষ্টা এবং সেটিং prefixএবং exec-prefix, কিন্তু একবার আমি অন্তর্ভুক্ত এই পতাকার আসলে সামগ্রী নির্মিত হয়।
উইজোনসোলিউশন

আমি কীভাবে পতাকাগুলির জন্য একাধিক ডিরেক্টরি উল্লেখ করব? আমি চেষ্টা করেছি ./configure CFLAGS="-I$DIR/include:/usr/otherdir" LDFLAGS="-L$DIR/lib:/usr/otherdir"কিন্তু কোনও সাফল্য নেই
lucaswxp

1
@ লুকাশওয়ক্সCFLAGS="-Idir1 -Idir2 -Idir3" LDFLAGS="-Ldira -Ldirb -Ldirb"
কুসালানন্দ

আমি এই উত্তর ব্যবহার করা হয় এবং libevent not foundত্রুটি চলে গেল, কিন্তু এখন আমি সঙ্গে একই পেতে ncurses: curses not found। আমার libeventপাশাপাশি ncursesইনস্টলেশনগুলি উভয়ই$HOME/.local/
এলোক

জন্য libevent, ব্যবহার করুন LIBEVENT_CFLAGSএবং LIBEVENT_LIBSপরিবর্তে CFLASGএবং LDFLAGS। জন্য ncurse, ব্যবহার LIBTINFO_CFLAGSএবং LIBTINFO_LIBS@Aalok
Jongsu লিয়াম কিম

9

আমি একই ধরণের সমস্যা পেয়েছি এবং আবিষ্কার করেছি যে দৌড়ানোর পরে sudo yum install libevent-develআমি সফলভাবে tmux তৈরি করতে এবং ইনস্টল করতে সক্ষম হয়েছি।

সম্পাদনা: আপনি যদি এটি কোনও রেড হ্যাট মেশিনে ইনস্টল করছেন তবে আপনাকে রেড হ্যাট নেটওয়ার্কে আপনার সার্ভারের জন্য চ্যানেল নির্বাচনগুলি দেখতে এবং RHEL সার্ভার ELচ্ছিক চ্যানেল যুক্ত করতে হবে। এটি আপনাকে মুক্তির জন্য উন্নত প্যাকেজগুলিতে অ্যাক্সেস দেবে (বেস এবং পরিপূরক চ্যানেলগুলি এটি সরবরাহ করে না)।


3
এটি ঠিক করার সাধারণ উপায় এটি হবে তবে এই ক্ষেত্রে এটি ছিল "এমন একটি মেশিন যেখানে আমার রুট অ্যাক্সেস নেই"
মাইকেল মরোজেক

এটি আমাকে সাহায্য করেছিল। আমি রুট ছিলাম না এবং আমি ডেভেল লিব ইনস্টল করি নি।
পলিম

আপনি কোথায় ডার ফাইল হিসাবে ডেভেল লিব পাবেন?
অ্যারিল 12

1
আমার ফেডোরা মেশিনের জন্য, আমাকে সুডো ইয়াম ইনস্টল করার জন্য এনসিওরেস-ডেভেলও দরকার ছিলো - সুডুম ইয়াম ইন্সট্রেশন অব ডেভলভেন্ট-ডেভেল
মুস্তাকিমুর রহমান

6

আমার একই সমস্যাটি আরএইচএল 5.4 এ ছিল এবং প্রকৃতপক্ষে পাওয়া গেছে লিভেন্ট ইনস্টল করা আছে তবে কোনও লিভেন্ট নেই। সিমলিংক নেই, কেবল গ্রন্থাগারের আসল সংস্করণ:

/usr/lib64/libevent-1.1a.so.1
/usr/lib64/libevent-1.1a.so.1.0.2

সুতরাং, ln -s /usr/lib64/libevent-1.1a.so.1 /usr/lib64/libevent.soকোনও কিছু ইনস্টল বা পরিবর্তনের প্রয়োজন ছাড়াই আমার পক্ষে বেশ ভাল কাজ করে। রেডহ্যাটের মুক্তি পেল আরএমপি কেন এই সিমলিংক তৈরি করল না। কোনও বাগ রিপোর্ট করতে পারে?

কিন্তু এখন, এটা এই জন্য অভিযোগকারী আছে: error: event.h: No such file or directory


আমি একই সঠিক ত্রুটিটি পেয়েছিলেন: error: event.h: No such file or directory
gkb0986

আমি আরএইচইএল 6 এ আছি, এবং আমি কেবল ডাউনলোড এবং সংকলন মুক্তির এটি একটি ব্যবহারকারীর ফোল্ডারে ইনস্টল করেছি। তারপরে আমি এটি সংকলন পেতে উপরে @ স্টাফেন গিমেনেজের কৌশল ব্যবহার করেছি। চলমান করার জন্য, আমি @rozcietrzewiacz কর্তৃক প্রদত্ত LD_PRELOAD কৌতুক সঙ্গে alias লেখা: tmux='LD_PRELOAD=/opt-local/lib/libevent-2.0.so.5 /opt-local/bin/tmux'। একটি যাদুমন্ত্র মত কাজ করে!
csl

1
যদি আপনি নিজেকে সিস্টেমের ডিরেক্টরিগুলিতে সিমলিংকগুলির সাথে চারপাশে গোলযোগ বা ম্যানুয়ালি জিনিসগুলি অনুলিপি করে দেখেন তবে এটি করার আরও ভাল উপায় আছে।
কুসালানন্দ

3

Tmux (বা যে কোনও প্রোগ্রাম) কনফিগারেশন এবং সংকলনের আগে আপনাকে এটি জানাতে হবে যেখানে এটি প্রয়োজনীয় লাইব্রেরিগুলি খুঁজে পেতে পারে। যদি আপনি কোনও মানহীন স্থানে কিছু লাইব্রেরি ইনস্টল করেন তবে আপনি পরিবেশের পরিবর্তনশীলটি ব্যবহার করতে পারেন LD_LIBRARY_PRELOAD, কিছু লাইব্রেরি কোথায় রয়েছে তা বলার জন্য।

আমি আপনার ক্ষেত্রে:

$ export LD_LIBRARY_PRELOAD=$HOME/.bin-libevent/lib

এবং তারপরে কনফিগারেশন / সংকলনটি নিয়ে যান।

পরবর্তীতে, বাইনারিটিকে আপনার অতিরিক্ত গ্রন্থাগারগুলি কোথায় পাওয়া যাবে তাও জানতে হবে, সুতরাং আপনার exportবিবৃতিটি আপনার মধ্যে রাখতে হবে .bashrc(যদি বাশ আপনার লগইন শেল হয়)।


ধন্যবাদ, তবে দুঃখের বিষয় এটি কার্যকর হয় না, একই ত্রুটি বার্তা। সংস্করণ নম্বরটি লভেন্ট -২.০.১২ যা কাজ করা উচিত
ভোলার

তারপরে মনে হচ্ছে আপনার মুক্তির সংকলনটিতে সমস্যা আছে। কি find .bin-libevent -name 'libevent.so*'দেখায়?
রোজিট্রিজেভিয়াকজ

$ find .bin-libevent -name 'libevent.so*'সন্ধান করুন.bin-libevent/lib/libevent.so
ভলকার

:) তারপরে আপনার ডিরেক্টরিটি নির্দেশ করা উচিত $HOME/.bin-libevent/lib(উত্তরটি আপডেট করুন)
রোজসিটারজেভিয়াকজ

হ্যাঁ, আমি আশঙ্কা করছি আমি ইতিমধ্যে এটি চেষ্টা করেছি, এখনও কোনও পরিবর্তন নেই। আমি বেশ হতবাক এবং হতাশ।
ভোলার

1

Https://gist.github.com/ryin/3106801 এ একটি বক্তব্য রয়েছে :

#!/bin/bash

# Script for installing tmux on systems where you don't have root access.
# tmux will be installed in $HOME/local/bin.
# It's assumed that wget and a C/C++ compiler are installed.

# exit on error
set -e

TMUX_VERSION=1.8

# create our directories
mkdir -p $HOME/local $HOME/tmux_tmp
cd $HOME/tmux_tmp

# download source files for tmux, libevent, and ncurses
wget -O tmux-${TMUX_VERSION}.tar.gz http://sourceforge.net/projects/tmux/files/tmux/tmux-${TMUX_VERSION}/tmux-${TMUX_VERSION}.tar.gz/download
wget https://github.com/downloads/libevent/libevent/libevent-2.0.19-stable.tar.gz
wget ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz

# extract files, configure, and compile

############
# libevent #
############
tar xvzf libevent-2.0.19-stable.tar.gz
cd libevent-2.0.19-stable
./configure --prefix=$HOME/local --disable-shared
make
make install
cd ..

############
# ncurses  #
############
tar xvzf ncurses-5.9.tar.gz
cd ncurses-5.9
./configure --prefix=$HOME/local
make
make install
cd ..

############
# tmux     #
############
tar xvzf tmux-${TMUX_VERSION}.tar.gz
cd tmux-${TMUX_VERSION}
./configure CFLAGS="-I$HOME/local/include -I$HOME/local/include/ncurses" LDFLAGS="-L$HOME/local/lib -L$HOME/local/include/ncurses -L$HOME/local/include"
CPPFLAGS="-I$HOME/local/include -I$HOME/local/include/ncurses" LDFLAGS="-static -L$HOME/local/include -L$HOME/local/include/ncurses -L$HOME/local/lib" make
cp tmux $HOME/local/bin
cd ..

# cleanup
rm -rf $HOME/tmux_tmp

echo "$HOME/local/bin/tmux is now available. You can optionally add $HOME/local/bin to your PATH."

1
আমার কাছে কাস্টম স্থানে অভিশাপগুলিও ইনস্টল ছিল (আমি টার্গেট সিস্টেমে প্রশাসক নই) এবং বুঝতে পারিনি যে এটি ncursesআপনার দ্বারা নির্দিষ্ট করা / লাইব্রেরি পাথের সাবডাইরেক্টরিতে ইনস্টল করে । বিজোড় নকশা পছন্দ। এটি আমার জন্য এটি স্থির করে দিয়েছে।
wbadart

0

আমারও একই সমস্যা আছে এবং মনে হয় সর্বাধিক উত্সাহিত উত্তর আমার পক্ষে কাজ করে নি। আমি ফেডোরা 22 ওয়ার্কস্টেশন ব্যবহার করছি। এটি ঠিক করার জন্য আমি যা করেছি তা এখানে: 1 libevent-develপ্যাকেজ ইনস্টল করুন । ২. ncurses-develপ্যাকেজ ইনস্টল করুন

$ dnf install libevent-devel`
$ dnf install ncurses-devel

প্রথমটি কোনও event.hসমস্যার সমাধান করবে এবং দ্বিতীয়টি সমাধান করবে শাপের সমস্যাটি খুঁজে পাবে না। বিটিডাব্লু, উপরের সফটলিঙ্ক পদ্ধতিটিও আমার জন্য কাজ করে ./configure


কেন এটি নিম্নচালিত হয়েছে তা নিশ্চিত নয়। এটি আমার জন্য সেন্টোস সিস্টেমে সমস্যাটি স্থির করেছে।
ধর্মিত

0

গৃহীত উত্তরটি ভাল, তবে কমপক্ষে tmux 2.8 হিসাবে পরিবেশের ভেরিয়েবলগুলি ব্যবহার করে মুক্ত অবস্থান নির্দিষ্ট করার জন্য সমর্থন রয়েছে।

প্রথমে কাঙ্ক্ষিত স্থানে লিভভেন্ট ইনস্টল করুন। আমি cmake ব্যবহার করেছি কারণ আমার অটোকনফের সমস্যা ছিল

cmake -DCMAKE_INSTALL_PREFIX=$HOME/usr ..
make install

তারপরে tmux বিল্ড এবং ইনস্টল করুন:

export LIBEVENT_CFLAGS=-I${HOME}/usr/include 
export LIBEVENT_LIBS="-L${HOME}/usr/lib -levent" 
./configure --prefix=$HOME/usr
make install

পরিবেশ পরিবর্তনশীল LIBEVENT_CFLAGSওভাররাইডগুলির pkg-configমধ্যে মুক্তির জন্য সেটিংস অন্তর্ভুক্ত থাকে এবং LIBEVENT_LIBSলিঙ্কার পতাকা সেটিংস ওভাররাইড হয়।


-3

CentOS 6 এ, /opt/libeventকমান্ডটি সহ ডিরেক্টরিতে লিভেন্টটি সংকলন এবং ইনস্টল করুন :

# ./configure --prefix=/opt/libevent
# make
# make install

তারপরে, আমার আবেদনটি ইনস্টল করুন (এক্ষেত্রে পিজবাউনসার ছিল)

# ./configure --prefix=/opt/ *--with-libevent=/opt/libevent/*

ডিরেক্টরিগুলি আপনি যেখানেই চান পরিবর্তন করতে পারবেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.