apt-get を介して最新の ubuntu に curl をインストールしましたが、正常に動作しますが、DNS ルックアップのブロッキングの性質について読んでいて、アプリの速度が低下していることを発見しました。
apt-get install libc-ares2 を実行しましたが、検索時にそのライブラリを使用するように curl に指示する方法がわかりません。
この質問をAskUbuntuに投稿しましたが、おそらくこちらの方が良いと言われました..
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 のプロジェクト ホームページのページを次に示します。
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 をクロスコンパイルする必要があることに注意してください。
お役に立てれば!