質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OpenSSL

OpenSSLはSSL/TLSのプロトコルと一般的な暗号のライブラリを導入するオープンソースのソフトウェアのツールキットです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

解決済

1回答

1247閲覧

Opensslのインストールが行えない

alice-R

総合スコア18

OpenSSL

OpenSSLはSSL/TLSのプロトコルと一般的な暗号のライブラリを導入するオープンソースのソフトウェアのツールキットです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

0クリップ

投稿2017/07/15 15:00

編集2017/07/16 03:38

Opensslのインストールを行いたいです。
Linuxにてwgetを用いてopenssl-1.0.2l.tar.gzからインストールを行いたいのですが、
openssl-1.0.2l.tar.gz: 許可がありません
というエラーが表示されてしまいます。
どうすればsudoを用いずにインストールが行えるのでしょうか。
どなたかご教示よろしくお願いいたします。

追記
エックスサーバにて、Djangoのインストールを行いたいです。
まずpyenv(~/.pyenv/bin/pyenv)からpythonのインストールを行うために

pyenv install 2.7.9

を行いました。

その結果、
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
というエラーが表示されます。

そこで、管理者権限は与えられていないので、sudoを用いずにOpensslのインストール方法を模索しておりました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mike2mike4

2017/07/15 15:12

sudoを使わない理由はなんですか?
alice-R

2017/07/15 15:14

レンタルサーバにて環境を構築しており、その環境ではroot権限が提供されていないので行えない状況です。
CHERRY

2017/07/16 03:17

openssl は、何のためにインストールしようとしているのでしょうか?
CHERRY

2017/07/16 03:18

インストールの操作で、入力したコマンドを具体的に質問に記載してください。
alice-R

2017/07/16 03:39

追記致しましたので、ご確認ください
guest

回答1

0

ベストアンサー

原則、管理者権限がなければシステムにインストールすることはできません。しかし、自分が書き換え可能な所(ホームとか)にインストールすることはできます。

まず、SSH等で接続し、シェルが使えることが前提です。他に、GCC等のコンパイラがSSHでログインした状態で使用できるようになっていなければなりません。その他、makeなども必要です。

tty

1$ gcc --version 2$ make --version 3$ wget --version 4$ tar --version 5※ それぞれバージョンが表示されます。コマンドが無ければ、エラーになります。

上のコマンドを実行してバージョンが表示されるか確認してください。gccの代わりにclangでもかまいません。また、wgetの代わりにcurlも使用できます。以下は、gccとwgetでの例ですが、便宜置き換えてください。もし、コンパイラ等がない場合、同じ環境でコンパイルしたバイナリを持ってくると言う手段が必要になります。手順も複雑になり割愛しますが、それなりのLinuxの知識が無いと難しいです。

では、手順です。

tty

1$ wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz 2$ tar xzf openssl-1.0.2l.tar.gz 3$ cd openssl-1.0.2l 4$ ./config shared --prefix=~/local 5$ make 6$ make test 7$ make install 8※ 出力例は割愛しています。

成功すれば、~/localにOpenSSLがインストールされます。opensslコマンドは~/local/binにインストールされますので、適当にPATHを通せば、使用できます。PATHを通さなくても、

tty

1$ LD_LIBRARY_PATH=~/local/lib ~/local/bin/openssl version

で確認できます。ライブラリとして使う場合は、インストール場所を示してコンパイルし、インストール場所を示して、ライブラリを読み込む必要があります。

サンプルとして、次のようなtest.cをコンパイルする場合です。

C

1#include <stdio.h> 2#include <openssl/crypto.h> 3 4int main(void) 5{ 6 printf("SSLEAY_VERSION: %s\n", SSLeay_version(SSLEAY_VERSION)); 7 return 0; 8}

tty

1$ gcc -I$HOME/local/include -c test.c -o test.o 2$ gcc -L$HOME/local/lib test.o -lcrypto -o test 3$ LD_LIBRARY_PATH=~/local/lib ./test 4SSLEAY_VERSION: OpenSSL 1.0.2l 25 May 2017

インストールしたバージョンが表示されていれば成功です。

環境変数LD_LIBRARY_PATHを指定しない場合、システムのOpenSSLを見に行きます。常に環境変数でライブラリPATHにインストール先のライブラリを追加する必要があります。毎回環境変数を指定するのが面倒であれば、次のように-rpathで検索パスを組み込む方法もあります。

$ gcc -L$HOME/local/lib test.o -lcrypto -Wl,-rpath,$HOME/local/lib -o test $ ./test SSLEAY_VERSION: OpenSSL 1.0.2l 25 May 2017

他に、-static等で静的リンクする方法もありますが、OpenSSLのバージョンアップの度に再コンパイルが必要になりますので、お勧めできません。

投稿2017/07/16 03:54

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問