साझा पुस्तकालयों को लोड करते समय त्रुटि: libcrypto.so.1.1


13

जब मैं "ओप्सनल" चलाता हूं तो मुझे नीचे के रूप में एक त्रुटि मिल रही है:

खुलता है: साझा किए गए पुस्तकालयों को लोड करते समय त्रुटि: libcrypto.so.1.1: साझा की गई वस्तु फ़ाइल नहीं खोल सकता है: ऐसी कोई फ़ाइल "निर्देशिका" नहीं

यह इस लेख के अनुसार ओपनएसएसएल को अपडेट करने के प्रयास के बाद हुआ

क्या इसको ठीक करने का कोई तरीका है?

OS: CentOS 6.8 वेब सर्वर: nginx / 1.10.2

# 1 अपडेट करें:

[root@host ~]# yum info openssl
Installed Packages
Name        : openssl
Arch        : x86_64
Version     : 1.0.1e
Release     : 48.el6_8.3
Size        : 4.0 M
Repo        : installed
From repo   : system-updates
Summary     : A general purpose cryptography library with TLS implementation
URL         : ***
License     : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
            : between machines. OpenSSL includes a certificate management tool and
            : shared libraries which provide various cryptographic algorithms and
            : protocols.

Available Packages
Name        : openssl
Arch        : i686
Version     : 1.0.1e
Release     : 48.el6_8.3
Size        : 1.5 M
Repo        : system-updates
Summary     : A general purpose cryptography library with TLS implementation
URL         : ***
License     : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
            : between machines. OpenSSL includes a certificate management tool and
            : shared libraries which provide various cryptographic algorithms and
            : protocols.

2
क्षमा करें, आप अभी तक एक और खराब इंटरनेट ट्यूटोरियल में भाग चुके हैं। आपको सिस्टम को पुनर्स्थापित करना पड़ सकता है। आगे बढ़ने से पहले, मैं आपको सुझाव देता हूं कि आप उस मूल समस्या के बारे में पूछें जिसे आप ऐसा करके हल करना चाह रहे थे। मूल लक्ष्य को पूरा करने का एक बेहतर तरीका शायद है।
माइकल हैम्पटन

मैं Monitis द्वारा प्रदान किए गए सर्वर मॉनिटर एप्लिकेशन को स्थापित करना चाहता था। इसे कुछ साझा पुस्तकालय निर्भरता की आवश्यकता थी जो मेरे सर्वर में स्थापित नहीं थी। इसलिए, यह सब तब हुआ जब इसे स्थापित करना था। :(
mayasl

@Michael Hampton कृपया सिस्टम को फिर से स्थापित करने के अलावा मुझे कुछ बताएं। क्योंकि उस सर्वर पर एक लाइव साइट चल रही है!
मायास्ल

जवाबों:


20

मैं openssl 1.1.0c के अंतिम संस्करण को स्थापित करने के बाद ही समस्या हो रही थी, मैं इस मुद्दे पुस्तकालय फाइलों को कॉपी करने का संकल्प libcrypto.so.1.1, libcrypto.aऔर libssl.soसे /usr/local/lib64पर शेयर पुस्तकालय के लिए /usr/lib64
पुस्तकालयों की प्रतिलिपि बनाने के बाद आपको प्रतीकात्मक लिंक बनाने की आवश्यकता होती है।

ln -s libcrypto.so.1.1 libcrypto.so
ln -s libssl.so.1.1 libssl.so

प्रतीकात्मक लिंक के निर्माण के बाद ldconfig कैश का पुनर्निर्माण आवश्यक था:

sudo ldconfig

8

ओपनएसएसएल के आपके मूल संस्करण के साथ यह पता था कि साझा किए गए लिबास को कैसे खोजना है क्योंकि /usr/lib64लिंकर के खोज पथ में शामिल है। जब आपने ओपनएसएसएल की "स्थानीय" प्रतिलिपि डाउनलोड और संकलित की, तो साझा किए /usr/local/lib64गए काम डिफ़ॉल्ट रूप से किए गए थे । तो आपको शायद इस निर्देशिका को लिंकर के खोज पथ में जोड़ने की जरूरत है, इस तरह (रूट के रूप में):

echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf

फिर निष्पादित करें:

ldconfig

मुझे विश्वास है कि यह आपके मुद्दे को हल कर देगा।


कम से कम आधुनिक उबंटू वितरण में (मैं इसे 16.04 एलटीएस पर लिख रहा हूं) और शायद अन्य, sudo echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.confपरिणामस्वरूप "अनुमति अस्वीकृत" त्रुटि होगी क्योंकि कमांड का दूसरा भाग (फ़ाइल लिखना) रूट के रूप में निष्पादित नहीं किया गया है। यदि ऐसा होता है, तो sudo sh -c "echo '/usr/local/lib64' >> /etc/ld.so.conf.d/openssl.conf"इसके बजाय प्रयास करें ।
मैथ्यू कोल

3

मैं ChromeOS पर Termux का उपयोग कर इस त्रुटि है, जो की वजह से मिला है npmऔर nodeकमांड लाइन कार्यक्रमों के क्रैश होने का।

चल रहा pkg upgradeहै समस्या तय!


1

आप इसका उपयोग करके पुन: स्थापित कर सकते हैं

yum install -y openssl-devel


मैंने भी कोशिश की, लेकिन मदद नहीं की!
मायाशल

@mayasl शायद आपको अन्य पैकेजों को भी पुनः स्थापित करने की आवश्यकता है। मुझे एक पैकेज की उम्मीद है जिसे बुलाया openssl-develगया पैकेज पर निर्भर करेगा openssl। इस बात को ध्यान में रखते हुए कि मुझे स्पर्श किए हुए काफी समय हो चुका है yum, इसलिए मैं आपके लिए कमांड के सिंटैक्स को सत्यापित नहीं कर सकता।
कैस्परल्ड

मैंने अपने सवाल को "यम सूचना खुलता है" के आउटपुट के साथ अद्यतन किया है। कृपया देखें, यदि यह उपयोगी है। मैंने इस थ्रेड को शुरू करने से पहले ओपनएसएल और ओपनएसएल-डेवेल को फिर से हटा दिया। काम नहीं किया! code
जिन

स्थापना openssl, (और नहीं openssl-devel) एक अच्छी शुरुआत होनी चाहिए।
माइकल हैम्पटन

मैंने पहले ही कोशिश की थी कि @Michael Hampton इस तरह की लिंकिंग समस्या है?
22

1

@Benedict ने कहा कि मेरे लिए काम किया। हालाँकि आप पा सकते हैं कि कुछ सिमिलिंक पुराने संस्करणों की ओर इशारा कर रहे हैं। ls -l libcrypto*/ Usr / libs से रन करना आपको लिंक दिखाएगा। नीचे के उदाहरण में:

lrwxrwxrwx 1 root root      16 May 21 15:28 libcrypto.so -> libcrypto.so.1.0

फिर आप पहले दिए गए लिंक को हटाकर sudo rm libcrypto.soउसके बाद libcrypto.so.1.1 को कॉपी करके @benedict के रूप में उल्लिखित करना चाहेंगे। अंत में आप नई लिंक बना सकते हैं। sudo ln -s libcrypto.so.1.1 libcrypto.so

उम्मीद है की यह मदद करेगा।


1

libcrypto.soके अंतर्गत आता है openssl-libsपैकेज। यदि आप मैन्युअल रूप से --nodepsइस पैकेज को हटा देते हैं ( अपग्रेड करते हैं) या इसे अपग्रेड करके दूषित कर देते हैं, तो आप यम, wget, कर्ल, ssh, आदि तक पहुंच खो देंगे। यदि सिस्टम में इंटरनेट एक्सेस है, openssl-libsतो कमांड का उपयोग करके डाउनलोड करें /usr/bin/GET। यदि आप संस्करण को पुनर्स्थापित करने का प्रयास कर रहे हैं, तो सिंटैक्स नीचे की तरह दिखाई देगा openssl-libs-1.0.2k-8.el7.x86_64:

/usr/bin/GET http://downloadURL/openssl-libs-1.0.2k-8.el7.x86_64.rpm > openssl-libs-1.0.2k-8.el7.x86_64.rpm

यह आपके लिए openssl-libs-1.0.2k-8.el7.x86_64.rpmपैकेज बनाएगा , आप इसका उपयोग या तो फिर से स्थापित कर सकते हैं या लापता .soफ़ाइल को निकाल सकते हैं ।


0

मैं बिल्कुल उसी मुद्दे से गुजरा हूं ... मैंने इसे निम्न कमांड चलाकर हल किया है।

ln -s /usr/local/lib/libcrypto.so.1.1/usr/lib/libcrypto.so.1.1

यह एक सॉफ्टलिंक बनाएगा और आप जाने के लिए अच्छा है।


0

यह सबसे अच्छा समाधान है जो मैंने चारों ओर पाया है ... अन्य समाधान पूरे इंटरनेट पर प्रदान किए गए हैं, सिस्टम रिबूट नहीं बचेंगे;)

OS: उबंटू 16.04

sudo vim /etc/ld.so.conf.d/libc.conf

लिबरी डायरेक्टरी सेटिंग्स को कमेंट करें और अच्छा पाथ जोड़ें

# libc default configuration

#/usr/local/lib

/usr/lib

जब आप संपादन कर लें, तो यह कमांड चलाएं:

sudo ldconfig

जब आप दौड़ेंगे तब आपके पास अच्छी सेटिंग होगी:

ldd / usr / बिन / खुलता है

इस फिक्स से पहले:

 /usr/bin/openssl: /usr/local/lib/libssl.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libssl.so.1.0.0: no version information available (required by /usr/bin/openssl)
 /usr/bin/openssl: /usr/local/lib/libssl.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
linux-vdso.so.1 =>  (0x00007ffe6d1e3000)
libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007f8999827000)
libcrypto.so.1.0.0 => /usr/local/lib/libcrypto.so.1.0.0 (0x00007f89993ed000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8999023000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8998e1f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8999a97000)

फिक्स के बाद मैंने प्रदान किया:

linux-vdso.so.1 =>  (0x00007ffec39bc000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f7faad22000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f7faa8dd000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7faa513000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7faa30f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7faaf8b000)

CentOS पाथ वाले लोगों के लिए, मुझे लगता है कि अच्छी फ़ाइल /etc/ld.so.conf;) है, बस स्पष्ट होने के लिए।
ZEROF

0

CentOS 7 में libssl.so.1.1रहता है /usr/local/ssl/lib

इसलिए मुझे सिर्फ इस पथ को डिफ़ॉल्ट स्थानों पर जोड़ना था, जहां पुस्तकालयों के लिए गतिशील लोडर दिखता है। मैं अपने openssl द्विआधारी, नामित लिए एक अलग फ़ाइल बनाई गई openssl-1.1.1c.conf, में /etc/ld.so.conf.dफ़ोल्डर:

echo "/usr/local/ssl/lib" > /etc/ld.so.conf.d/openssl-1.1.1c.conf

अब यह काम कर रहा है।


-1

एसएलएस -१.०.० एफ के निर्माण और स्थापित करने के बाद, मैंने लिबास लिस्ले.सो.१ के लिए एक ही त्रुटि तय की। एक नरम लिंक बना रहा है:

ln -s /usr/local/lib/libssl.so.1.1/usr/lib/libssl.so.1.1

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