10

apt-get を介して最新の ubuntu に curl をインストールしましたが、正常に動作しますが、DNS ルックアップのブロッキングの性質について読んでいて、アプリの速度が低下していることを発見しました。

apt-get install libc-ares2 を実行しましたが、検索時にそのライブラリを使用するように curl に指示する方法がわかりません。

この質問をAskUbuntuに投稿しましたが、おそらくこちらの方が良いと言われました..

4

3 に答える 3

6

AskUbuntu は、これはプログラミングの問題であり、構成の問題ではないと考えていると思います。コマンドでフェッチしたバイナリはapt-get、libc-ares2 で (外部ライブラリまたはリンクされたライブラリとして) コンパイルされていません。取得libc-ares2すると、コンピューターは必要なバージョンの cURL をsource からビルドできるようになりましたが、ここから実際の作業が始まります。

通常、ソースをダウンロードして、README または INSTALL という名前のファイルを探します。のような行を持つステップについて (うまくいけば) 話し./configureます。ここから、コンパイル時のオプションを指定できます。また、cURL の make ファイルが存在を自動検出しlibc-ares2てビルドに含めることもできます。

INSTALLただし、ファイルがない間に最新のソース リリースを見ると、configureスクリプトがあります。次の行があるソースを見てください:

--enable-ares[=PATH]    Enable c-ares for DNS lookups

ソース フォルダーからこのコマンドを実行すると、次のようになります。

./configure --enable-ares && make && sudo make install

次に、必要なカール ビルドを取得します。欠落している他のライブラリや欠落している make および GCC に関連するエラー メッセージが多数表示される可能性が非常に高くなります。この回答では、それを解決するのが難しくなります。

これらの手順について説明している cURL のプロジェクト ホームページのページを次に示します。

于 2013-01-22T19:10:53.397 に答える
0

ares を別途インストールする必要があります。ここからダウンロードできます。ダウンロードしたら、c-ares をビルドします (現在の作業ディレクトリは "c-ares-${VERSION}" です)。

cd /path/to/c-ares-${VERSION}
./configure --prefix=/destination/path/for/ares/install (NOTE: if you specify a destination directory, it must exist already! If you don't specify a prefix, content should be install at location /usr/local/include/)
make
make install

これに続いて

ares がビルドされたので、ares を使用して libcurl をビルドできます。ares の参照に問題があったため、ares のソースを libcurl に直接コピーする必要がありました。これを行うには、'make install' によって作成された 'include' ディレクトリの名前を ares の構成から 'ares' に変更します。次に、このディレクトリを libcurl のルート ディレクトリにコピーします。ares オプションを使用して libcurl をビルドできるようになりました (現在の作業ディレクトリは libcurl です)。

cd /path/to/libcurl
./configure --enable-ares

完全な例:

cd /User/${USER}/c-ares-1.10.0
mkdir installation
make clean
./configure --prefix=/User/${USER}/c-ares-1.10.0/installation
make
make install
mv installation/include installation/ares
cp installation/ares /User/${USER}/libcurl/
cd /User/${USER}/libcurl/
./configure --enable-ares
make
make install

編集 (2015 年 6 月 30 日):

libcurl をクロスコンパイルする場合は、同じクロスコンパイラ設定 ( --host オプション) で c-ares をクロスコンパイルする必要があることに注意してください。

お役に立てれば!

于 2015-06-25T19:01:47.630 に答える