Ubuntu에 OpenSSL 라이브러리를 어떻게 설치합니까?


235

OpenSSL 1.0.0을 사용하는 Ubuntu 10.04 LTS에서 일부 코드를 작성하려고합니다. make를 실행하면 "-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.

그러나 openssl 패키지에는 라이브러리가 포함되어 있지 않습니다. 나는이 오류를 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에 OpenSSL C ++ 라이브러리를 어떻게 설치합니까?

나는했다 man g++"... 디렉토리는 여러 표준 시스템 디렉토리를 포함 검색" "... 링커 검색 라이브러리의 디렉토리의 표준 목록을"과 : 그것은 내용의 -l 옵션 ( "연결에 대한 옵션"아래)와 표준 시스템 디렉토리는 무엇입니까?



당신은 -dev명명 규칙 에 대해 맞습니다 . 또한 synaptic패키지 관리자를 사용하여 이름에 libssl이 포함 된 모든 패키지를 나열 할 수 있습니다. 해당 목록을 탐색하고 해당 설명을 통해 실마리를 얻을 수 있습니다.
crazyscot 2016 년

1
나는이 질문이 지금까지 죽었다는 것을 알고 있지만 최근에 그것을 발견 한 이후 다른 누군가도 그렇게 생각합니다. 특정 이름과 유사한 모든 패키지를 나열하려면> atitude search <STRING>을 사용하고 싶습니다. 검색을 실행하는 데 루트 권한 수준이 필요하지 않습니다.
Evan Larkin

2
Evan의 진술에 추가하기 위해 최신 버전의 Ubuntu는 aptitude 명령을 사용할 수 없습니다. apt-cache 검색 <packname>은 이제 거의 같은 방식으로 작동합니다.
Andy

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

아 좋은 전화. 나는 그가 개발 라이브러리를 사용하려고했지만 -dev 패키지를 설치하지 않았다는 것을 알았습니다. 나는 심지어 버전 번호를 보지 못했습니다.
Niki Yoshiuchi

여기에 올바른 참조 자료가 있습니다. technologyskill.ga/install-openssl-manually-on-linux 또는 howtoforge.com/tutorial/… 라이브러리 및 헤더 파일은 설치 후 동일한 디렉토리에 있습니다. / usr / local / ssl
MickaelT

2
apt install새로운 dist 우분투를 위해
AtachiShadow

1
@GeorgeSp 그렇게 생각하지만이 명령을 사용하여 사용자 정의 디렉토리에 빌드하는 것이 여전히 "자연 스럽다" stackoverflow.com/a/49578644/7315276
ɛIc_ↄIз


15

이 질문을하는 것 외에는 어떻게 나 자신을 위해 그것을 알아낼 수 있었습니까? 어떻게 든 apt-get에게 모든 패키지를 나열하고 grep을 ssl에 지시 할 수 있습니까? 아니면 "lib * -dev"명명 규칙을 알아야합니까?

연결하는 -lfoo경우 라이브러리 일 가능성이 큽니다 libfoo.so. 라이브러리 자체는 아마도 libfoo패키지의 일부이며 헤더는 libfoo-dev발견 한 패키지에 있습니다.

어떤 사람들은 GUI "synaptic"앱 ( sudo synaptic)을 사용하여 패키지를 찾아서 설치하지만 명령 줄을 사용하는 것을 선호합니다. 명령 행에서 올바른 패키지를 쉽게 찾을 수있는 한 가지 방법 apt-get은 bash 완료 를 지원 한다는 사실입니다 .

입력 sudo apt-get install libssl한 다음 tab일치하는 패키지 이름 목록을 확인하십시오 (여러 버전이나 다른 변형이있는 올바른 버전의 패키지를 선택해야 할 때 도움이 됨).

배쉬 완성은 실제로 매우 유용합니다. 예 를 들어을 apt-get입력 sudo apt-get한 다음 을 눌러 지원하는 명령 목록을 얻을 수도 있습니다 tab.


우분투는 수년간 문제가 있었기 때문에 사람들의 고통을 덜어 줄 수 있습니다. 그들은 별칭 openssl-dev에를 libssl-dev하지만 그들은 선택하지.
jww

7

자세한 솔루션을 여기에서 찾았습니다 : Linux에서 수동으로 OpenSSL 설치

블로그 게시물에서 ... :

다운로드, 컴파일 및 설치 단계는 다음과 같습니다 (아래 버전 1.0.1g을 설치하고 있습니다. "1.0.1g"를 버전 번호로 바꾸십시오).

1 단계 – OpenSSL 다운로드 :

다음과 같이 명령을 실행하십시오.

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

또한 MD5 해시를 다운로드하여 변형 된 목적으로 만 다운로드 된 파일의 무결성을 확인하십시오. 웹 사이트에서 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

이제 openssl-1.0.1g와 같이 패키지가 추출 된 디렉토리를 입력하십시오.

$ cd openssl-1.0.1g

3 단계 : OpenSSL 구성

선택적 조건으로 아래 명령을 실행하여 파일과 폴더를 복사하려는 접두사와 디렉토리를 설정하십시오.

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

“/ usr / local / openssl”을 파일 및 폴더를 복사 할 디렉토리 경로로 바꿀 수 있습니다. 그러나이 단계를 수행하는 동안 터미널에 오류 메시지가 있는지 확인하십시오.

4 단계 : OpenSSL 컴파일

openssl을 컴파일하려면 2 명령을 실행해야합니다 : make, 아래와 같이 설치하십시오 :

$ make

참고 : 확인을 위해 오류 메시지가 있는지 확인하십시오.

5 단계 : OpenSSL 설치 :

$ sudo make install

아니면 sudo없이

$ make install

그게 다야. OpenSSL이 성공적으로 설치되었습니다. version 명령을 실행하여 아래와 같이 작동하는지 여부를 확인할 수 있습니다.

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

OpenSSL 1.0.1g 7 Apr 2014


1
완전성을 위해 파일 서명이 유효한지 확인하기 위해 PGP 서명 확인을 포함해야합니다. 마찬가지로 gnupg.org/download/integrity_check.htmlopenoffice.org/download/checksums.html#pgp_linux
djondal

5

Ubuntu의 소스 코드에서 openssl 라이브러리를 설치하는 다른 방법 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-devsudo apt-get install openssl-devel복귀 "E : ... 패키지를 찾을 수 없습니다"
대릴 스피처에게

6
분명히 다른 사람들이 말했듯이 libssl-dev입니다. 나는 우분투를 사용하지 않으므로 패키지 이름에 익숙하지 않습니다.
jonescb

7
Openssl-devel은 CentOS 6에 필요한 것입니다. sudo yum install openssl-devel*
Banjer

5
솔직하게 말하자 :이 이름은 짜증나 :)
mlvljr

물론,이 이름은 : 짜증 -하지만 여전히 우리가 가질 수있는 최고의 명명 표준입니다 ...하지만 누군가가 정말 해야한다 마침내 시작 가르치는 세상의 모든 학교에서 "IT의 기본"학교 주제에서이.
Filip OvertoneSinger Rydlo 2016 년

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.