कर्ल: (2) प्रारंभिक विफलता

मैंने लिनक्स पर libcurl 7.33.0 स्थापित किया है। मैंने स्थापित करने के लिए निम्न आदेशों का उपयोग किया:

./configure  
make  
make install

If I run curl http://www.google.com I get following error: curl: (2) Failed initialization

कर्ल/usr/स्थानीय/बिन और हेडर फाइलों पर/usr/local/include/curl पर कर्ल स्थापित है।

कर्ल-config:

[email protected]:~$ curl-config --features  
IPv6  
libz  
[email protected]:~$ curl-config --protocols  
DICT  
FILE  
FTP  
GOPHER    
HTTP  
IMAP  
POP3  
RTSP  
SMTP  
TELNET  
TFTP  
[email protected]:~$ curl-config --ca  
/etc/ssl/certs/ca-certificates.crt  
[email protected]:~$ curl-config --cflags  
-I/usr/local/include  
[email protected]:~$ curl-config --configure  

[email protected]:~$ curl-config --libs  
-L/usr/local/lib -lcurl  
[email protected]:~$ curl-config --static-libs  
/usr/local/lib/libcurl.a -lz -lrt  

मेरा मानना ​​है कि यह मेरी विन्यास के साथ कुछ करना है।

0

2 उत्तर

जंगली अनुमान पर, आपने /usr/local/bin/curl बाइनरी को सिस्टम कर्ल लाइब्रेरी से लिंक किया है।

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

ldd /usr/local/bin/curl

यदि यह एक रेखा को इंगित करता है जैसे:

libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007fea7e889000)

इसका मतलब है कि कर्ल बाइनरी सिस्टम कर्ल लाइब्रेरी उठा रहा है। हालांकि यह संकलित समय पर सही लाइब्रेरी से जुड़ा हुआ था, रन-टाइम पर यह गलत लाइब्रेरी उठा रहा है, जो इस त्रुटि के लिए एक बहुत ही सामान्य कारण प्रतीत होता है।

यदि आप कॉन्फ़िगरेशन को - अक्षम-साझा के साथ चलाते हैं, तो यह एक .a उत्पन्न करेगा, जो कर्ल बाइनरी से लिंक होने पर सिस्टम <कोड पर निर्भर नहीं होगा > libcurl.so , लेकिन इसके बजाय इसका अपना निजी कोड होगा।

यदि आप क्रॉस-कंपाइलिंग कर रहे हैं, तो आपको सभी आश्रित पुस्तकालयों को पार करने की भी आवश्यकता होगी, और यह एक और सवाल है।

0
जोड़ा
प्रतिक्रिया के लिए धन्यवाद। मुझे ldd/usr/local/bin/curl चलाने पर निम्न मिलता है: libcurl.so.4 => /usr/lib/libcurl.so.4 (0xb808e000)
जोड़ा लेखक user3033152, स्रोत
मैं - अक्षम-साझा विकल्प का उपयोग करके संकलित किया गया और यह अभी ठीक काम कर रहा है। यदि लक्ष्य प्रणाली में सिस्टम कर्ल लाइब्रेरी नहीं है तो साझा लाइब्रेरी के साथ कर्ल सही काम करना चाहिए?
जोड़ा लेखक user3033152, स्रोत
हां, यदि लक्ष्य प्रणाली पर कोई कर्ल साझा लाइब्रेरी नहीं है, तो उसे अपनी स्थापना प्रक्रिया द्वारा/usr/local/lib में स्थापित लाइब्रेरी को चुनना चाहिए।
जोड़ा लेखक Petesh, स्रोत

जहां तक ​​मुझे पता है, उबंटू में डिफ़ॉल्ट रूप से curl शामिल है। इसलिए यदि आपको विशेष रूप से 7.33.0 संस्करण की आवश्यकता नहीं है, तो उसे शुद्ध करें और इसे फिर से संग्रह से इंस्टॉल करें।

#remove everything you had with curl
sudo apt-get purge curl
#optional update
sudo apt-get update && sudo apt-get upgrade
#install it from repository
sudo apt-get install curl 
0
जोड़ा
मैं अपने लिनक्स मशीन पर कर्ल संकलित और स्थापित करना चाहता हूं क्योंकि बाद में मैं हाथ-लिनक्स आर्क के लिए संकलित करने के लिए उसी स्रोत का उपयोग करना चाहता हूं।
जोड़ा लेखक user3033152, स्रोत
अगर आप इस मुद्दे को हल करने में मेरी मदद कर सकते हैं तो सहायक होगा।
जोड़ा लेखक user3033152, स्रोत
अगर आपको उस सटीक संस्करण की आवश्यकता है तो टिप्पणी करें, मैं उस मामले में अपनी पोस्ट हटा दूंगा। अन्यथा मुझे बताएं कि क्या यह आपके लिए काम करना शुरू कर दिया है;)
जोड़ा लेखक Dropout, स्रोत
आपने यह नहीं कहा। यह उबंटू के लिए सलाह है जिस पर आप वर्तमान में चल रहे हैं। superuser.com पर इस प्रश्न से पूछने का प्रयास करें या मोड को वहां ले जाने के लिए कहें। चीयर्स!
जोड़ा लेखक Dropout, स्रोत