postgres のアンインストールに失敗する

postgres のアンインストールに失敗する

postgresqlをアンインストールしようとしたときに

sudo apt-get remove postgresql

次のエラーメッセージが表示されました

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package 'postgresql' is not installed, so not removed
The following packages were automatically installed and are no longer required:
  account-plugin-windows-live libupstart1
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 17 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up postgresql-common (154ubuntu1) ...
 * Starting PostgreSQL 9.3 database server                                                                                                       * The PostgreSQL server failed to start. Please check the log output:
2015-07-08 11:16:50 PDT FATAL:  could not create lock file "/var/run/postgresql/.s.PGSQL.5432.lock": Permission denied
                                                                                                                                         [fail]
invoke-rc.d: initscript postgresql, action "start" failed.
dpkg: error processing package postgresql-common (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of postgresql-9.3:
 postgresql-9.3 depends on postgresql-common (>= 142~); however:
  Package postgresql-common is not configured yet.

dpkg: error processing package postgresql-9.3 (--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-common
 postgresql-9.3
E: Sub-process /usr/bin/dpkg returned an error code (1)

postgres を消去しようとすると、同じことが起こります。何が起こっているのでしょうか。また、postgres を適切に削除するにはどうすればよいでしょうか。

答え1

あなたの問題

invoke-rc.d: initscript postgresql, action "start" failed.
dpkg: error processing package postgresql-common (--configure):
 subprocess installed post-installation script returned error exit status 1

私の解決策

近道

sudo rm /etc/init.d/postgresql
sudo rm /etc/init/postgresql.conf
sudo apt-get remove postgresql

または長い道のり

  • ファイルを開く/var/lib/dpkg/info/postgresql-common.postinst

    sudo nano /var/lib/dpkg/info/postgresql-common.postinst
    
  • 開始コマンドで行を検索します。

    if [ -x "/etc/init.d/postgresql" ] || [ -e "/etc/init/postgresql.conf" ]; then
            invoke-rc.d postgresql start || exit $?
    fi
    
  • ブロックをコメントアウトする

    # if [ -x "/etc/init.d/postgresql" ] || [ -e "/etc/init/postgresql.conf" ]; then
    #        invoke-rc.d postgresql start || exit $?
    # fi
    
  • パッケージを再度削除します。

    sudo apt-get remove postgresql
    

説明

の削除中にpostgresql、スクリプトpostgresql-common.postinstが呼び出されます。スクリプトはサービスを開始しようとしますpostgresqlが、失敗しますinvoke-rc.d postgresql start(理由は聞かないでください)。

これを防ぐ必要があります。コードが実行される条件を変更するか、コード自体を削除します。

関連情報