
Ubuntu日本語フォーラム

ログインしていません。
ubuntu7.10を使用しています。
検索しても皆目検討がつかなかった為質問させていただきます。
Synapticを開こうとすると
E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.
E: _cache->open() failed, please report.
というエラーが表示され、開くことが出来ません。
端末で「dpkg --configure -a」と入力すると「スーパーユーザの権限が必要です」と表示されるのですが
「su -」と入力しパスワードを入力しても「認証失敗」となってしまいスーパーユーザになることが出来ません。
個人情報を編集することも出来なくなってしまいました。
考えられる原因としては、アップデートをしている最中に
ブレーカーが落ちてしまい、強制終了状態になってしまったことにあるのかと考えています。
(Linuxは強制終了させてはいけない、と聞いたことがあるので;)
このような場合、どのように対処すれば良いのでしょうか。
解決方法があればお教えください。
オフライン
蛇足ですが
端末で「sudo dpkg --configure -a」
と入力すると、パスワードの入力を求められますので、ユーザーのパスワードを入力します。
この時、「*」などは表示されませんので、パスワード入力後エンターキーで次に進みます。
スーパーユーザーになって操作する方法が無いわけではありませんが、推奨されていません。
オフライン
御二人ともご回答ありがとうございます。
hideさん>>
ルート権限とは普通にログインした状態のことではないのですか?
hirakawaさん>>
「sudo dpkg --configure -a」と入力したところ
「設定しています」と言う文章が続き、
locales (2.7.9-4) を設定しています ...
設定ファイル /etc/belocs/iso-639.def を新規にインストールしています ...
Generating locales...
en_AU.UTF-8...
と表示された状態から進みません。
何か操作が必要なのでしょうか?
オフライン
qaz01さん、停電により読み込み途中のファイルの一部が壊れ、パッケージリストと
不整合が発生してるみたいです。
皆さんが説明されている通り、Ubuntuでは一時的にroot権限の実行をする場合、
$ sudo コマンド がきまり文句です。GUI環境の場合は、$ gksu コマンドです。
(これは余りお勧めしませんが、$ sudo -s で# になり、rootで実行できます。
解除は、# exit で、$ に復帰します。)
さて、パッケージリストを読み込み、依存関係ツリーを作成させるには次の様にします。
$ sudo apt-get update
note: パッケージリストの更新
$ sudo apt-get -f dist-upgrade
note: アップグレード
それから、synapticを起動してみてください。
それでも同じエラーが出たら、hirakawaさんが述べられたように操作してください。
これでダメなときは、synapticが壊れています。そのときは再度説明します。
最後の編集者: koisan1949 (2008-08-23 16:58:54)
オフライン
koisanさん>>
ご回答ありがとうございます。
パッケージリストを読み込み、依存関係ツリーを作成する為の
コマンドを入力しましたがエラーが表示された為
hirakawaさんの仰る方法を実施しました。
しかしやはり
locales (2.7.9-4) を設定しています ...
設定ファイル /etc/belocs/iso-639.def を新規にインストールしています ...
Generating locales...
en_AU.UTF-8...
と言う状態で止まってしまい、Synapticも開くことが出来ません。
これはSynapticが壊れているということなのでしょうか…。
オフライン
qaz01さん、症状は完全に理解できました。
apt-get -f dist-upgradeを実行する前の段階であるapt-get updateでエラーが
出てる様です。これはapt-getが参照するデータベース本体が壊れています。
これを修復する手段は、私の力量をはるかに逸脱しています。
壊れているパッケージ名が判明すれば、データベース・ファイルを編集すれば
直ると思いますが、私では原因を特定できかねますので無理です。
申し訳ないです。私はギブアップです。
よって、synapticに不具合があるかは考える必要ないです。もっと根本の問題です。
不具合のあるlocales (2.7.9-4) のパッケージ情報のデータを削除する方法が
指摘できれば可能かなとも想定しますが、如何せんデータベースの構成も私では
皆目検討もつきません。また、これ1つとも限らないし。。。。
どなたかアドバイスをお願いします。私では無理です。
追伸
正直言って、dpkg関連のデータベースが壊れていると考えられますので、
私なら、諦めて、Ubuntuの再インストールをします。
簡単だし、最短時間で復帰します。
再インストールを決断されたら、下記コマンドをダメ元で試行してください。
可能性は低いですが。しないよりまし。
$ sudo cp /var/lib/dpkg/available-old /var/lib/dpkg/available
$ sydo cp /var/lib/dpkg/status-old /var/lib/dpkg/status
$ sudo apt-get clean
$ sudo apt-get update
$ sudo apt-get -f dist-upgrade
最後の編集者: koisan1949 (2008-08-25 20:12:27)
オフライン
根本的なところは不明ですが、kernel 2.6.22-15のバグのようです。
http://ubuntuforums.org/showthread.php?t=865679
https://bugs.launchpad.net/ubuntu/+source/debian-installer/+bug/202959
7.10をお使いのはずなのに2.7.9-4のlocalesが入っているということなので、
7.10から8.04へのアップデートを試みられていると思われます(心当たりはありますか?)。
で解決方法ですが、
1. PCを起動します。
2. GRUB画面になったあたりで[ESC]を押し、メニューに切り替えます。
3. 2.6.22-14なカーネルを選択して起動します。
4. sudo dpkg --configure -aを実行します。
で行けるはずです。
ちなみに、
qaz01さん、症状は完全に理解できました。
apt-get -f dist-upgradeを実行する前の段階であるapt-get updateでエラーが
出てる様です。これはapt-getが参照するデータベース本体が壊れています。
データベースが壊れた場合はもっと異なるエラーが出てくれます……。
オフライン
お二方とも、ご回答ありがとうございました。
koisanさん>>
Synapticではなく根本に問題があると言うことで…。
データベースの構成…矢張り分かりません;
そして何度チャレンジしてもこの状況は打破することが出来ないようなので
再インストールしようと思います。
この度は何度も真摯に回答くださりありがとうございました。
hitoさん>>
kernelに問題があるのですか。
アップデートをしようとした記憶はないのですが
知らない間に行っていたのかも知れません。
2.6.22-14のkernelを選択し、コマンドを入力しましたが依然として
E: dpkg was interrupted, you must manually run
'dpkg --configure -a' to correct the problem.
E: _cache->open() failed, please report.
と表示されるだけで開くことは出来ませんでした。
再インストールすることでリセットしたいと思います。
折角お答えしていただいたのに申し訳ありません。ご回答ありがとうございました。
最後の編集者: qaz01 (2008-08-26 21:44:42)
オフライン
お世話になります。
私も同じ様な状態に成りました。
再インストールしか無いのかなと思います。
しかしAnjutaIDEでC++、GTK+2.0のソフトを勉強中でHelloWorldがやっとエラー無く実行出来る環境になったので、この環境をなんとか残して置きたいのですが可能でしょうか?
オフライン
puw2さん、何の助けにならない可能性が高いですが、エラーの症状を
詳細に記載してください。
エラーの内容によっては、アドバイスが得られるかも知れません。
それと運用環境であるカーネルの情報も必要です。
synapticのリポジトリーの設定もどうされてますか。
オフライン
puw2 による投稿:
私も同じ様な状態に成りました。
本当に同じ様な状態なのかを把握するためには、koisan1949さんの仰るとおり、puw2さんによる詳しい状況説明が必要です。例えば、以下の質問に答えてもらえないでしょうか。
1. puw2さんは、何をもって「同じ様な状態」と判断したのか
2. 7.10から8.04へのアップグレード途中でそれが起こったのか
3. アプリケーション>アクセサリ>端末を起動して(Ubuntu自体は普通に起動するのですよね?)
uname -r
や
lsb_release -d
を実行するとどのように表示されるのか
4. 同じく端末内にて
sudo dpkg --configure -a
を実行するとどのように表示されるのか
また、#8のhitoさんの方法や、そこからリンクされているフォーラムの#5などは試されたのでしょうか。
puw2 による投稿:
しかしAnjutaIDEでC++、GTK+2.0のソフトを勉強中でHelloWorldがやっとエラー無く実行出来る環境になったので、この環境をなんとか残して置きたいのですが可能でしょうか?
「環境」というのが、ホームディレクトリにあるファイルであれば、LiveCDとUSBを使ってホームディレクトリをまるごと保存すれば流用できます。
パッケージ構成であれば端末にて
dpkg --get-selections > packages.txt
とでもしておけば、packages.txtに現在インストールされているパッケージ一覧を保存することができます。ただし、puw2さんの現在の環境が7.10 => 8.04へのアップグレード途中の状態であれば、パッケージ構成を保存&復元してもあまり役に立たないかも……。
「環境」がアプリケーションごとに設定したデータということであれば、そのアプリケーションごとに設定ファイルを探しだし、保存することになります。Anjutaだけであれば、なんとかなるかも?
オフライン
早速回答有難うございます。
Ubunte(Linux)は初めてなのでコマンドラインの操作に付いては良く理解してはいません。
Ubunteは最新の8.04をインストールしました。
インターネット使用中にファイルの更新の指示が有りましたので(プラウザの右上のコメント)Synapticでパッケージの更新をしました。しかし更新途中の5分ぐらいで画面が止まってマウス操作を受付無くなったのでハングアップしたと思いノートパソコンの電源を切ってしまいました。
その後電源を再投入してSynapticを再実行したときに
E: dpkg was interrupted, you must manually run
'dpkg --configure -a' to correct the problem.
E: _cache->open() failed, please report.
が出て更新が出来なくなりました。
掲示板を見て下記のコマンドも試して見ましたが結果は同じでした。
$ sudo apt-get update
note: パッケージリストの更新
(インターネットは常時接続です)
しかし、諦めてログオフして電源を切りしばらくして(1-2時間ぐらい)たって
電源を入れデスクトップの右上の更新指示を実行した所今度はエラーが発生せずに無事更新終了しました。
お騒がせして申し訳有りませんでした。
また
AnjutaIDEでC++、GTK+2.0のソフトを勉強中でHelloWorldがやっとエラー無く実行出来る環境...
は同じ様に使用出来るように成りました。
オフライン