web-dev-qa-db-ja.com

postgresql-commonエラーが原因でPostgresqlサーバーのインストールが失敗し続ける

Ubuntu 12.04でのpostgresqlサーバーのインストールは失敗します。これは、postgresql-commonパッケージの不完全な構成によるものと思われます。 postgresqlに関連するすべてのパッケージを削除し、postgresql-commonパッケージのみを再インストールしようとしました。それでもエラーが発生していました。

エラーは次のとおりです。

$ Sudo apt-get install postgresql-common
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  postgresql-common
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/96.5 kB of archives.
After this operation, 442 kB of additional disk space will be used.
Preconfiguring packages ...
Selecting previously unselected package postgresql-common.
(Reading database ... 176855 files and directories currently installed.)
Unpacking postgresql-common (from .../postgresql-common_129ubuntu1_all.deb) ...
Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common'
Processing triggers for ureadahead ...
Processing triggers for man-db ...
Setting up postgresql-common (129ubuntu1) ...
adduser: The user `postgres' does not exist.
dpkg: error processing postgresql-common (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 postgresql-common
E: Sub-process /usr/bin/dpkg returned an error code (1)

これを克服/解決する方法はありますか?

N.B:

  1. 更新して再試行しましたが、同じエラーが発生しています。
  2. Postgresql関連パッケージを削除し、postgresql-8.4postgresql-9.1の両方をインストールしようとしましたが、どちらの場合も、postgresql-commonパッケージへの依存関係により失敗しました。
1
saji89

問題はpostgresユーザーが作成されていないことでした(パッケージ構成スクリプトのエラーのように見えますが、確かではありません)。

Sudo useradd -r -s /bin/false postgres

上記のコマンドは、ホームディレクトリなしでユーザーを作成します。( Courtesy

その後、再度インストールを試みましたが、問題なく成功しました。

N.B:
Ubuntu IRCチャンネルの一部の人がソリューションの助けになりました。

更新:

再起動後postgresqlサーバーにアクセスできなかったため、postgresqlサーバーを再起動しようとしましたが、次のエラーが発生しました。

$ Sudo service postgresql restart
[Sudo] password for username: 
 * Restarting PostgreSQL 8.4 database server                                     
 * The PostgreSQL server failed to start. Please check the log output:
2014-04-03 09:54:22 IST FATAL:  could not create lock file "/var/run/postgresql/.s.PGSQL.5432.lock": Permission denied
[fail]

postgresql.confファイルを編集して解決しました。 unix_socket_directoryで始まる行を探し、次のように変更する必要があります。

unix_socket_directory='/tmp'

次に、次を使用してpostgresqlサーバーを起動します。

Sudo service postgresql start

問題は

ubuntuのロックファイルのデフォルトディレクトリは/ var/run/postgresqlに変更されましたが、これは誰でも書き込めません。ただし、ディレクトリの書き込み権限を変更するだけでは機能しません。これらは、デフォルトの初期化スクリプトが実行されるとリセットされます。

礼儀:http://eclecticquill.com/2013/02/26/postgresql-fails-to-start-on-ubuntu- 12-10 /

これからもっと情報を得た link

ただし、ローカルユーザーが所有するPostgreSQLサーバーのインスタンスを実行しようとする場合は、PostgreSQLサーバープロセスを所有するユーザーがUNIXソケットディレクトリに書き込み可能であることを確認する必要があります。試してください:

unix_socket_directory = '/ tmp'

要するに:

postgresユーザーを手動で作成したため、これを行う必要がありました。

3
saji89