[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:50638] lenny で aptitude がエラー終了するとお嘆きのかたへ



小林です。

lenny の aptitude 0.4.11.3-1 が「E: Method http has died unexpectedly!」
とエラー終了するとお嘆きのかたがいるかもしれないので、一応原因と対処方
法を書いておきます。

# まだテスト版である lenny をお使いのかたは BTS のチェックも自分でされ
# ているかと思いますが、まぁ日本語環境を使っているかたなら誰でも遭遇し
# そうな問題なので……。

■問題
日本語ロケールで使用していると、lenny の aptitude 0.4.11.3-1 で HTTP 
が使用できません。

例えば aptitude update は次のようなエラーとともに終了します。

  $ sudo aptitude update
  E: Method http has died unexpectedly!
  E: Method http has died unexpectedly!

また aptitude full-upgrade なども次のようにエラー終了します。

  $ sudo aptitude full-upgrade
  パッケージリストを読み込んでいます... 完了
  依存関係ツリーを作成しています                
  状態情報を読み取っています... 完了
  拡張状態情報を読み込んでいます      
  パッケージの状態を初期化しています... 完了
  タスクの記述を読み込んでいます... 完了        
  以下のパッケージが更新されます:
    gnome-session libgksu2-0 libgnomevfs2-0 libgnomevfs2-bin 
    libgnomevfs2-common libgnomevfs2-extra libnautilus-extension1 nautilus 
    nautilus-data python-ipy python-pygame reportbug 
  更新: 12 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
  8990kB のアーカイブを取得する必要があります。展開後に 1796kB のディスク領域が解放されます。
  先に進みますか? [Y/n/?] 
  拡張状態情報を書き込んでいます... 完了
  E: Method http has died unexpectedly!
  パッケージリストを読み込んでいます... 完了
  依存関係ツリーを作成しています                
  状態情報を読み取っています... 完了
  拡張状態情報を読み込んでいます      
  パッケージの状態を初期化しています... 完了
  タスクの記述を読み込んでいます... 完了    

■原因および背景
aptitude のセクション (パッケージ分類) 情報を収めた日本語設定ファイル
/usr/share/aptitude/aptitude-defaults.ja の 1 行のバイト数などが、
aptitude で使用されている apt の制限に引っ掛かっているのが原因です。

aptitude では暫く前から、セクションの説明をハードコードするのではなく、
設定ファイルから読み込むようになっています。各言語用の説明を収めた設定
ファイルは、/usr/share/aptitude にインストールされている 
aptitude-defaults.xx (xx は言語コード) というファイルです。aptitude
0.4.11.3 より前のバージョンでは日本語訳が古く、aptitude プログラムは日
本語のセクション説明設定ファイルを読みにいくようになっていませんでした 
(英語の設定ファイルを読みにいくようになっていました)。そのため、問題は
発生しませんでした。

また、問題となる apt の制限は、2008-04-27 に sid にアップロードされた 
apt 0.7.12 で撤廃されています。したがって、それ以降のバージョンの apt 
とともに使えば問題は発生しません。

以上のことから分かるように、問題が発生するのは、apt 0.7.11 以前かつ 
aptitude 0.4.11.3 以降をお使いのかたです。

■対処方法
該当するバージョンをお使いのかたは、ロケール「C」で使用してください。
つまり、aptitude update などの頭に「LANG=C」をつけて実行してください。

■参考情報
* Bug#473559: [aptitude] aptitude: line 50 too long
* Bug#473633: aptitude: exit with errors
* Bug#477826: aptitude: does not start in ru_RU.UTF-8 locale
* Bug#473874: Lift the 1024-byte limit on configuration file lines.
* Bug#474065: Lift the 64000-byte restriction on the size of messages sent to subprocesses.

-- 
|:  Noritada KOBAYASHI
|:  Dept. of General Systems Studies,
|:  Graduate School of Arts and Sciences, Univ. of Tokyo
|:  E-mail: nori1@xxxxxxxxxxxxxxxxxxxxxxx (preferable)
|:          nori@xxxxxxxxxxxxxxxxxxx
|:  Key fingerprint = AB26 9533 81DA 997B 3C06  4380 19BB ADA0 695C 9F53

Attachment: pgpXVMRxGR8SD.pgp
Description: PGP signature