ओपनएसएसएल और रीडलाइन समर्थन के साथ रूबी 2.0 स्थापित करें


12

मेरे पास एक नया उबंटू 12.04 VM है, और मैं रूबी 2.0.0-p0 स्थापित करना चाहूंगा। मैं रूबी को आसानी से स्थापित करने में सक्षम हूं, लेकिन मैं काम करने के लिए रत्न प्राप्त करने में असमर्थ हूं।

$ gem install bundler
ERROR:  Loading command: install (LoadError)
cannot load such file -- openssl
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

मेरे पास खुला एसएसएल स्थापित है, इसलिए मुझे यकीन नहीं है कि समस्या क्या है।

$ sudo apt-get install libssl1.0.0 libssl-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libssl-dev is already the newest version.
libssl1.0.0 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

इसी तरह,

$ which openssl
/usr/bin/openssl

यदि मैं स्थापना पर वापस जाता हूं, तो दो लाइनें हैं जो मुझे चिंतित करती हैं।

$ sudo make install
Failed to configure openssl. It will not be installed.
Failed to configure readline. It will not be installed.

धन्यवाद!

जवाबों:


9

अपने स्रोत स्थान में, cd ext/opensslऔर फिर ruby extconf.rb। यह एक्सट / ओपनसीएल डायरेक्टरी में मेकफाइल जेनरेट करेगा । बस make && sudo make installमाणिक ओपनसेल एक्सटेंशन के निर्माण के लिए , और .so को उचित स्थान पर स्थापित करें।

ext/readlineरीडलाइन समर्थन के लिए Ditto ।

फिर आपको makeठीक से माणिक्य करने में सक्षम होना चाहिए ।

संपादित करें : यदि मैं पर्याप्त स्पष्ट नहीं था तो:

pushd ext/openssl
ruby extconf.rb
make && sudo make install
popd

pushd ext/readline
ruby extconf.rb
make && sudo make install
popd

make
sudo make install

1
नोट: यह उत्तर मैन्युअल रूप से रूबी और उसके विस्तार मॉड्यूल को बनाने और स्थापित करने के लिए है। शुद्ध उपयुक्त-आधारित उत्तर के लिए @ क्रिस-डी का उत्तर देखें।
मैटी के।

1
मैं तीसरी पंक्ति पर अटक गया, करने की कोशिश कर makeमें ext/openssl: *** No rule to make target '/include/ruby.h', needed by 'ossl.o'. Stop.यही बात के लिए ext/readline
ZX9

@ ZX9 मुझे भी यही समस्या थी, यहाँ समाधान ने मेरे लिए काम किया।
गुड़

5

मैं एक ही मुद्दे में भाग गया, मुझे निम्नलिखित दो पैकेज स्थापित करने थे

libssl-dev
libreadline-dev 

वास्तव में मैंने पाया कि मुझे रूबी 2.0.0 प्राप्त करने के लिए निम्नलिखित पैकेजों को स्थापित करना पड़ा और 9.2 के बाद ubuntu 13.04 पर संकलन करने के लिए ओपनसेल और रीडलाइन के साथ स्थापित करना पड़ा, इसलिए मैंने सोचा कि मैं उन्हें साझा करूंगा

sudo apt-get -y update
sudo apt-get install -y make g++
sudo apt-get install -y curl git-core python-software-properties
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev
sudo apt-get install -y libgdbm-dev libreadline6-dev libncurses5-dev
sudo apt-get install -y libpq-dev libffi-dev

3

मेरे लिए यह गुम निर्भरताओं का मामला था।

मुझे लगता है कि मुझे माणिक स्थापित करने के लिए सभी निर्भरताएं थीं, लेकिन मुझे भी एक ओपनएसएसएल और रीडलाइन त्रुटि मिल रही थी।

मैंने रूबी के साथ रूबी को स्थापित करने का प्रयास किया जो बिना रूट विशेषाधिकार के विफल हो गया लेकिन मुझे लापता निर्भरता की सूची दी। फिर मैंने एक पैकेज मैनेजर के साथ निर्भरताएं स्थापित कीं। मैं फिर शुरू से स्रोत से रूबी स्थापित करने का प्रयास किया, और सब कुछ ठीक काम किया

निर्भरताएँ जो गायब थीं, मेरे लिए थीं:

patch libyaml-devel autoconf gcc-c++ readline-devel libffi-devel openssl-devel automake libtool bison sqlite-devel

लेकिन वे आपके लिए अलग हो सकते हैं।

अद्यतन: मुझे मूल रूप से याद नहीं है कि वास्तव में मुझे यह सूची कहां से मिली, लेकिन एक त्वरित खोज ने निम्नलिखित पृष्ठों पर समान सूची पाई, जो आपकी मदद भी कर सकती है:

https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-on-centos-6-with-rvm

http://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/install-ruby-on-rails-on-centos-ubuntu-fedora-from-source.html


0

रूबी 2.0 स्थापित करते समय, यह संभव है कि रूबीज 2.0 इंस्टॉलेशन ठीक नहीं हुआ, क्योंकि ओपनसेल। सुनिश्चित करें कि आप खुलता config फाइल के लिए एक वैध मार्ग प्रदान करते हैं; आप ऐसा कर सकते हैं:

find . -type f -name "openssl.cnf"

पथ आमतौर पर $ HOME / .rvm / usr या $ HOME / .rvm / usr / ssl है

फिर

[sudo] rvm reinstall ruby-2.0.0-p0 --with-openssl-dir=[openssl.cnf path] --verify-downloads 1

सुनिश्चित करें कि माणिक्य स्थापना सफलतापूर्वक पूरी हो गई है। पुनर्स्थापना के बिना उस पथ को ठीक करने का एक बेहतर तरीका हो सकता है, लेकिन इसे ऐसा करना चाहिए।


1
मैं RVM या RBENV के बिना इंस्टॉल करने की कोशिश कर रहा हूं। सिर्फ स्रोतों से संकलन। इसलिए ./configure, बनाओ, और स्टेप्स स्थापित करो। फिर भी आपका धन्यवाद।
जराट मेयर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.