मैं उबंटू पर ओपनएसएसएल लाइब्रेरी कैसे स्थापित करूं?


235

मैं Ubuntu 10.04 LTS पर कुछ कोड बनाने की कोशिश कर रहा हूं जो OpenSSL 1.0.0 का उपयोग करता है। जब मैं मेक रन करता हूं, तो यह "-lssl" विकल्प के साथ g ++ को आमंत्रित करता है। स्रोत में शामिल हैं:

#include <openssl/bio.h>
#include <openssl/buffer.h>
#include <openssl/des.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/rsa.h>

मैं भागा:

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

लेकिन मुझे लगता है कि पुस्ताक तख्ता पैकेज में पुस्तकालय शामिल नहीं है। मुझे ये त्रुटियां मिलती हैं:

foo.cpp:21:25: error: openssl/bio.h: No such file or directory
foo.cpp:22:28: error: openssl/buffer.h: No such file or directory
foo.cpp:23:25: error: openssl/des.h: No such file or directory
foo.cpp:24:25: error: openssl/evp.h: No such file or directory
foo.cpp:25:25: error: openssl/pem.h: No such file or directory
foo.cpp:26:25: error: openssl/rsa.h: No such file or directory

मैं Ubuntu 10.04 LTS पर ओपनएसएसएल सी ++ लाइब्रेरी कैसे स्थापित करूं?

मैंने man g++-l विकल्प के लिए (और "लिंकिंग के लिए विकल्प") के तहत यह किया है: "लिंकर पुस्तकालय के लिए निर्देशिकाओं की एक मानक सूची खोजता है ..." और "निर्देशिकाओं की खोज में कई मानक सिस्टम निर्देशिकाएं शामिल हैं ..." वे मानक प्रणाली निर्देशिकाएं क्या हैं?


1
काफी डुप्लिकेट नहीं है, लेकिन उत्तर क्या * -वे पैकेज हैं?
संकटमोचन

आप -devनामकरण सम्मेलन के बारे में सही हैं । आप synapticपैकेज प्रबंधक का उपयोग उन सभी पैकेजों को सूचीबद्ध करने के लिए भी कर सकते हैं जिनके नाम में लिबासल है - उस सूची को ब्राउज़ करना और उनका विवरण संभवतः आपको सुराग देगा।
crazyscot

1
मुझे पता है कि यह सवाल अब तक काफी मर चुका है, लेकिन जब से मैंने हाल ही में पाया कि मैं किसी और को भी जानता हूं। यदि आप उन सभी पैकेजों को सूचीबद्ध करना चाहते हैं जो एक निश्चित नाम के समान हैं, तो मैं उपयोग करना चाहता हूं> उपयुक्त खोज <STRING> यह खोज चलाने के लिए रूट विशेषाधिकार स्तर की आवश्यकता नहीं है।
इवान लार्किन

2
केवल इवान के बयान में जोड़ने के लिए, उबंटू के हाल के संस्करण उपलब्ध योग्यता कमांड के बिना आ रहे हैं। apt-cache खोज <packname> अब उसी तरह (लगभग) काम करता है।
एंडी

3
आपके अपडेट के जवाब में, आप कर सकते हैंapt-cache search package-name
TheDoctor

जवाबों:


492

आप विकास पैकेज स्थापित करना चाहते हैं, जो कि libssl-dev है:

sudo apt-get install libssl-dev

1
लेकिन यह वह संस्करण नहीं है जो वह चाहता था (1.0.0), जिसे 10.04 के लिए पैक नहीं किया गया है। इस उत्तर को 1.0.0 के लिए देखें: stackoverflow.com/questions/3153114/…
nealmcb

आह, अच्छी कॉल। मैंने केवल उस समय देखा कि वह विकास पुस्तकालयों का उपयोग करने की कोशिश कर रहा था, लेकिन इन-पैकेज स्थापित नहीं कर रहा था। मुझे संस्करण संख्या भी नजर नहीं आई।
निकी योशीचुकी

यह यहां सही संदर्भ है: technologyskill.ga/install-openssl-manually-on-linux या howtoforge.com/tutorial/… लाइब्रेरी और हेडर फाइलें इंस्टॉलेशन के बाद उसी डायरेक्टरी के तहत मिलती हैं: / usr / लोकल / एसएसएल
मिकाएलटी

2
apt installनए दूर के लिए ubuntu
AtachiShadow

1
@GeorgeSp मुझे ऐसा लगता है, लेकिन यह अभी भी अधिक "प्राकृतिक" है उन्हें यह निर्देश का उपयोग कर एक कस्टम निर्देशिका में निर्माण करने के लिए stackoverflow.com/a/49578644/7315276
ɛIc_ↄIз


15

मैं खुद के लिए यह कैसे पता लगा सकता था (इस सवाल को पूछने के अलावा अन्य)? क्या मैं किसी तरह apt-get को सभी संकुल को सूचीबद्ध करने के लिए कह सकता हूं, और ssl के लिए grep? या क्या मुझे "लिबास * -देव" नामकरण सम्मेलन जानने की आवश्यकता है?

यदि आप के साथ लिंक कर रहे हैं -lfooतो पुस्तकालय की संभावना है libfoo.so। लाइब्रेरी स्वयं संभवतः libfooपैकेज का हिस्सा है , और हेडर libfoo-devपैकेज में हैं जैसा कि आपने खोजा है।

कुछ लोग GUI "सिनैप्टिक" ऐप ( sudo synaptic) का पता लगाने (और स्थापित करने के लिए) पैकेज का उपयोग करते हैं, लेकिन मैं कमांड लाइन का उपयोग करना पसंद करता हूं। एक चीज जो कमांड लाइन से सही पैकेज ढूंढना आसान बनाती है, वह तथ्य है जो apt-getबैश पूरा होने का समर्थन करती है।

टाइप करने की कोशिश करें sudo apt-get install libsslऔर फिर tabमिलान पैकेज नामों की एक सूची देखने के लिए हिट करें (जो उस पैकेज के सही संस्करण का चयन करने की आवश्यकता हो सकती है जिसमें कई संस्करण या अन्य विविधताएं उपलब्ध हैं)।

बैश समापन वास्तव में बहुत उपयोगी है ... उदाहरण के लिए, आप उन कमांडों की एक सूची भी प्राप्त कर सकते हैं apt-getजो टाइप करके sudo apt-getऔर फिर मारकर समर्थन करते हैं tab


उबंटू लोगों के लिए दर्द कम कर सकता है क्योंकि यह वर्षों से एक समस्या थी। वे उर्फ हो सकते हैंopenssl-dev , libssl-devलेकिन वे नहीं चुनते हैं।
jww

7

मुझे यहां एक विस्तृत समाधान मिला: ओपनएसएसएल को मैन्युअल रूप से लिनक्स पर स्थापित करें

ब्लॉग पोस्ट से ...:

डाउनलोड करने, संकलित करने और स्थापित करने के चरण निम्न हैं (मैं नीचे संस्करण 1.0.1g स्थापित कर रहा हूं; कृपया अपने संस्करण संख्या के साथ "1.0.1g" बदलें):

चरण - 1: ओपनएसएसएल डाउनलोड करना:

नीचे दिए अनुसार कमांड चलाएँ:

$ wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz

इसके अलावा, एमडी 5 हैश को डाउनलोड करने के लिए सिर्फ वैरिफिकेशन उद्देश्य के लिए डाउनलोड की गई फ़ाइल की अखंडता को सत्यापित करें। उसी फ़ोल्डर में जहाँ आपने वेबसाइट से OpenSSL फ़ाइल डाउनलोड की है:

$ wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz.md5
$ md5sum openssl-1.0.1g.tar.gz
$ cat openssl-1.0.1g.tar.gz.md5

चरण - 2: डाउनलोड किए गए पैकेज से फ़ाइलें निकालें:

$ tar -xvzf openssl-1.0.1g.tar.gz

अब, उस डायरेक्टरी को एंटर करें जहाँ पैकेज को निकाला गया है जैसे कि Opensl-1.0.1g

$ cd openssl-1.0.1g

चरण - 3: कॉन्फ़िगरेशन ओपनएसएसएल

उपसर्ग और निर्देशिका सेट करने के लिए वैकल्पिक स्थिति के साथ कमांड के नीचे चलाएँ जहाँ आप फ़ाइलों और फ़ोल्डर की प्रतिलिपि बनाना चाहते हैं।

$ ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl

आप निर्देशिका / पथ के साथ "/ usr / स्थानीय / खुलता है" को बदल सकते हैं जहाँ आप फ़ाइलों और फ़ोल्डरों को कॉपी करना चाहते हैं। लेकिन यह सुनिश्चित करते समय यह कदम टर्मिनल पर किसी भी त्रुटि संदेश के लिए जाँच करें।

चरण - 4: ओपनएसएसएल को संकलित करना

Opensl को संकलित करने के लिए आपको 2 कमांड चलाने की आवश्यकता होगी: नीचे दिए अनुसार स्थापित करें, स्थापित करें:

$ make

नोट: सत्यापन उद्देश्य के लिए किसी भी त्रुटि संदेश के लिए जाँच करें।

चरण -5: ओपनएसएसएल स्थापित करना:

$ sudo make install

या सूदो के बिना,

$ make install

बस। ओपनएसएसएल को सफलतापूर्वक स्थापित किया गया है। आप यह देखने के लिए संस्करण कमांड चला सकते हैं कि यह नीचे काम किया है या नहीं:

$ /usr/local/openssl/bin/openssl version

OpenSSL 1.0.1g 7 Apr 2014


1
पूर्णता के लिए आपको पीजीपी हस्ताक्षर सत्यापन को शामिल करना चाहिए ताकि यह सुनिश्चित हो सके कि फाइल हस्ताक्षर वैध है। जैसे gnupg.org/download/integrity_check.html और openoffice.org/download/checksums.html#pgp_linux
djondal

5

उबंटू पर सोर्स कोड से ओपन लाइब्रेरी स्थापित करने का एक और तरीका, नीचे दिए गए चरणों का अनुसरण करता है, यहां WORKDIRआपकी कार्यशील निर्देशिका है:

sudo apt-get install pkg-config
cd WORKDIR
git clone https://github.com/openssl/openssl.git
cd openssl
./config
make
sudo make install
# Open file /etc/ld.so.conf, add a new line: "/usr/local/lib" at EOF
sudo ldconfig

4

आपको openssl-develपैकेज चाहिए। कम से कम मुझे लगता है कि यह -develउबंटू पर है। हो सकता है -dev। यह दो में से एक है।


1
दोनों sudo apt-get install openssl-devऔर sudo apt-get install openssl-develवापसी "ई: पैकेज नहीं मिला ..."
डेरिल स्पिट्जर

6
जाहिरा तौर पर यह libssl-dev है जैसा कि अन्य लोगों ने कहा है। मैं उबंटू का उपयोग नहीं करता, इसलिए मैं पैकेज नामों से परिचित नहीं हूं।
जॉन्सब

7
Openssl-devel क्या मैं CentOS 6 के लिए आवश्यक था sudo yum install openssl-devel*
बंजर

5
चलो ईमानदार रहें: यह नामकरण बेकार है :)
mlvljr

खैर, यह नामकरण बेकार है :) - लेकिन फिर भी यह हमारे लिए सबसे अच्छा नामकरण मानक हो सकता है ... लेकिन किसी को वास्तव में दुनिया के सभी स्कूलों में स्कूल के विषय "आईटी की मूल बातें" पर यह सिखाना शुरू करना चाहिए
फ़िलिप ओवर्टोनसिंगर राइड्लो

0

एक सामान्य नियम के रूप में, जब डेबियन या उबंटू पर और आप एक विकास फ़ाइल (या उस मामले के लिए कोई अन्य फ़ाइल) को याद कर रहे हैं, तो apt-fileयह पता लगाने के लिए उपयोग करें कि कौन सा पैकेज उस फ़ाइल को प्रदान करता है:

~ apt-file search openssl/bio.h
android-libboringssl-dev: /usr/include/android/openssl/bio.h
libssl-dev: /usr/include/openssl/bio.h
libwolfssl-dev: /usr/include/cyassl/openssl/bio.h
libwolfssl-dev: /usr/include/wolfssl/openssl/bio.h

कमांड का उपयोग करके लौटाए जाने वाले प्रत्येक पैकेज पर एक त्वरित नज़र apt show यह बताएगी कि उन पैकेजों में से कौन सा है जिसे आप देख रहे हैं:

~ apt show libssl-dev
Package: libssl-dev
Version: 1.1.1d-2
Priority: optional
Section: libdevel
Source: openssl
Maintainer: Debian OpenSSL Team <pkg-openssl-devel@lists.alioth.debian.org>
Installed-Size: 8,095 kB
Depends: libssl1.1 (= 1.1.1d-2)
Suggests: libssl-doc
Conflicts: libssl1.0-dev
Homepage: https://www.openssl.org/
Tag: devel::lang:c, devel::library, implemented-in::TODO, implemented-in::c,
 protocol::ssl, role::devel-lib, security::cryptography
Download-Size: 1,797 kB
APT-Sources: http://ftp.fr.debian.org/debian unstable/main amd64 Packages
Description: Secure Sockets Layer toolkit - development files
 This package is part of the OpenSSL project's implementation of the SSL
 and TLS cryptographic protocols for secure communication over the
 Internet.
 .
 It contains development libraries, header files, and manpages for libssl
 and libcrypto.

N: There is 1 additional record. Please use the '-a' switch to see it

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