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

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

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

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

OpenSSL

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

5568閲覧

nghttp2をconfigure時のエラーについて

pacokio

総合スコア18

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

OpenSSL

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2017/01/19 01:43

編集2017/01/19 02:59

nghttp2のconfigure時に以下のエラーが発生しています。
python初心者の為、以下のエラー対策を行ったほうが良いのかが判断つかないため相談させて頂きます。
お手数ですが、アドバイス頂けたら幸いです。

◆エラー内容
checking consistency of all components of python development environment... no
configure: WARNING:
Could not link test program to Python. Maybe the main Python library has been
installed in some non-standard library path. If so, pass it to configure,
via the LDFLAGS environment variable.
Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib"

ERROR!
You probably have to install the development version of the Python package
for your distribution. The exact name of this package varies among them.

◆背景
OS:CentOS7.3.1611
OpenSSL、python3.6、nghttp2、apache2.4.25を全て
ソースインストールを 行おうとしております。
OpenSSL、python3.6のソースインストールは完了し、
apacheインストールの前に、nghttp2のソースインストールを
行う際に、configureを行った際に上記エラーが発生しました。

◆実行コマンド(以下を実行し、上記のエラーが発生しました。)
env OPENSSL_CFLAGS="-I/usr/local/openssl-1.0.2/include" OPENSSL_LIBS="-L/usr/local/openssl-1.0.2/lib -lssl -lcrypto" PYTHON3="-L/usr/local/python3.6.0" LDFLAGS="-L/usr/local/python3.6.0/lib" ./configure

※openssl(1.0.2j)とpython3.6のインストールパスを指定しています。

◆考察、疑問
pythonの開発版(python-devel)のインストールを促されていると認識しています。
ソースインストールであれば、開発版の内容も含んでいるはずなのでpythonのインストールパスを指定すればよいかと考えていましたが、上記のエラーが出て手が止まってしまっています。

①python3.6のソースファイルには開発版モジュールが含まれていない?
②configure時のパス指定が正しくない?
③そもそもこのエラー(内容を見ると警告?)は無視してもよいものなのか?無視した場合のリスクが不明。
④yum install python-develをconfigure前に実行すれば、configure時にはエラーは出なくなりますが、python-develのバージョンが2.7.*と、ソースファイルとバージョンが異なるので、おそらくのこ対応は正しくないと思っています。

お手数ですが、改善策や、アドバイス等頂ければと思います。
宜しくお願いいたします。

#追記
configure後のサマリーを貼り付けたいと思います。
エラー発生時に一緒に表示される内容です。
Pythonのバージョンが3.6でないOSプリインストールのものとなっている箇所があるため、やはりPythonのパス指定が足りないのかと考えています。

Package version: 1.18.1 Library version: 26:3:12 Install prefix: /usr/local System types: Build: x86_64-pc-linux-gnu Host: x86_64-pc-linux-gnu Target: x86_64-pc-linux-gnu Compiler: C compiler: gcc CFLAGS: -g -O2 LDFLAGS: -L/usr/local/python3.6.0/lib C++ compiler: g++ CXXFLAGS: -g -O2 CXXCPP: g++ -E C preprocessor: gcc -E CPPFLAGS: WARNCFLAGS: WARNCXXFLAGS: CXX1XCXXFLAGS: -std=c++11 EXTRACFLAG: -fvisibility=hidden LIBS: Library: Shared: yes Static: yes Python: Python: /bin/python PYTHON_VERSION: pyexecdir: ${exec_prefix}/lib64/python2.7/site-packages Python-dev: no PYTHON_CPPFLAGS:-I/usr/include/python2.7 PYTHON_LDFLAGS: -L/usr/lib64 -lpython2.7 Cython: Test: CUnit: no (CFLAGS='' LIBS='') Failmalloc: yes Libs: OpenSSL: yes (CFLAGS='-I/usr/local/openssl-1.0.2/include' LIBS='-L/usr/local/openssl-1.0.2/lib -lssl -lcrypto') Libxml2: no (CFLAGS='' LIBS='') Libev: no (CFLAGS='' LIBS='') Libc-ares no (CFLAGS='' LIBS='') Libevent(SSL): no (CFLAGS='' LIBS='') Spdylay: no (CFLAGS='' LIBS='') Jansson: no (CFLAGS='' LIBS='') Jemalloc: no (LIBS='') Zlib: yes (CFLAGS=' ' LIBS='-lz ') Boost CPPFLAGS: Boost LDFLAGS: Boost::ASIO: Boost::System: Boost::Thread: Third-party: http-parser: no MRuby: no (CFLAGS='' LIBS='') Neverbleed: no Features: Applications: no HPACK tools: no Libnghttp2_asio:no Examples: no Python bindings:no Threading: yes

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

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

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

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

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

guest

回答1

0

ベストアンサー

インストールする前にまず、公式ドキュメントに一通り目を通しましょう。

nghttp2のドキュメントのRequirements節には、インストールに必要なものが書いてあります。必要なものを全てインストールしたか、ご確認下さい。

また、Python bindingsという節があって、次のように書いてあります。

make will build the bindings and target Python version is determined by the configure script. If the detected Python version is not what you expect, specify a path to Python executable in a PYTHON variable as an argument to configure script (e.g., ./configure PYTHON=/usr/bin/python3.5).

さらに今回はconfigureスクリプトも使っていますから、スクリプトのオプションに何があるのかも見ておくといいですね (あくまでもドキュメントの記述が優先ですが)。configure --helpの結果を読むと、今回はドキュメントに書いてあるほかにOPENSSL_CFLAGSOPENSSL_LDFLAGSも指定したほうがよさそうです。


①python3.6のソースファイルには開発版モジュールが含まれていない?

開発版パッケージは、ビルドずみのソフトウェアを各ディストリビューションの都合で、「開発するときだけ必要なファイル」と「その他のファイル」とを分け、前者をパッケージにしたものです。

ソースからビルド、インストールしたものにはそのような区別はなく、すべてのファイルがインストールされます。

②configure時のパス指定が正しくない?

上述のとおり、オプションが正しくないですね。

③そもそもこのエラー(内容を見ると警告?)は無視してもよいものなのか?無視した場合のリスクが不明。

ご質問のWARNINGとERRORは、configureの中で実行された別々のチェックの結果を示しています。前者では必要なライブラリがないかもしれないので警告にとどめましたが、後者では必要なライブラリがないので処理を継続できないと判断しました。


configureのオプションを直して再度試してみて、うまくいかなければご質問に追記下さい。

投稿2017/01/22 03:28

編集2017/01/22 03:31
ikedas

総合スコア4227

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問