yumは非常に便利なツールで離れられないくらい使いまくってるのだが、
ある時(というか今日)に以下のエラーが出てパッケージのインストールに失敗する事象に出くわした。
[hogeuser@fooserver ~]$ yum install パッケージ名
(略)
--> Processing Dependency: libcap.so.1 for package: dbus
--> Processing Dependency: libIDL-devel >= 0.8.2-1 for package: ORBit2-devel
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for libvolume_id to pack into transaction set.
libvolume_id-095-14.9.el5 100% |=========================| 24 kB 00:00
---> Package libvolume_id.i386 0:095-14.9.el5 set to be updated
---> Downloading header for libIDL-devel to pack into transaction set.
libIDL-devel-0.8.7-1.fc6. 100% |=========================| 5.7 kB 00:00
http://my-yum-local-server.example.com/yum/centos/5/os/x86_64/CentOS/libIDL-devel-0.8.7-1.fc6.x86_64.rpm: [Errno -1] Header is not complete.
Trying other mirror.
Error: failure: CentOS/libIDL-devel-0.8.7-1.fc6.x86_64.rpm from base: [Errno 256] No more mirrors to try.
[hogeuser@fooserver ~]$
yumサーバー(ここではmy-yum-local-server)を自分のローカルネットワーク上に用意しているので、そちら側のアクセスログを見てみる。
192.168.0.1 my-yum-local-server - - [12/Jun/2008:09:08:59 +0900] "GET /yum/centos/5/os/x86_64/CentOS/libIDL-devel-0.8.7-1.fc6.x86_64.rpm HTTP/1.1" 206 5811 "-" "urlgrabber/3.1.0" "-"
HTTPのステータスコードがなぜか「206」(Partial Content)になってる...
部分的なGETリクエストを要求したということなんだろうが何故に?
yumがurlgrabberを使ってアクセスしているようなので直接urlgrabberで該当パッケージを取得してみる。
192.168.0.1 my-yum-local-server - - [12/Jun/2008:09:26:08 +0900] "GET /yum/centos/5/os/x86_64/CentOS/libIDL-devel-0.8.7-1.fc6.x86_64.rpm HTTP/1.1" 200 17879 "-" "urlgrabber/3.1.0" "-"
手動でurlgrabberコマンドを実行するとステータスは「200」。そりゃそうだ。
パッケージのサイズもyumのprimary.xml.gzに記載されているサイズ(ここでは17,879バイト)で問題なし。
ググってみると結構同じ事象が起きてるらしく、たいてい
http://wiki.linux.duke.edu/YumFaq
のQ.5を参照しろとか言ってる。
で、「The solutions to this problem are:」を見てみると
超適当な訳:
ええええええええええええええ。
全然問題解決の助けにならねぇ...プロキシなんてそもそも使ってないし
yum取得先もすでにローカルのmirrorサーバーなんですが...orz
yum clean allとかキャッシュ強制削除とかしてみたけど解決せず、とりあえず
取得が正常にいかないファイルだけ手動で取得してインストールしたら他のファイル
は正常にインストールできるようになった。
またもややっつけ対応orz
ある時(というか今日)に以下のエラーが出てパッケージのインストールに失敗する事象に出くわした。
[hogeuser@fooserver ~]$ yum install パッケージ名
(略)
--> Processing Dependency: libcap.so.1 for package: dbus
--> Processing Dependency: libIDL-devel >= 0.8.2-1 for package: ORBit2-devel
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for libvolume_id to pack into transaction set.
libvolume_id-095-14.9.el5 100% |=========================| 24 kB 00:00
---> Package libvolume_id.i386 0:095-14.9.el5 set to be updated
---> Downloading header for libIDL-devel to pack into transaction set.
libIDL-devel-0.8.7-1.fc6. 100% |=========================| 5.7 kB 00:00
http://my-yum-local-server.example.com/yum/centos/5/os/x86_64/CentOS/libIDL-devel-0.8.7-1.fc6.x86_64.rpm: [Errno -1] Header is not complete.
Trying other mirror.
Error: failure: CentOS/libIDL-devel-0.8.7-1.fc6.x86_64.rpm from base: [Errno 256] No more mirrors to try.
[hogeuser@fooserver ~]$
yumサーバー(ここではmy-yum-local-server)を自分のローカルネットワーク上に用意しているので、そちら側のアクセスログを見てみる。
192.168.0.1 my-yum-local-server - - [12/Jun/2008:09:08:59 +0900] "GET /yum/centos/5/os/x86_64/CentOS/libIDL-devel-0.8.7-1.fc6.x86_64.rpm HTTP/1.1" 206 5811 "-" "urlgrabber/3.1.0" "-"
部分的なGETリクエストを要求したということなんだろうが何故に?
yumがurlgrabberを使ってアクセスしているようなので直接urlgrabberで該当パッケージを取得してみる。
192.168.0.1 my-yum-local-server - - [12/Jun/2008:09:26:08 +0900] "GET /yum/centos/5/os/x86_64/CentOS/libIDL-devel-0.8.7-1.fc6.x86_64.rpm HTTP/1.1" 200 17879 "-" "urlgrabber/3.1.0" "-"
パッケージのサイズもyumのprimary.xml.gzに記載されているサイズ(ここでは17,879バイト)で問題なし。
ググってみると結構同じ事象が起きてるらしく、たいてい
http://wiki.linux.duke.edu/YumFaq
のQ.5を参照しろとか言ってる。
で、「The solutions to this problem are:」を見てみると
超適当な訳:
- 使ってるプロキシがおかしいんじゃね?
- FTPリポジトリ使えば?
- ローカルリポジトリ作ってそっちを読むようにすれば?
- yum使うのやめれば?
ええええええええええええええ。
全然問題解決の助けにならねぇ...プロキシなんてそもそも使ってないし
yum取得先もすでにローカルのmirrorサーバーなんですが...orz
yum clean allとかキャッシュ強制削除とかしてみたけど解決せず、とりあえず
取得が正常にいかないファイルだけ手動で取得してインストールしたら他のファイル
は正常にインストールできるようになった。
またもややっつけ対応orz