জেমলোক এবং অন্যান্য ত্রুটিগুলি সেন্টোস 6.4 এ পুনরায় তৈরি করে


41

আমি redis সহ একটি নতুন, উত্সর্গীকৃত, সেন্টোস 6.4 সিস্টেম স্থাপন করছি। আমি অনেকবার রেডিস ইনস্টল করেছি, তবে এই সমস্যাটি কখনই আঘাত করে নি (এবং এর আগে cent.৪ এর আগে কখনও সেন্টোতে আসেনি)।

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"

আমি যখন সরাসরি জেমমলোক তৈরি করার চেষ্টা করি (রেডিস টারবালের / এসসিআর অঞ্চল থেকে), অন্যান্য ত্রুটিগুলির মধ্যে রয়েছে:

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 এ পুনরায় চেষ্টা করেছি এবং একই সমস্যা আছে।

আমি সমস্ত খনন করেছি এবং সামনে আর কোনও পথ খুঁজে পাচ্ছি না।


উত্তর:


100

আমি সেন্টো 6.4 এ একই ইস্যুতে দৌড়েছি এবং নিম্নলিখিত কমান্ডগুলি চালাতে হয়েছিল:

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

আমি নিশ্চিত না যে ডিপগুলি যেখানে নির্মিত হয়নি, আমি ভেবেছিলাম তারা অতীতে ছিল। যাইহোক, এটি আমার উঠেছে এবং আমার প্রয়োজনীয় রেডিস সংস্করণটি নিয়ে চলছে।


1
ধন্যবাদ, এটি ইসি 2 এর 6.4 উদাহরণে আমার পক্ষে কাজ করেছে।
TheTuxRacer

2
আপডেট করুন: এই কাজ: unset ARCH; make hiredisGithub.com/redis/hiredis-rb/issues/2
ড্যানিয়েল

1
সেন্টোস 7 এ আমার জন্য কাজ করেছেন
ধারণা

1
উবুন্টুতে 16.04 ইসি 2 উদাহরণের মতো মনোমুগ্ধকর কাজ করেছেন
কার্তিতেকিয়ান

1
উবুন্টু 18.04 এ একই সমস্যা এবং এই ফিক্সটি আমার পক্ষেও কাজ করেছিল
কেভিন হুক

78

অনুপস্থিত প্যাকেজ (জিসিসি) দ্বারা সৃষ্ট প্রথম ব্যর্থতার পরে আমার একই ত্রুটি ছিল।
সুতরাং জিসিসি ইনস্টল করার পরে, অন্য একটি 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


এটি আমার জন্য উবুন্টু 14.04.2 এলটিএসে কাজ করেছে। আমার একই দৃশ্য ছিল: makeইনস্টল করার আগে দৌড়েছিল build-essentialএবং tcl8.5
নাথানএলডেনএসআর

আমার জন্য কাজ করেনি
ড্যানিয়েল

4

এই সিস্টেমে /tmpমাউন্ট করা হয়েছিল noexec

রেডিস /tmpতার ইনস্টল করার সময় থেকে প্রচুর শেল স্ক্রিপ্ট পরিচালনা করে, তাই সমাধানটি পতাকা /tmpছাড়াই পুনঃনির্মাণ করা noexec। এটি সাময়িকভাবে এটি করে:

mount -o remount,exec /tmp

আমার যুক্ত করা উচিত যে এই সমাধানটি সমস্ত redis 2.x এবং 3.x সংস্করণে প্রযোজ্য (4.x আমার কাছে অপরিচিত)


1
আপনি যে প্রশ্নটিতে পোস্ট করেছেন ত্রুটিটি কীভাবে এই সমস্যার সমাধান করবে ?!
মাইকেল হ্যাম্পটন

আরে, আমি জানি না। তবে আমি জানি যে আমি যে কোনও প্রযুক্তি নিয়ে কাজ করছি এটি এটির প্রস্তাব দিয়েছে এবং এটি সমাধান করেছে। আমি বেশ কয়েকবার redis ইনস্টল / বিল্ট করেছি এবং এর আগে কখনও এই সমস্যাটিকে আঘাত করি নি।

@ মিশেলহ্যাম্পটন কিছু ত্রুটিগুলি মেক করার সময় "অ্যাক্সেস অস্বীকৃত" ত্রুটি। ত্রুটি পোস্ট করা হ'ল প্রথম ত্রুটি (আমার বিশ্বাস, মেক আউটপুটটি লুওং হয়)।

4
আপনার সম্পূর্ণ আউটপুট পোস্ট করা উচিত ছিল। এই প্রশ্নোত্তর একসাথে একেবারে কোনও অর্থ দেয় না।
মাইকেল হ্যাম্পটন

এটি কি প্রশ্নে 32 বিটের সিস্টেমটি হতে পারে? @ মিশেলহ্যাম্পটন সেক্ষেত্রে 32 বিট বানানোর চেষ্টা করুন।
রোমান এম

1

আপনি যে প্যাকেজটি চেয়েছিলেন সেটি ইনস্টল করার চেষ্টা করেছিলেন?

yum install jemalloc-devel

এটি EPEL সংগ্রহস্থলে পাওয়া যাবে, যা আপনার CentOS সিস্টেমে ইতিমধ্যে যুক্ত করা উচিত ছিল।

এটি ভাবতে আসুন, redisইপিইএলেও রয়েছে ...


হ্যাঁ, আমি চেষ্টা করেছিলাম .... সাহায্য হয়নি .... সমাধান উপরে রয়েছে।

1

এটি RHEL-6.6 এ রেডিস 3.0.2 এর জন্য নিম্নলিখিতভাবে সমাধান করা হয়েছে:

রেডিস ইনস্টল ডিরেক্টরি থেকে,

  1. রান ./deps/update-jemalloc.sh 3.6.0(যেখানে 3.6.0 হ'ল জেমলোকের সর্বশেষতম সংস্করণ যা এই লেখার মতো রেডিস 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: 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"

আমি রেডিস এক্সট্রা ফোল্ডারটি সরিয়ে নিয়ে আবার এটি থেকে বের করে নিয়েছি gএবার জিসিসি redis.<version>.tar.gzইনস্টল হওয়া থেকে , আমি চালানোর সময় সবকিছু সফলভাবে চলে গেল make। আমি রেডিস এক্সট্রাক্ট ডিরেক্টরিটির ভিতরে থেকে ছুটেছি:

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