12.04サーバーでSudo apt-get upgrade
を実行しましたが、PostgreSQLの依存関係に陥りました。
コンソール出力(Sudo apt-get -f install
の)は次のとおりです。
dpkg: dependency problems prevent configuration of postgresql-9.1:
postgresql-client-9.1 (9.1.7-0ubuntu12.04) breaks postgresql-9.1 (<< 9.1.7-0ubuntu12.04) and is installed.
Version of postgresql-9.1 to be configured is 9.1.6-1~precise2.
dpkg: error processing postgresql-9.1 (--configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
postgresql-9.1
E: Sub-process /usr/bin/dpkg returned an error code (1)
この問題を解決するにはどうすればよいですか?
nb。このサーバーで稼働している本番データベースがあるため、postgresのパージ/再インストールは最後の手段です。
編集:
要求どおり、apt-get update
の出力: http://paste.ubuntu.com/1469631/
このpostgresqlアップデートでも同じ問題が発生しました。
Postgresの最新バージョンは9.1.7であり、何らかの理由で9.1.6がリポジトリにないため、ここで9.1.5にダウングレードしました。
Sudo apt-get -V install postgresql-client-9.1=9.1.5-0ubuntu12.04
Sudo apt-get -V install postgresql-9.1=9.1.5-0ubuntu12.04
最初にクライアントにダウングレードしたことに注意してください。最新の更新にはバグがあり、クライアントとサーバーの間で依存関係エラーが発生しているようです。
編集:将来postgresqlがアップグレードしないようにするには、このページを参照してください: https://help.ubuntu.com/community/PinningHowto 。このメソッドをクライアントとサーバーの両方に適用してください。
ここに別の解決策があります(AgDudeの解決策は私のシステムでは機能しませんでしたが、同じ問題があると思います。plpythonもインストールしています。それは複雑なことだと思います)。
/ var/lib/dpkg/statusからpostgresパッケージ情報を削除します(もちろん、最初にファイルをバックアップします)。これは、apt
がpostgresがインストールされていることを認識しないため、リポジトリで9.1.6が見つからなくてもスタックしないことを意味すると考えています。
このソリューションを使用すると、システムの残りの部分を通常どおり更新し、もう一度ソフトウェアをインストール/削除できます。もちろん、postgresはもう更新されません。
Postgresへの参照を含むパッケージをいくつか残しました。ここにありますので、これらを取り出す必要はありません。