dpkg / apt-get は別のパッケージをインストールして上書きしようとします

dpkg / apt-get は別のパッケージをインストールして上書きしようとします

Pound をインストールしたいです。次のようにします。

apt-get install pound

次のような結果になります:

root@myhost:~# apt-get install pound
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-3.2.0-23-generic linux-headers-3.2.0-23
Use 'apt-get autoremove' to remove them.
The following NEW packages will be installed:
  pound
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
Need to get 98.3 kB of archives.
After this operation, 226 kB of additional disk space will be used.
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/universe pound amd64 2.5-1.1 [98.3 kB]
Fetched 98.3 kB in 0s (418 kB/s)
Selecting previously unselected package pound.
(Reading database ... 102644 files and directories currently installed.)
Unpacking pound (from .../pound_2.5-1.1_amd64.deb) ...
Processing triggers for ureadahead ...
ureadahead will be reprofiled on next reboot
Processing triggers for man-db ...
Setting up mysql-server-5.5 (5.5.32-0ubuntu0.12.04.1) ...

Configuration file `/etc/apparmor.d/usr.sbin.mysqld'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.

mysql-server がインストールされ、実行されています。これを再インストールしたくありません。

Pound パッケージには依存関係として mysql-server は必要ありません。

これを修正するにはどうすればいいでしょうか?

これをアップグレードすると実稼働システムがダウンしてしまうので、アップグレードしたくありません。何かが詰まっているようで、dpkgインストールされているパッケージを強制的に mysql-server の再インストールまたはアップグレードを強制しているようです。

答え1

mysql-server-5.5パッケージをアップグレードするようです。そのバージョンは、USN-1909-1なので、セキュリティアップデートをインストールしていなかったようです。

設定ファイルのさまざまなバージョンの違いを確認する必要があります (Dたとえば、プロンプトで を押します)。次に、プロンプトの指示に従って、 を使用して現在のバージョン (そのファイルの) を保持するかN、 を使用して Ubuntu のバージョンを受け入れるYか、 を使用してシェルを起動して自分で処理する (たとえば、変更をマージする) ことができますZ

あなたのアップデートに応えて:

過去のある時点で、誰か (あなたまたはこのボックスの別の管理者) が、おそらく気付かずに MySQL のアップグレードを開始しました。または、システムがセキュリティ更新を自動的に適用するように設定されていて、何らかの理由で MySQL のアップグレードが失敗した可能性があります。出力でこれを確認できますapt-get

0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.

間違いなく、 をチェックすればdpkg -s mysql-server-5.5、ステータス ラインは にならないでしょうinstall ok installed

とにかく、最初に起こったことは、dpkg が実際に新しいパッケージからファイルを解凍したことです (おそらく MySQL も停止したため、中止されたのかもしれません)。MySQL を「構成」しようとするところまで進みましたが、その途中でエラーが発生したか、中止されました。

aptパッケージを構成することで、これを修正しようとしています。直接使用することで回避できるかもしれませんdpkg -i(ただし、dpkg構成を試みることもできますが、よくわかりません)

本当の解決策は、ダウンタイムをスケジュールしてMySQLのアップグレードを完了することです(設定エラーが発生している可能性があることに注意してください)。特に、実行しているバージョンには(オラクルによると) 機密性と整合性の両方を損なう可能性のあるリモートの脆弱性。

答え2

2 not fully installed or removedaptの実行を開始する前にメッセージが表示されました。これはない正常です。これは通常、パッケージデータベースが壊れているか、矛盾した状態にあることを意味します。このメッセージが表示されたら、直ちに中止。この問題を解決するには、まず を実行してみてくださいapt-get -f install。これが機能しない場合は、他の操作を行うことができますが、 などの単語がメッセージに含まれている場合は、パッケージ データベースに関連する他の操作を続行しないでくださいnot fully installed or removed。まず問題を修正してください。

この場合、apt が続行を許可したことに私は実際に少し驚いています。このような状況に遭遇することはあまりありませんが、私の記憶では、apt は問題を修正するまで続行を許可しません。

いずれにせよ、ご覧のとおり、 をインストールしたときにpound、apt は、前述のメッセージで最初に警告していたパッケージである mysql パッケージのインストールを完了しようとしました2 not fully installed or removed

注: @derobert は、少し異なる観点から同じことを回答しています。どうやらあなたは彼の言っていることを理解していないようですので、私も意見を述べようと思いました。

関連情報