jemalloc और अन्य त्रुटियां सेंटीस पर redis 6.4


41

मैं रेडिस के साथ एक नया, समर्पित, सेंटोस 6.4 सिस्टम स्थापित कर रहा हूं। मैंने कई बार रेडिस लगाए हैं, लेकिन इस मुद्दे को कभी नहीं मारा है (और इससे पहले कभी भी सेंटोस 6.4 पर नहीं था)।

cd redis-2.6.16
sudo make install

त्रुटि:

MAKE jemalloc
cd jemalloc && ./configure --with-lg-quantum=3 --with-jemalloc-prefix=je_ --enable-cc-silence CFLAGS="-std=gnu99 -Wall -pipe -g3 -O3 -funroll-loops " LDFLAGS=""
/bin/sh: ./configure: Permission denied
make[2]: *** [jemalloc] Error 126
make[2]: Leaving directory `/tmp/redis32/redis-3.2.6/deps'
make[1]: [persist-settings] Error 2 (ignored)


    sh: ./mkreleasehdr.sh: Permission denied
and later:
    zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
    zmalloc.h:55:2: error: #error "Newer version of jemalloc required"

जब मैं सीधे jemalloc (रेडिस टारबॉल के / src क्षेत्र से) बनाने की कोशिश करता हूं, तो अन्य त्रुटियों में शामिल हैं:

cd src && make jemalloc
sh: ./mkreleasehdr.sh: Permission denied
make[1]: Entering directory `/tmp/rediswork/redis-2.6.16/src'
make[1]: *** No rule to make target `jemalloc'.  Stop.
make[1]: Leaving directory `/tmp/rediswork/redis-2.6.16/src'
make: *** [jemalloc] Error 2

मैं भी 2.6.7 redis की कोशिश की और एक ही मुद्दा है।

मैंने सभी को खोद डाला है और आगे कोई रास्ता नहीं मिल रहा है।


जवाबों:


100

मैं 6.4 अंक पर एक ही मुद्दे में भाग गया और निम्नलिखित आदेशों को चलाना पड़ा:

cd deps
make hiredis jemalloc linenoise lua geohash-int
cd ..
make install

मुझे यकीन नहीं है कि डिप्स क्यों नहीं बने, मुझे लगा कि वे अतीत में थे। हालाँकि, यह मुझे मिला और लाल रंग के संस्करण के साथ चल रहा था जिसकी मुझे ज़रूरत थी।


1
धन्यवाद, यह मेरे लिए EC2 पर एक सेंटोस 6.4 उदाहरण पर काम किया।
TheTuxRacer

2
अद्यतन: यह काम किया unset ARCH; make hiredis:। से github.com/redis/hiredis-rb/issues/2
डैनियल

1
मेरे लिए सेंटोस 7. पर काम किया
विचार

1
Ubuntu 16.04 EC2 उदाहरण में एक आकर्षण की तरह काम किया
कार्तिकेयन

1
उबंटू 18.04 पर एक ही मुद्दा और इस फिक्स ने मेरे लिए भी काम किया
केविन हुक

78

गुम पैकेज (gcc) के कारण पहली विफलता के बाद मेरी भी यही त्रुटियाँ थीं।
इसलिए जीसीसी स्थापित करने के बाद, एक और makeप्रयास ने ये त्रुटियां दीं:

zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"

ये त्रुटियां पहले makeकमांड की विफलता के बाद यहां छोड़ी गई कुछ फाइलों के कारण हुई थीं । जाहिर है मुझे इन फाइलों को कमांड से साफ करना था:

make distclean  

और फिर makeफिर, और यह काम किया।

स्रोत: https://groups.google.com/forum/# .topic/ redis- db/ -guYpX2OCSk


इसने मेरे लिए Ubuntu 14.04.2 LTS पर काम किया। मेरे पास एक ही परिदृश्य था: makeस्थापित करने से पहले दौड़ा build-essentialऔर tcl8.5
नाथन एल्डनश्र्र

मेरे लिए काम नहीं किया
डैनियल

4

इस प्रणाली /tmpपर मुहिम शुरू की गई थी noexec

रेडिस /tmpअपनी स्थापना के दौरान से कई शेल स्क्रिप्ट चलाता है , इसलिए समाधान ध्वज के /tmpबिना रिमाउंट करना है noexec। यह अस्थायी रूप से होता है:

mount -o remount,exec /tmp

मुझे यह जोड़ना चाहिए कि यह समाधान सभी रेडिस पर लागू होता है 2.x और 3.x संस्करण (4.x मेरे लिए अज्ञात है)


1
नरक में यह कैसे आप सवाल में पोस्ट त्रुटि को हल करता है ?!
माइकल हैम्पटन

अरे, मुझे नहीं पता। लेकिन मुझे पता है कि मैं जिस तकनीक के साथ काम कर रहा हूं, उसका सुझाव दिया है, और यह हल किया। मैंने कई बार रेडिस को स्थापित / निर्मित किया है, और इस मुद्दे को पहले कभी नहीं मारा है।

@Michael Hampton कुछ त्रुटियों के दौरान "एक्सेस अस्वीकृत" त्रुटियां हैं। पोस्ट की गई त्रुटि पहली त्रुटि है (मेरा मानना ​​है कि, मेक आउटपुट लूंग है)।

4
आपको पूरा आउटपुट पोस्ट करना चाहिए था। यह सवाल और जवाब पूरी तरह से कोई मतलब नहीं है।
माइकल हैम्पटन

क्या ऐसा हो सकता है कि प्रश्न 32 वें में प्रणाली? @ मायकिल हैम्पटन उस मामले में, 32 बिट बनाने का प्रयास करें।
रोमन एम

1

क्या आपने उस पैकेज को स्थापित करने का प्रयास किया जिसके लिए उसने पूछा था?

yum install jemalloc-devel

यह ईपीईएल रिपॉजिटरी में पाया जा सकता है, जिसे आपको पहले ही अपने सेंटोस सिस्टम में जोड़ा जाना चाहिए।

यह सोचने के लिए आओ, redisEPEL में भी है ...


हाँ, मैंने कोशिश की कि .... मदद नहीं की .... समाधान ऊपर है।

1

आरएचईएल-6.6 पर रेडिस 3.0.2 के लिए इसे हल किया गया है:

Redis स्थापित निर्देशिका से,

  1. भागो ./deps/update-jemalloc.sh 3.6.0(जहां 3.6.0 jemalloc का नवीनतम संस्करण है जो इस लेखन के रूप में Redis 3.0.2 के साथ काम करता है)

  2. रन make distclean && make


1

ऐसा गंदे मेक फाइल के कारण होता है ताकि रन करने से पहले

$ sudo make  

इसे चलाओ:

$ make distclean

यकीन है कि यह सभी निर्भरता को हल करेगा।


0

वही समस्या जो मुझे मिली जब CentOS-6.6x86 पर redis-3.0.0 बनाते हैं, इसे बनाने की कोशिश करते हैं।

make MALLOC=libc

0

मैं इस मुद्दे के बाद मैं निर्माण के माध्यम से भाग को मार डाला और इसे फिर से बनाने की कोशिश की थी। make cleanमदद नहीं की तो मैं निर्देशिका nuked और शुरू कर दिया है, और यह ठीक संकलित।


0

पहली बार, redis.<version>.tar.gzमेक से फाइल निकालने के बाद, क्योंकि कोई gcc स्थापित नहीं हुआ था:

gcc: Command not found

इसलिए मैंने जीसीसी स्थापित किया:

sudo yum install gcc-c++

फिर मैंने मेक को फिर से चलाया, मुझे प्राप्त हुआ:

zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"

मैंने रेडिस अतिरिक्त फ़ोल्डर को हटा दिया और इसे फिर से निकाल दिया redis.<version>.tar.gz। इस बार स्थापित किया गया है, जब मैं चलाता हूं तो सब कुछ सफलतापूर्वक चला गया make। मैंने अंदर से निकाली रेडिस निकाली निर्देशिका:

sudo make install
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.