SSブログ

【Ubuntu 11.10】アップデートしようとすると、”ロック /var/lib/apt/list/lockが取得できません。”とかのエラーで実行できない時の対処 [ubuntu]

Ubuntu 11.10(Oneiric)になってから、アップデートをしようとした時にエラーがでてアップデートできなくなることが時々出るようになりました。

アップデートには、atp-get やsynapticパッケージマネージャーやアップデートマネージャーなどで行いますが、いずれも実行できなくて、同じエラーがでます。また、dpkgやadd-apt-repositryなども効かないはずです。(未確認ですが、そうなってるはず)

apt-get をコマンドラインで使用した時は、下記のようになります。

oneiric@ocelot:~$ sudo apt-get update
[sudo] password for oneiric:
E: ロック /var/lib/apt/lists/lock が取得できませんでした - open (11: リソースが一時的に利用できません)
E: ディレクトリ /var/lib/apt/lists/ をロックできません
E: ロック /var/lib/dpkg/lock が取得できませんでした - open (11: リソースが一時的に利用できません)
E: 管理用ディレクトリ (/var/lib/dpkg/) をロックできません。これを使う別のプロセスが動いていませんか?

このようになったら、私は次のようにしています。

1) 一度再起動してみる

一旦、全て終了して再起動します。

そして、もう一度ログインしてアップデートをしてみます。アップデートが出来ればOK。出来なければ次に進んで下さい。

2)  Recovery Consoleに入る

まず、ログアウトしてログイン画面を出します。

下図のようにセッションを選ぶメニューを開いて「Recovery Console」を選んで、パスワードを入れてログインします。

SS-apt-recovery-001.jpg

そうすると下図のようにリカバリーコンソールが起動します。

SS-apt-recovery-002.jpg

※ちょっと見にくいし、小さい。

3) ロックファイルの削除

下記の2行を実行してロックファイルを削除します。

sudo rm /var/lib/apt/lists/lock

sudo rm /var/lib/dpkg/lock

その後、下記の2行を行います。

sudo apt-get update

sudo apt-get install -f

最後に、exit と入力して抜けます。

4) 普通のセッション(ubuntuとか)にログイン

あとは普段使用しているセッション(ubuntuやgnome)のセッションにログインして、アップデートするなり、dpkgを使用するなりします。

 

<< 簡単な解説 >>

Ubuntuはインストールしたパッケージをデータベースのような感じで持っています。ここで、apt-get やアップデートマネージャーを同時に複数しようすると、データベースが壊れてしまう可能性があります。

その為、データベースにアクセスするアプリケーションを同時に1つだけにする為に、lockというファイルを利用してデータベースにアクセスしているアプリケーション以外はアクセスできないようにしています。

ところが、途中でデータベースにアクセスしているアプリケーションが何らかのトラブルが発生して、異常終了してしまうと、lockファイルは「異常終了したアプリケーションがアクセスしている」という状態のまま残ってしまいます。

それで、アクセスしているアプリケーションが無いのに、他のアプリケーションや異常終了したアプリケーションを起動しても「他のアプリケーションが使用しています」といった主旨のエラーがでてしまうわけです。

このような方法は、同時に1つしかアクセスできないものに対してよく使われます。有限で複数の場合(同時に5つまでとか)はセマフォーとかが使用されます。

 

 ←パソコン用テプラ

   個人的な都合でテプラを調べていました。
   パソコンに繋げて出力できるテプラって
   あるだろうな~と思ったら、やっぱりありました。
   ただ、普通のテプラより値段がちょっと高いです。


nice!(2)  コメント(1) 
共通テーマ:パソコン・インターネット

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。