2012-03-01 10 views
13

私はCentos 6.2で何度もGnuTLSライブラリをコンパイルしようとしていますが、運がありません。これらの手順は次のとおりです。?GnuTLSをコンパイルする方法

私は私は私が何をしないのです最新GNUTLS

./configure --with-libnettle-prefix=/usr 

hecking for shared library run path origin... done 
checking whether to use nettle... yes 
checking for libnettle... no 
configure: error: 
    *** 
    *** Libnettle 2.4 was not found. 

をダウンロード

コマンドmakeを実行して、make installイラクサ2.4

[[email protected] opt]# wget http://www.lysator.liu.se/~nisse/archive/nettle-2.4.tar.gz 
[[email protected] nettle-2.4]# tar zxvf nettle-2.4.tar.gz 
[[email protected] nettle-2.4]# cd nettle-2.4 
[[email protected] nettle-2.4]# ./configure --enable-shared --prefix=/usr 



    Version:   nettle 2.4 
    Host type:   x86_64-unknown-linux-gnu 
    ABI:    64 
    Assembly files: x86_64 
    Install prefix: /usr 
    Library directory: ${exec_prefix}/lib64 
    Compiler:   gcc 
    Shared libraries: yes 
    Public key crypto: no 

をダウンロード

お祈り申し上げます

+2

メッセージのように、あなたはlibnettleが不足しているようです。それが何であれ。 :) – duskwuff

+4

おそらく問題はlibnettleが '/ usr/lib64'にインストールされていることです(' configure'-ed nettleの出力で示されるように) 'configure'スクリプト 'GnuTLS'は'/usr/lib'。追加のオプション '--with-libdir = lib64'(テストされていない)を' GnuTLS'の 'configure'スクリプトに渡してみることができます –

+0

そのテストからのより具体的な出力をconfigure.logで確認できます。 – XTL

答えて

1
configure:8798: checking for libnettle 
configure:8820: gcc -std=gnu99 -o conftest -g -O2 conftest.c /usr/lib/libnettle.so /usr/lib/libhogweed.so -lgmp >&5 
/usr/bin/ld: cannot find -lgmp 
collect2: ld returned 1 exit status 
configure:8820: $? = 1 
configure: failed program was: 
configure:8830: result: no 
configure:8856: error: 
    *** 
    *** Libnettle 2.4 was not found. 

私は、GMP-develのインストール。問題は修正されています。

+1

私は 'pkg-config'をインストールしましたが、それが問題を解決しました。可能であれば、 'autogen'をインストールすることも助けになりました - 少なくとも、それは警告を削除しました。 – ssc

13

問題は、見たとおり、libgmpのdevヘッダが存在しない限り、nettleはlibhogweedをビルドしないということです。残念ながら、docsと.configure --helpとconfigureの出力はこれについて何も言いません。

一方、gnuTLSドキュメントでは、このことについても説明していません(また、ここでのconfigure出力はそれほど役に立ちません)。 libgmpはpre-reqとしてリストされていますが、何らかの理由でlibhogweedはそうではありません(おそらく、それは牛痘の一部であると考えられているからです)。設定エラー "-lgmpが見つかりません"は、libgmpは存在しませんが、libhogweed.soは隠れたオプションのの一部であるため、そこには存在しません。 libgmp-devをインストールしてgnutlsのconfigureを実行するだけで、同じ "libnettle ... noをチェックする"ことができます。これは「libhogweed ... noをチェックする」だが、confスクリプトを担当している人はそれを壊すにはあまりにも怠惰である(私はパッチを提出できると思う)。

つまり、libgmp-dev をインストールしてから、nettleを再構築してからgnutlsをビルドする必要があります。

+0

はここで問題を解決しませんでした:-( – ssc

+0

あなたの解決策( 'pkg-config'をインストールすること)も前提条件となりますが、一般的な外部ライブラリとリンクするGNU/Linux上でソフトウェアを構築する方がより一般的です。 – delicateLatticeworkFever

+0

私はちょうど 'gnutls'のmakeを試みるだけで、' nettle'が必要とする(すなわち_no_ libgmp-devが必要な)ヘッダを作成するのに十分でした。戻って 'nettle'を再構築すると' libhogweed'がビルドされました(しかし、 'sexp2rsa-test.c:40:無視することを決めた' test_rsa_key''への未定義参照を投げて 'make install'を実行しました)トリックをするには、libhogweedで再構築された 'gnutls'が必要です。 – Randall

0

Debianでこの問題がしばらくあった場合は、pkgconfパッケージをインストールしてみてください。

0

私はnettle-dev & nettle-binをインストールし、それが動作します:)

0

ヌーTLSスクリプトはそのPKG-config設定が必要になるとのpkg-config設定がインストールされていない場合は、他のパッケージも試したことがないかもしれない大声で言っていない設定。 pkg-configをインストールすると私の問題が解決しました。

関連する問題