
Ubuntu日本語フォーラム

ログインしていません。
アップデート・マネージャでのアップデートでエラーが出るため、
端末からアップデートを試みたところ、以下のメッセージが出ました。
何卒ご指導お願いいたします。
dpkg: parse error, in file '/var/lib/dpkg/status' near line 31033 package 'libxml-twig-perl':
`Recommends' フィールド、パッケージ `rtpsp' 参照後の構文エラー
E: Sub-process /usr/bin/dpkg returned an error code (2)
オフライン
keramosさん このアップデートでのエラーは、ちょっと骨が折れます。
こちらに情報がありました。
http://www.linuxquestions.org/questions … us-155478/
この記載内容で#13項に対処の方法が述べられています。
Gnome端末での操作になります。
~$ sudo -s ~# mv /var/lib/dpkg/status /var/lib/dpkg/status_bak ~# cp /var/backups/dpkg.status.<any latest number>.gz /var/lib/dpkg/ note: アプリケーションの隣の場所をクリック、ホームホルダをクリックして、ファイル・フラウザを開いてください。 それから左側のファイルシステムをクリックするとルートの一覧が出ますので、varアイコンをクリックし、 更にbackupsアイコンをクリックすればdpkg.status.番号.gzがあり、GUI環境で参照できます。 any latest numberなので、一番大きな値を選べばよいのです。 面倒なら、~# ls /bar/backups/dpkg.status.* でもいいです。 ~# gunzip -d /var/lib/dpkg/dpkg.status.<any latest number>.gz note: <any latest number>は、上記で指定した番号です。圧縮されたものを解凍します。 ~# mv /var/lib/dpkg/dpkg.status.<the number in third step> /var/lib/dpkg/status note: statusを上書きする前に、事前にファイル・プラウザで/var/lib/dpkgの一覧を参照しておけば安心です。 ~# apt-get updates note: I hope this can fix your problem buddy.これで直るそうですが、自己責任でお願いします。 さらに、不具合がでたときはそのerrorを提示してください。 ~# exit ~$
オフライン
申し訳ないです。参照した文面をそのままcopy & pastしましたので、
初歩的なミスがあります。
誤 ~# apt-get updates
正 ~# apt-get update
オフライン
蛇足です。
#2の対処の理屈を説明すると。
#1で提示されたerror内容について、dpkg管理ファイルであるstatusの当該事項が壊れているので、
問題の無い事前のバックアップであるstatusに戻し、再度apt-get updateを試行することです。
mv /var/lib/dpkg/status /var/lib/dpkg/status_bak は、対処した行為が不適切であった場合に備えて、
元に戻せるようにrenameして保存しておきます。
オフライン
koisan1949さん、
/var/backups/dpkg.status* の世代の理解が逆ですよ。
あと、/var/lib/dpkg/status-oldの存在は何処へ?
たいへん、お世話になります。
どうも、やり方が悪かったのでしょうか?
アップデートマネージャーから以下のコメントがでて、アップデートさせてくれません。
端末でも同様のメッセージが出ます。
'E:ファイル /var/lib/dpkg/status をオープンできませんでした - open (2: そのようなファイルやディレクトリはありません), E:パッケージリストまたはステータスファイルを解釈またはオープンすることができません。'
オフライン
浅はかさを暴露してしまいました。
eroorの本文をそのままダイレクトにGoogle検索した結果を鵜呑みにして、
検証もせず#2で提示してしまったことによる不適切な発言でした。
さらに、輪をかけて以前のstatusのバックアップの保存順番を間違えていました。
STGSAGWANさんによるご指摘 による投稿:
1. /var/backups/dpkg.status* の世代の理解が逆ですよ。
2. /var/lib/dpkg/status-oldの存在は何処へ?
1. について
dpkg.statu.番号.gzのプロパテイを見たら、確かに最新版は番号の小さいものでした。だから1ですね。
backupする毎に、以前の番号をシーケンシャルに書き換えるのですか。。。すごいことしてますね。
2. について
/var/lib/dpkg/status-oldには、updateして不具合が出たと思われる前段が保存されている様です。
このことから、下記コマンドで十分かな…
~$ sudo -s
~# mv /var/lib/dpkg/status /var/lib/dpkg/status_bak
~# cp /var/lib/dpkg/status-old /var/lib/dpkg/status
~# apt-get updates
~# exit
取り敢えず、下記は無視してください。
keramosさん による投稿:
/var/lib/dpkg/status をオープンできませんでした
~# mv /var/lib/dpkg/status /var/lib/dpkg/status_bak
この操作をするとstatusファイルはstatus_bakとなり、statusなくなります。
ただし、バックアップstatuを解凍し、
~# mv /var/lib/dpkg/dpkg.status.<the number in third step> /var/lib/dpkg/status
にて、statusが作成されるはずですが。。。
オフライン
訂正します。
koisan1949 による投稿:
1. について
dpkg.statu.番号.gzのプロパテイを見たら、確かに最新版は番号の小さいものでした。だから0ですね。
note: 最新版は番号が0でした。こちらは圧縮されていないです。1から上は圧縮されています。
...
2. について
/var/lib/dpkg/status-oldには、updateして不具合が出たと思われる前段が保存されている様です。
このことから、下記コマンドで十分かな…
~$ sudo -s
~# mv /var/lib/dpkg/status /var/lib/dpkg/status_bak
note: statuファイルが存在しないのなら、この操作は不要です。
~# cp /var/lib/dpkg/status-old /var/lib/dpkg/status
~# apt-get update
~# exit
この操作でダメなときは、
~# cp /var/backups/dpkg.status.0 /var/lib/dpkg/status
note: テキストファイルである正常なstatusにすることがポイントです。
オフライン
~$ sudo -s
~# mv /var/lib/dpkg/status /var/lib/dpkg/status_bak
note: statuファイルが存在しないのなら、この操作は不要です。
ーーーー 不要であるとのメッセージが出ました。
~# cp /var/lib/dpkg/status-old /var/lib/dpkg/status
~# apt-get update
~# exit
以上で直りました。本当にありがとうございました。
快調に動いております。
オフライン