2005年11月19日

yumでエラーが出る場合の対処

Fedora Core 4でしばらく間をあけてyumを使ってupdateしようとしたら、エラーが出て更新できない状況になったので対処法を書いておきます。

追記:こちらの記事「[FC4]Yumでエラーが出た場合の対応」もご参考にどうぞ

よくあるパターンとして。
1)yum自体が古い(まずyumだけupdateする)
2)更新先のURLが古い
3)configがおかしい

とかありますが、今回はなんか謎だったのでいろいろ試しました。

------error message------
Traceback (most recent call last):
File "/usr/bin/yum", line 27, in ?
yummain.main(sys.argv[1:])
File "/usr/share/yum-cli/yummain.py", line 170, in main
base.doTransaction()
File "/usr/share/yum-cli/cli.py", line 651, in doTransaction
problems = self.downloadPkgs(downloadpkgs)
File "__init__.py", line 605, in downloadPkgs
File "repos.py", line 619, in get
File "/usr/lib/python2.4/site-packages/urlgrabber/mirror.py", line 414, in urlgrab
return self._mirror_try(func, url, kw)
File "/usr/lib/python2.4/site-packages/urlgrabber/mirror.py", line 392, in _mirror_try
mirrorchoice = self._get_mirror(gr)
File "/usr/lib/python2.4/site-packages/urlgrabber/mirror.py", line 290, in _get_mirror
return gr.mirrors[gr._next]
IndexError: list index out of range
------error message------

【対応1】まず、yumだけupdateしてみた。
# yum update yum
アップデートは正常に終わるも、まだエラーが出る。

【対応2】yum.pidとかyumのプロセスが残っているんじゃないの?という情報があり、試してみた。

1)psコマンドでyumのプロセスが上がっていないか確認。あがっていればkillコマンドで該当プロセスを落とす。
# ps -ef | grep yum

2)/var/run/yum.pid ファイルを削除。
# rm /var/run/yum.pid

まだ、エラーが出る。

【対応3】環境変数LANGをCにするとイイぞ!という情報があったので試してみた。
http://okwave.jp/kotaeru.php3?q=1554369
http://bbs.fedora.jp/read.php?FID=2&TID=695

# export LANG=C

まだ、エラーが出る。

【対応4】pythonのアップデート
吐き出されているエラーがpythonのプログラムでindex範囲外のindex番号を指定しているというエラーらしいので、pythonをアップデートしてみた。
が。。。pythonは最新バージョンだった(T-T

【対応5】yumの設定をダウンロード
http://fedorafaq.yanbaru.dyndns.org/#yumconf

# cd /etc
# rm -f yum.conf
# wget http://www.fedorafaq.org/samples/yum.conf


【対応6】yumのリポジトリを消去
yumのリポジトリをいったんキレイにして試してみた。
# yum clean all

まだ、エラーが出る。
が、ちょっと変わった。
------error message------
Error Downloading Packages:
gtk2 - 2.6.10-2.fc4.4.i386: failure: gtk2-2.6.10-2.fc4.4.i386.rpm from updates-released: [Errno 256] No more mirrors to try.
tetex-fonts - 3.0-6.FC4.i386: failure: tetex-fonts-3.0-6.FC4.i386.rpm from updates-released: [Errno 256] No more mirrors to try.
------error message------


rpmが見つからない、というので、wgetでRPMのミラーサイト(http://ftp.iij.ad.jp/とか)から直接/var/cache/yum/updates-released/packages/へ配置した。


【対応7】rpmのDBのリビルド
rpmのDBをリビルドしてみた。
# rpm --rebuilddb

【対応8】再度yum update
全パッケージを取得していたので、正常に完了した。

【結論】
まず下記2点を確認
・yumのパッケージが古くないか?
・yumのconfigは正しいか?

yumのパッケージを検索するサイトの一覧はFedoraCore公式サイトのミラーリストにあります。
検索するサイトを変更する方法は@ITのLinux Tips 国内のミラーサイトでFedora Extrasを使うには に載っているので参考にしてください。

そしてyum、rpmまわりをクリーンに。
・yum clean all
・rpm --rebuilddb

パッケージをダウンロードできない場合は直接wgetで持ってこよう。
パッケージさえあればrpmコマンドでもupdateできるし。

結局アップデートさえできればyumじゃなくてaptでもいいんです(゚∀゚)



posted by まきすけ at 17:11 | Comment(2) | TrackBack(3) | Linuxとか
この記事へのコメント
初めまして、今日は。

yumのエラーでググって、こちらに辿り着きました。同じ症状でしたので大変参考になりました。当方の場合CentOS5.2から5.3へのアップデートでなった様です。

ありがとうございました_(._.)_
Posted by fudy at 2009年06月04日 11:23
fudyさん

コメントありがとうございます。
ご参考になったのであれば幸いです。
Posted by まきすけ at 2009年06月05日 08:54
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]


この記事へのトラックバック

[ハックス][linux]yumを実行するとエラーになってしまう件
Excerpt: fedora 7を自宅サーバ兼クライアントとして使っています。 トリガーはわからないのですが、突然yumを実行すると下記のエラーが出るようになりました。 エラーの内容 [root@localhost..
Weblog: システムとは何か?
Tracked: 2007-11-19 22:46

[Linux][memo] yum update が妙なエラーを...
Excerpt: 対策は yum clean all rpm --rebuilddb yum update で OK。猫ぐらし: yumでエラーが出る場合の対処 のままです。ありがとうございます m(__)m。
Weblog: エンジニアでありたい人の日記
Tracked: 2009-09-30 15:47

mysqlのソースコンパイルではまる
Excerpt: mysqlコンパイルではまったのでメモ
Weblog: hagemがなんか作るブログ
Tracked: 2012-01-25 12:31