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オプションを指定しました。「リンカーはライブラリのディレクトリの標準リストを検索します...」および「検索されたディレクトリにはいくつかの標準システムディレクトリが含まれています...」それらの標準システムディレクトリとは何ですか?


1
まったく同じではありませんが、*-develパッケージとは何ですか?
トルバドゥール

あなたは-dev命名規則について正しい。また、synapticパッケージマネージャーを使用して、名前にlibsslが含まれているすべてのパッケージを一覧表示することもできます。そのリストを参照すると、その説明が手掛かりになるでしょう。
crazyscot

1
私はこの質問がもう完全に消滅していることを知っていますが、最近見つけたので、私は他の誰かもそうかもしれないと思います。特定の名前に類似するすべてのパッケージを一覧表示する場合は、> aptitude search <STRING>を使用します。検索を実行するためにroot特権レベルは必要ありません。
Evan Larkin、2010

2
Evanの発言に加えて、Ubuntuの最近のバージョンでは、aptitudeコマンドを利用できません。apt-cache search <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

ああ、いい電話。彼が開発ライブラリを使用しようとしているのに、-devパッケージをインストールしていないことに気づきました。バージョン番号にも気づかなかった。
Niki Yoshiuchi、

これは正しい参照です:technologyskill.ga/install-openssl-manually-on-linuxまたはhowtoforge.com/tutorial/…ライブラリとヘッダーファイルは、インストール後の同じディレクトリにあります:/ usr / local / ssl
MickaelT

2
apt install新しい
ディストリビューション

1
@GeorgeSp私はそう思うが、それはこの命令を使用して、カスタムディレクトリにそれらを構築するためにはまだ多くの「自然」だstackoverflow.com/a/49578644/7315276を
ɛIc_ↄIз


15

(ここでこの質問をする以外に)どうすれば自分でそれを理解できたでしょうか?どういうわけか、apt-getにすべてのパッケージをリストし、sslをgrepするように指示できますか?または、「lib * -dev」命名規則を知る必要がありますか?

あなたがリンクしているなら-lfoo、ライブラリはおそらくありlibfoo.soます。ライブラリ自体はおそらくlibfooパッケージの一部であり、ヘッダーはlibfoo-devパッケージに含まれています。

GUI「シナプス」アプリ(sudo synaptic)を使用してパッケージを検索(インストール)する人もいますが、私はコマンドラインを使用することを好みます。コマンドラインから適切なパッケージを見つけやすくする1つの点は、apt-getbash補完をサポートしていることです。

入力sudo apt-get install libsslしてヒットすると、tab一致するパッケージ名のリストが表示されます(複数のバージョンまたは他のバリエーションが利用可能なパッケージの正しいバージョンを選択する必要がある場合に役立ちます)。

Bashの補完は実際には非常に便利です...例えば、あなたもするコマンドの一覧を取得することができますapt-getタイピングでサポートsudo apt-getし、次に打ちますtab


Ubuntuは何年もの間問題であったので、人々の痛みを和らげることができました。彼ら別名openssl-devを付けることlibssl-devできますが、そうしないことを選択します。
jww 2017

7

詳細な解決策をここに見つけました:LinuxにOpenSSLを手動でインストールします

ブログ投稿から...:

ダウンロード、コンパイル、インストールの手順は次のとおりです(以下のバージョン1.0.1gをインストールしています。「1.0.1g」をご使用のバージョン番号に置き換えてください)。

ステップ– 1:OpenSSLのダウンロード:

次のようにコマンドを実行します。

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

また、MD5ハッシュをダウンロードして、ダウンロードしたファイルの整合性を検証目的で検証します。Webサイトから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

注:確認のため、エラーメッセージがないか確認してください。

ステップ-5:OpenSSLのインストール:

$ sudo make install

またはsudoなしで、

$ make install

それでおしまい。OpenSSLが正常にインストールされました。バージョンコマンドを実行して、以下のように機能するかどうかを確認できます。

$ /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がUbuntu にあると思います。かもしれません-dev。2つのうちの1つです。


1
両方sudo apt-get install openssl-devsudo apt-get install openssl-devel返し、「E:パッケージが見つかりませんでした...」
Daryl Spitzer

6
どうやら他の人が言ったようにそれはlibssl-devです。私はUbuntuを使用していないので、パッケージ名に慣れていません。
jonescb

7
私がCentOS 6に必要だったのは、sudo yum install openssl-devel*
Openssl

5
正直に
言い

まあ、このネーミングは:)吸う-まだそれは我々が持つことができる最高の命名標準です...誰かが本当にSHOULDついにスタート教える世界のすべての学校で教科「ITの基礎知識」でこれを。
Filip OvertoneSinger Rydlo

0

一般的なルールとして、DebianまたはUbuntuで開発ファイル(またはそのほかのファイル)が見つからない場合は、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.