Fedora 19 LXDE をインストールしました。初めて URL に対して curl を実行すると、失敗します。
curl -v youtube.com
* Could not resolve host: youtube.com; Name or service not known
* Closing connection 0
curl: (6) Could not resolve host: youtube.com; Name or service not known
このコマンドをすぐに再実行すると、成功します。
curl -v youtube.com
* About to connect() to youtube.com port 80 (#0)
* Trying 80.239.229.212...
* Connected to youtube.com (80.239.229.212) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: youtube.com
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
< Date: Tue, 10 Sep 2013 20:05:20 GMT
< Server: gwiseguy/2.0
< Location: http://www.youtube.com/
< Content-Length: 0
< Content-Type: text/html
< X-XSS-Protection: 1; mode=block
<
* Connection #0 to host youtube.com left intact
-4 オプションを指定すると、すべて問題なく動作するようです。何が問題なのですか?
nslookup は正常に動作し、解像度に問題はありません。
アップデート:
失敗した試行に対して strace を実行すると、次のエラーが表示されます。
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
そして echo $LANG LANG=/en_US.UTF-8 関係ありますか?
詳細:
私は Fedora 15 と Gnome を使用していました。すべてがうまくいきました。次に、LXDE と XFCE で Fedora 19 を試しました。どちらもカールに関して同じ問題を抱えています。
解決策:
この問題は IPv6 に関係しているようです。
1) 内部に「--ipv4」を指定して ~/.curlrc を作成しました。それはブラウザの問題のいくつかを解決しました。
2) yum を修正するために、「ip_resolve=4」を /etc/yum.conf に追加しました。