レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

Debian(Ubuntu) apt-get upgrade の「E: 未解決の依存関係です。」ではまったら

2012年6月7日 2014年1月16日
debian howto

Debian(Ubuntu) では、パッケージのアップグレードを簡単に行う apt があります。
その代表的なコマンドが、apt-get です。

$ apt-get update
...
$ apt-get upgrade
...

と、投入することでパッケージのアップグレードができます。

ただ、これでアップグレードをやったときに、エラーが発生することがあります。
よくあるのが、アップグレードの順番によって、依存関係が壊れてしまって、にっちもさっちも行かなくなることがあります。

$ apt-get upgrade
...
...の処理中にエラーが発生しました
...
$ apt-get remove XXXXX
...
E: 未解決の依存関係です。'apt-get -f install' を実行してみてください (または解法を明示してください)。

このパターンです。とりあえず、最初にエラーが発生した依存関係のあるパッケージを削除しようと apt-get remove を実施しても、「E: 未解決の依存関係です。」ではじかれて、何もできなくなるパターンです。

apt-get upgrade の「E: 未解決の依存関係です。」ではまったら

apt-get upgrade の「E: 未解決の依存関係です。」ではまったら
aptitude を使ってみることです。

そもそも、 apt-get を いつまでも使っているのが問題なんですよね。

はまった例をあげて簡単に解説してみます

ここでは、個人的にmysql 5.5 のアップグレードでエラーが出た例を簡単に解説してみます。

apt-get を使ってパッケージをアップグレードしてみる

$ apt-get update
...

$ apt-get upgrade

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージはアップグレードされます:
  ...
  mysql-server-5.5 mysql-server-core-5.5 openssh-client openssh-server openssl
  ...
アップグレード: 34 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。
66.9 MB のアーカイブを取得する必要があります。
この操作後に追加で 6,017 kB のディスク容量が消費されます。
続行しますか [Y/n]? Y
  ...
mysql-server-5.5 5.5.24-1~dotdeb.1 を (.../mysql-server-5.5_5.5.25-1~dotdeb.0_a d64.deb で) 置換するための準備をしています ...
Stopping MySQL database server: mysqld.
Stopping MySQL database server: mysqld.
mysql-server-5.5 を展開し、置換しています...
dpkg: /var/cache/apt/archives/mysql-server-5.5_5.5.25-1~dotdeb.0_amd64.deb の処 理中にエラーが発生しました (--unpack):
 '/usr/lib/mysql/plugin/ha_example.so' を上書きしようとしています。これはパッケ ージ libmysqlclient-dev 5.5.24-1~dotdeb.1 にも存在します
  ...
以下のパッケージの処理中にエラーが発生しました:
 /var/cache/apt/archives/mysql-server-5.5_5.5.25-1~dotdeb.0_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

$ apt-get upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
これらを直すためには 'apt-get -f install' を実行する必要があるかもしれません。
以下のパッケージには満たせない依存関係があります:
 mysql-server-5.5 : 依存: mysql-server-core-5.5 (= 5.5.24-1~dotdeb.1) しかし、5 5.25-1~dotdeb.0 はインストールされています
E: 未解決の依存関係があります。-f オプションを試してください。

apt-get upgrade を再投入してみる

$ apt-get upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
これらを直すためには 'apt-get -f install' を実行する必要があるかもしれません。
以下のパッケージには満たせない依存関係があります:
 mysql-server-5.5 : 依存: mysql-server-core-5.5 (= 5.5.24-1~dotdeb.1) しかし、5 5.25-1~dotdeb.0 はインストールされています
E: 未解決の依存関係があります。-f オプションを試してください。

ここで、 ‘apt-get -f install’ を実行してみては?と言われるので、言われるがままに投入してみます。


apt-get -f install を投入してみる

$ apt-get -f install
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
依存関係を解決しています ... 完了
以下の特別パッケージがインストールされます:
  mysql-server-5.5
以下のパッケージはアップグレードされます:
  mysql-server-5.5
アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 25 個。

 ...
mysql-server-5.5 5.5.24-1~dotdeb.1 を (.../mysql-server-5.5_5.5.25-1~dotdeb.0_a d64.deb で) 置換するための準備をしています ...
Stopping MySQL database server: mysqld.
Stopping MySQL database server: mysqld.
mysql-server-5.5 を展開し、置換しています...
dpkg: /var/cache/apt/archives/mysql-server-5.5_5.5.25-1~dotdeb.0_amd64.deb の処 理中にエラーが発生しました (--unpack):
 '/usr/lib/mysql/plugin/ha_example.so' を上書きしようとしています。これはパッケ ージ libmysqlclient-dev 5.5.24-1~dotdeb.1 にも存在します
 ...
以下のパッケージの処理中にエラーが発生しました:
 /var/cache/apt/archives/mysql-server-5.5_5.5.25-1~dotdeb.0_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

と、最初にapt-get upgrade を投入したときと同じ結果になりました。

それで、よく調べてみると、libmysqlclient-dev これがちゃんと先にアップグレードできていないのが原因っぽい。 また、よくよく調べてみれば、libmysqlclient-dev で ha_example.so を使っているのでアップグレードできないよ・・という感じのエラーみたいなので、 とりあえず、このパッケージを削除してみます。


libmysqlclient-dev を削除してみる

$ apt-get remove libmysqlclient-dev
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の問題を解決するために 'apt-get -f install' を実行する必要があるかもしれません:
以下のパッケージには満たせない依存関係があります:
 mysql-server-5.5 : 依存: mysql-server-core-5.5 (= 5.5.24-1~dotdeb.1) しかし、5.5.25-1~dotdeb.0 はインストールされようとしています
E: 未解決の依存関係です。'apt-get -f install' を実行してみてください (または解法を明示してください)。

と、先のにapt-get upgrade を再投入したときと同じように
‘apt-get -f install’ を実行してみては?と言われるので、言われるがままに投入してみます。

apt-get upgrade を再再投入してみる

$ apt-get upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
これらを直すためには 'apt-get -f install' を実行する必要があるかもしれません。
以下のパッケージには満たせない依存関係があります:
 mysql-server-5.5 : 依存: mysql-server-core-5.5 (= 5.5.24-1~dotdeb.1) しかし、5 5.25-1~dotdeb.0 はインストールされています
E: 未解決の依存関係があります。-f オプションを試してください。

と、完全に堂々巡りです。


いよいよ aptitude を使ってパッケージのアップグレードを行ってみる

$ aptitude update
発見 http://ftp.jp.debian.org squeeze Release.gpg
無視 http://ftp.jp.debian.org/debian/ squeeze/main Translation-en
....

$ aptitude safe-upgrade
以下のパッケージが更新されます:
  libmysqlclient-dev libmysqlclient18 mysql-server-5.5 
....

以下の、インストールが完了していないパッケージが設定されます:
  initscripts linux-base linux-image-2.6.32-5-amd64 mysql-client-5.5
  mysql-server-core-5.5
更新: 24 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。
21.2 MB のアーカイブを取得する必要があります。展開後に 2,619 kB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?] y
....

mysql-server-5.5 を展開し、置換しています...
dpkg: /var/cache/apt/archives/mysql-server-5.5_5.5.25-1~dotdeb.0_amd64.deb の処 理中にエラーが発生しました (--unpack):
 '/usr/lib/mysql/plugin/ha_example.so' を上書きしようとしています。これはパッケ ージ libmysqlclient-dev 5.5.24-1~dotdeb.1 にも存在します
....

done

現在の状態: 更新が 24 個 [-1]。

とエラーが発生しますが、apt-getと異なるのは、インストール(アップグレード)できるものは、全てインストール(アップグレード)してしまう点です。
apt-getでは、エラーが発生した時点で、処理を停止してしまいますから、そこから抜け出せなくなることが、よくあります。

続けて、再度、aptitude safe-upgrade を投入します。


aptitude safe-upgradeを再投入してみる

$ aptitude safe-upgrade
以下のパッケージが更新されます:
  libmysqlclient-dev libmysqlclient18 mysql-server-5.5 
....
更新: 23 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。
アーカイブ 20.4 MB 中 0 B を取得する必要があります。展開後に 2,296 kB のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?] y
....

mysql-server-5.5 を展開し、置換しています...
dpkg: /var/cache/apt/archives/mysql-server-5.5_5.5.25-1~dotdeb.0_amd64.deb の処 理中にエラーが発生しました (--unpack):
 '/usr/lib/mysql/plugin/ha_example.so' を上書きしようとしています。これはパッケ ージ libmysqlclient-dev 5.5.24-1~dotdeb.1 にも存在します
....


現在の状態: 更新が 2 個 [-22]。

とエラーが同じエラーが発生しますが、インストール(アップグレード)できるものもあり、更新作業は進んでいる点に注意してください。

続けて、再度、aptitude safe-upgrade を投入します。


aptitude safe-upgradeを再再投入してみる

$ aptitude safe-upgrade
以下のパッケージが更新されます:
  mysql-server-5.5
更新: 1 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。
アーカイブ 8,860 kB 中 0 B を取得する必要があります。展開後に 841 kB のディスク 領域が新たに消費されます。
先に進みますか? [Y/n/?] y
changelog を読んでいます... 完了
パッケージを事前設定しています ...
(データベースを読み込んでいます ... 現在 41075 個のファイルとディレクトリがイン ストールされています。)
mysql-server-5.5 5.5.24-1~dotdeb.1 を (.../mysql-server-5.5_5.5.25-1~dotdeb.0_amd64.deb で) 置換するための準備をしています ...
Stopping MySQL database server: mysqld.
Stopping MySQL database server: mysqld.
mysql-server-5.5 を展開し、置換しています...
man-db のトリガを処理しています ...
mysql-server-5.5 (5.5.25-1~dotdeb.0) を設定しています ...
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld ..
Checking for tables which need an upgrade, are corrupt or were
not closed cleanly..

現在の状態: 依存関係破損が 0 個 [-1], 更新が 1 個 [-1]。

とエラーがなくなりました。

一応、確認のため、再度、aptitude safe-upgrade を投入します。

$ aptitude safe-upgrade
インストール・削除・更新されるパッケージがありません。
更新: 0 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。
0 B のアーカイブを取得する必要があります。展開後に 0 B のディスク領域が新たに消 費されます。

とアップグレード対象パッケージがないのがわかります。

最後に、確認のため、mysqlのバージョンを確認してみます。

$ mysql --version
mysql  Ver 14.14 Distrib 5.5.25, for debian-linux-gnu (x86_64) using readline 6.1

と正しくアップグレードできたようです。


この記事は、 ただ、apt-get じゃなくって、aptitude を使いなさい!!というだけの記事です。
それを 長々と実例で解説しています。 個人的な備忘録も兼ねてますので、わかりにくかったらゴメンなさい。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

Debian(Ubuntu)で apt-get upgrade で自動更新したくない場合の対応

今回は、 Debian(Ubuntu)で apt-get upgrade (aptitude も同様)で自動更新したくない場合の対処方法につい ...

mysql を make install してみる

今回は、mysqlを make install してみます。 mysqlでSSL接続ができない場合の原因と対処 でも一部書いていましたが、ここ ...

mysql5.1系からmysql5.5系へアップグレードする

あえてmysql5.1系をインストールする でMySQL5.1系をインストールしていました。 MySQL5.1でも十分ですが、5.5への移行は ...

Ubuntu Server で単純にパッケージを削除しても設定ファイルは残る、残った設定ファイルを一括削除するには?

Ubuntuのパッケージ管理は、dpkg と apt によって行われます。 Red Hat系のrpmによるパッケージ管理で言うと、dpkg = ...

Ubuntu Server にLAMPをインストールし、Wordpressを使ってみる

Ubuntu Server 10.04 LTS をインストールする では、Ubuntu Server のインストールまでを行いました。 今回は ...



コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.2749 [s]