Ubuntu'ya OpenSSL kütüphanelerini nasıl kurabilirim?


235

OpenSSL 1.0.0 kullanan Ubuntu 10.04 LTS üzerinde bazı kod oluşturmaya çalışıyorum. Ben make çalıştırmak, "-lssl" seçeneği ile g ++ çağırır. Kaynak şunları içerir:

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

Koştum:

$ 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.

Ama sanırım openssl paketi kütüphaneyi içermiyor. Bu hataları make:

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'ye OpenSSL C ++ kütüphanesini nasıl kurabilirim?

man g++-L seçeneği için bir ve ("Bağlantı Seçenekleri" altında) yaptım : "Bağlayıcı kütüphane için standart bir dizin listesi arar ..." ve "Aranan dizinler birkaç standart sistem dizinleri içerir ..." Bu standart sistem dizinleri nelerdir?


1
Tamamen yinelenen değil, ancak * -devel paketleri nedir? .
Troubadour

-devAdlandırma kuralında haklısın . synapticPaket yöneticisini, adları libssl içeren tüm paketleri listelemek için de kullanabilirsiniz - bu listeye göz atmak ve açıklamaları size ipucu verecektir.
crazyscot

1
Bu sorunun şimdiye kadar oldukça öldüğünü biliyorum, ancak son zamanlarda bulduğumdan beri başka birinin de yapabileceğini anladım. Belirli bir ada benzer tüm paketleri listelemek istiyorsanız,> yetenek arama <STRING> Bir arama çalıştırmak için kök ayrıcalık düzeyi gerektirmez.
Evan Larkin

2
sadece Evan'ın ifadesine ek olarak, Ubuntu'nun son sürümleri mevcut yetenek komutu olmadan geliyor. apt-cache search <packname> şimdi aynı şekilde çalışıyor (neredeyse).
Andy

3
Güncellemenize yanıt olarak şunları yapabilirsinizapt-cache search package-name
TheDoctor

Yanıtlar:


492

Libssl-dev olan geliştirme paketini kurmak istiyorsunuz:

sudo apt-get install libssl-dev

1
Ancak bu, 10.04 için paketlenmemiş istediği sürüm (1.0.0) değil. 1.0.0 için bu cevaba bakınız: stackoverflow.com/questions/3153114/…
nealmcb

Ah, iyi çağrı. Sadece geliştirme kütüphanelerini kullanmaya çalıştığını ancak -dev paketini yüklemediğini fark ettim. Sürüm numarasını bile fark etmedim.
Niki Yoshiuchi

Buradaki doğru referans: technologyskill.ga/install-openssl-manually-on-linux veya howtoforge.com/tutorial/… kütüphaneler ve başlık dosyaları kurulumdan sonra aynı dizinde bulunur: / usr / local / ssl
MickaelT

2
apt installdist ubuntu için
AtachiShadow

1
@GeorgeSp Sanırım, ama bu talimatı kullanarak onları özel bir dizinde oluşturmak daha "doğal" stackoverflow.com/a/49578644/7315276
ɛIc_ↄIз


15

Bunu kendim için nasıl bulabilirdim (bu soruyu burada sormak dışında)? Bir şekilde tüm paketleri listelemesini ve ssl için grep komutunu söyleyebilir miyim? Yoksa "lib * -dev" adlandırma kuralını bilmem gerekiyor mu?

Eğer bağlantı -lfookuruyorsanız, muhtemelen kütüphane libfoo.so. Kitaplığın kendisi muhtemelen libfoopaketin bir parçasıdır ve başlıklar libfoo-devkeşfettiğiniz gibi paketin içindedir.

Bazı insanlar sudo synapticpaketleri yüklemek (bulmak ve) için GUI "synaptic" app ( ) kullanır, ama ben komut satırını kullanmayı tercih ederim. Komut satırından doğru paketi bulmayı kolaylaştıran bir şey, apt-getbash tamamlamayı destekleyen gerçektir .

Yazmayı deneyin sudo apt-get install libsslve ardından tabeşleşen paket adlarının listesini görmek için tuşuna basın (birden fazla sürümü veya başka varyasyonları olan bir paketin doğru sürümünü seçmeniz gerektiğinde yardımcı olabilir).

Bash tamamlama aslında çok faydalıdır ... örneğin, apt-getyazıp sudo apt-getardından vurarak destekleyen komutların bir listesini de alabilirsiniz tab.


Ubuntu yıllardır sorun olduğundan beri insanlar için acıyı hafifletebilir. Onlar could takma openssl-deviçin libssl-devancak vermemeyi tercih.
jww

7

Burada ayrıntılı bir çözüm buldum: Linux'ta Manuel Olarak OpenSSL Kurulumu

Blog gönderisinden ...:

İndirme, derleme ve yükleme adımları aşağıdaki gibidir (aşağıdaki 1.0.1g sürümünü yüklüyorum; lütfen "1.0.1g" yi sürüm numaranızla değiştirin):

Adım - 1: OpenSSL'yi İndirme:

Komutu aşağıdaki gibi çalıştırın:

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

Ayrıca, indirilen dosyanın bütünlüğünü yalnızca varyasyon amacıyla doğrulamak için MD5 karmasını indirin. Web sitesinden OpenSSL dosyasını indirdiğiniz klasörde:

$ 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

Adım - 2: İndirilen paketten dosyaları çıkartın:

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

Şimdi, paketin açıldığı dizini burada olduğu gibi girin openssl-1.0.1g

$ cd openssl-1.0.1g

Adım - 3: Yapılandırma OpenSSL

Dosya ve klasörü kopyalamak istediğiniz öneki ve dizini ayarlamak için isteğe bağlı koşulla aşağıdaki komutu çalıştırın.

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

“/ Usr / local / openssl” yerine dosyaları ve klasörleri kopyalamak istediğiniz dizin yolunu kullanabilirsiniz. Ancak bu adımları gerçekleştirirken terminalde herhangi bir hata mesajı olup olmadığını kontrol edin.

Adım - 4: OpenSSL'yi Derleme

Openssl'i derlemek için 2 komutunu çalıştırmanız gerekir: make, aşağıdaki gibi kurun:

$ make

Not: doğrulama amacıyla herhangi bir hata mesajı olup olmadığını kontrol edin.

Adım -5: OpenSSL Kurulumu:

$ sudo make install

Veya sudo olmadan,

$ make install

Bu kadar. OpenSSL başarıyla kuruldu. Aşağıdaki gibi çalışıp çalışmadığını görmek için version komutunu çalıştırabilirsiniz:

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

OpenSSL 1.0.1g 7 Apr 2014


1
Tamlık için, dosya imzasının geçerli olduğundan emin olmak üzere PGP imza doğrulamasını dahil etmelisiniz. Olduğu gibi gnupg.org/download/integrity_check.html ve openoffice.org/download/checksums.html#pgp_linux
djondal

5

Ubuntu'daki kaynak kodundan openssl kütüphanesini kurmanın başka bir yolu, aşağıdaki adımları takip eder WORKDIR, iş dizininiz:

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-develPaketi istiyorsun . En azından -develUbuntu'da olduğunu düşünüyorum . Olabilir -dev. İkisinden biri.


1
Hem sudo apt-get install openssl-devve sudo apt-get install openssl-develdönüş "E: ... paket bulunamadı"
Daryl Spitzer

6
Görünüşe göre diğerlerinin söylediği gibi libssl-dev. Ubuntu kullanmıyorum, bu yüzden paket adlarına aşina değilim.
jonescb

7
Openssl-devel CentOS 6 için ihtiyacım olan sudo yum install openssl-devel*
şeydi

5
Dürüst olalım: bu adlandırma berbat :)
mlvljr

kuyu, bu adlandırma :) emmek - ama yine de elimizdeki en iyi adlandırma standarttır ... ama birisi gerçekten GEREKEN nihayet başlamak öğretim dünyada TÜM okullarda "Bilişim temelleri" okul konuya bu.
Filip OvertoneSinger Rydlo

0

Genel bir kural olarak, Debian veya Ubuntu üzerindeyken ve bir geliştirme dosyasını (veya bu konu için başka bir dosyayı) apt-fileeksikken, hangi paketin bu dosyayı sağladığını bulmak için kullanın :

~ 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

Komut tarafından döndürülen paketlerin her birine hızlı bir bakış, kullanarak apt showpaketlerden hangisini aradığınızı söyleyecektir:

~ 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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.