
Ubuntu日本語フォーラム

ログインしていません。
Synaptic パッケージ・マネージャで、パッケージのインストールと削除ができなくなりました。
「変更が適用されました」の画面で「いくつかの変更と更新に失敗しました。失敗の詳細を表示するには下の「詳細」パネルを広げてください」
とでてしまいました。
詳細パネルには
(データベースを読み込んでいます...
dpkg:重大な警告:パッケージ'gimp'のファイル一覧ファイルがありません。このパッ
ケージには、現在インストールされているファイルがないものとします。
dpkg:重大な警告:パッケージ'libmono-data2.0-cil'のファイル一覧ファイルがあり
ません。このパッケージには、現在インストールされているファイルがないものとします。
dpkg:復旧不可能な致命的なエラーです。中止します:
files list file for package 'wine gecko' is missing final newline
E: Sub process /usr/bin/dpkg returned an error code (2)
パッケージのインストールに失敗しました。修復を試みます。
オフライン
まずは状況を把握したいので、端末から、
$ (cd /var/lib/dpkg/info; file gimp.list libmono-data2.0-cil wine-gecko.list) $ dpkg -l gimp libmono-data2.0-cil wine-gecko
を実行し、出力結果をここに貼り付けてみてください。
※上記では、問題と思われるファイルとパッケージの状態を調べます。
$ (cd /var/lib/dpkg/info; file gimp.list libmono-data2.0-cil wine-gecko.list) gimp.list: ERROR: cannot open `gimp.list' (No such file or directory) libmono-data2.0-cil: ERROR: cannot open `libmono-data2.0-cil' (No such file or directory) wine-gecko.list: X11 SNF font data, LSB first $ dpkg -l gimp libmono-data2.0-cil wine-gecko 要望=(U)不明/(I)インストール/(R)削除/(P)完全削除/(H)維持 | 状態=(N)無/(I)インストール済/(C)設定/(U)展開/(F)設定失敗/(H)半インストール/(W)トリガ待ち/(T)トリガ保留 |/ エラー?=(空欄)無/(H)維持/(R)要再インストール/X=両方(状態,エラーの大文字=異常) ||/ 名前 バージョ 説明 +++-==============-==============-============================================ ii gimp 2.6.6-0ubuntu1 The GNU Image Manipulation Program ii libmono-data2. 2.0.1-4ubuntu0 Mono.Data.* libraries (2.0) ri wine-gecko 0.1.0-0ubuntu1 Microsoft Windows Compatibility Layer (Web B
こういう出力になりました。
オフライン
予想通りの出力結果です。
直す方法は、今夜帰ったら書きます。
まず、直す方法。
1. /var/lib/dpkg/info/wine-gecko.list ファイルをリネームする。
例えば、wine-gecko.list.broken などへリネームする。
※管理者権限で開いたファイルブラウザ(nautilus)で操作する。
2. Synapticにて、
wine-gecko、 gimp、 libmono-data2.0-cil を「再インストール指定」し、次に「適用」する。
※「削除後に再度インストールする」という作業ではなく、Synapticのメニューの中にある「再インストール指定」の事を指します。
※この時点では、適用後にまだ警告が出ます。
3. 次回からSynapticは警告もエラーもなく正常に動作するようになります。
次に、説明。
dpkg:重大な警告:パッケージ'X'のファイル一覧ファイルがありません。このパッケージには、現在インストールされているファイルがないものとします。
という警告メッセージは、パッケージ'X'に対する /var/lib/dpkg/info/X.list というファイルが紛失している場合に出ます。
そして、「警告」はSynapticの処理を中断しません。
files list file for package 'X' is missing final newline
というエラーメッセージは、パッケージ'X'に対する /var/lib/dpkg/info/X.list というファイルが破損している(バイナリデータになっている)場合に出ます。
※fileコマンドで調べると、正常状態のX.listは「ASCII text」、異常状態のX.listはそれ以外で表示されるはずです。(もちろん、直接テキストエディタで開いてみても分かる)
そして、「エラー」はSynapticの処理を中断します。
上記のメッセージを出ないように直すには、パッケージ'X'を「再インストール指定」することで、X.listを再生成するのが一番楽だと、私は思います。
しかし、「エラー」を含む状態ではSynapticではインストールや削除の操作を完了することができません。
そこで、X.listというファイルを手動でリネームし、人工的に「紛失」状態にすることで、「エラー」の代わりに「警告」となるように仕向けています。
最後に、補足。
https://lists.ubuntu.com/archives/ubunt … 04520.html (英語)
のような別の修正方法もあり、その方法も正しいと思いますが、手順がやや複雑に思います。
以上は、開発者でもない1ユーザである私が、独断で調査した内容です。
ひょっとしたら、本来の動きとは違う事を言っているかもしれません。
あまり鵜呑みにしないようにしてください。