2006年05月18日

[FC4]Yumでエラーが出た場合の対応

Yumを使っているとよくエラーが出るが、あまりネットに情報が無いのでメモ。

まずは下記を確認。


1. yumをクリーンアップする。
下記コマンドを実行してダウンロードしたパッケージと古いヘッダを削除する。

# yum clean all

2. yum.conf を最新版にする
下記URLにyum.conf最新版があるので、今使っている/etc/yum.confをバックアップしてから上書きする。

http://www.fedorafaq.org/samples/yum.conf

3. yum.confのtimeoutを長くする。
パッケージをダウンロードしようとしてもパッケージをダウンロードする先のサーバの反応が遅いとtimeoutして止まってしまう場合があるので、timeoutを長めにする。

/etc/yum.conf の timeout=10 を timeout=60 とか長めにする。


ダウンロードできずに次のミラー、その次のミラー、と処理を繰り返していくと、下記のようなエラーが出ることがある。

------error message------
Traceback (most recent call last):
File "/usr/bin/yum", line 29, 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 653, in doTransaction
problems = self.downloadPkgs(downloadpkgs)
File "__init__.py", line 609, in downloadPkgs
File "repos.py", line 624, 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------

上記エラーメッセージはpythonが吐いているらしい(関係ないけど)

上記メッセージが出る理由はそもそもサーバからrpmを落とせないのが問題なので、私は3のタイムアウト設定で回避した。


私の会社ではコンテンツフィルタを使っているため、http、ftpともにproxy経由でダウンロードしなければならない。httpやftpを使う場合はホームディレクトリの .bash_profile に下記のように追加する。

export http_proxy=http://xxx.xxx.xxx:8080/
export ftp_proxy=http://xxx.xxx.xxx:8080/
export HTTP_PROXY=http://xxx.xxx.xxx:8080/
export FTP_PROXY=http://xxx.xxx.xxx:8080/

.bash_profile に追加すると、wgetなどもプロキシ経由になるので、yumのときだけproxyを使う場合は上記のコマンドを単独のシェルとして保管して必要なときに実行するとよい。

コンテンツフィルタを使っている場合、大きいファイルのチェックに時間がかかってタイムアウトすることがあるみたいです。
yumで落とせなければwgetで落としたり、PCでダウンロードしてからftp経由で /var/cache/yum/updates-released/packages/ にrpmをいれておけば「yum update」のときにインストールしてくれます。

yumの設定については@ITが親切。
yumコマンドでよく利用するコマンド
特定のファイルをyumのアップデート対象から外すには
国内のミラーサイトでFedora Extrasを使うには
posted by まきすけ at 21:13 | Comment(0) | TrackBack(1) | Linuxとか
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/17991716

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

CentOS で、yumが途中でエラーになった場合
Excerpt: CentOSで、yum upgrade 等で、アップデートをかけている最中に、エラーになってしまった場合、 例えば、 Traceback (most recent call last): File..
Weblog: 趣味でやってるサーバー
Tracked: 2009-07-03 17:28