我运行do-release-upgrade将Ubuntu12.04服务器更新为Ubuntu14.04。它似乎进展顺利,但当我在升级后做apt-get update时,我注意到PostgreSQL包仍然在关注精确的回复,而不是可靠的回复。我遵循这里的说明添加可靠的repos,并将包含精确repos的.list文件移动到临时目录作为备份。在我这样做之后,sudo apt-get upgrade失败了,即使在恢复了精确的回复之后,我也无法让它完全运行。我没有抓住错误信息。因为这是一个开发服务器,而且所有的数据都不是必需的,所以我决定重新安装PostgreSQL。在多次尝试清除服务器上可能存在的、我认为可能会干扰的自定义配置之后,这一操作一再失败。我能够成功地执行sudo apt-get install postgresql-common,但是如果我尝试sudo apt-get install postgresql-9.5,它会失败,如下所示:
Setting up postgresql-9.5 (9.5.5-1.pgdg14.04+1) ...
Creating new cluster 9.5/main ...
config /etc/postgresql/9.5/main
data /var/lib/postgresql/9.5/main
locale en_US.UTF-8
socket /var/run/postgresql
port 5432
update-alternatives: using /usr/share/postgresql/9.5/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode
* Starting PostgreSQL 9.5 database server
* Failed to issue method call: Unit postgresql@9.5-main.service failed to load: No such file or directory. See system logs and 'systemctl status postgresql@9.5-main.service' for details.
[fail]
invoke-rc.d: initscript postgresql, action "start" failed.
dpkg: error processing package postgresql-9.5 (--configure):
subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of postgresql-contrib-9.5:
postgresql-contrib-9.5 depends on postgresql-9.5 (= 9.5.5-1.pgdg14.04+1); however:
Package postgresql-9.5 is not configured yet.
dpkg: error processing package postgresql-contrib-9.5 (--configure):
dependency problems - leaving unconfigured
Setting up sysstat (10.2.0-1) ...
No apport report written because the error message indicates its a followup error from a previous failure.
update-alternatives: using /usr/bin/sar.sysstat to provide /usr/bin/sar (sar) in auto mode
Processing triggers for libc-bin (2.19-0ubuntu6.9) ...
Errors were encountered while processing:
postgresql-9.5
postgresql-contrib-9.5
E: Sub-process /usr/bin/dpkg returned an error code (1)
Jan 17 15:31:31 beta kernel: [ 4.029504] systemd-journald[543]: Failed to resolve 'systemd-journal' group: No such process如果我尝试systemctl status postgresql@9.5-main.service,我得到:
postgresql@9.5-main.service
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)/var/log/postgresql/postgresql-9.5-main.log日志文件是空的,所以我不确定还可以在哪里检查日志。安装失败后,我将通过这里的台阶完成一个完整的卸载。我不知道这是PostgreSQL还是升级服务器的问题。
dpkg -l "postgresql*"的输出:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-============================-===================-===================-==============================================================
un postgresql-7.4 <none> <none> (no description available)
un postgresql-8.0 <none> <none> (no description available)
un postgresql-9.1 <none> <none> (no description available)
iF postgresql-9.5 9.5.5-1.pgdg14.04+1 amd64 object-relational SQL database, version 9.5 server
un postgresql-client <none> <none> (no description available)
ii postgresql-client-9.5 9.5.5-1.pgdg14.04+1 amd64 front-end programs for PostgreSQL 9.5
ii postgresql-client-common 178.pgdg14.04+1 all manager for multiple PostgreSQL client versions
ii postgresql-common 178.pgdg14.04+1 all PostgreSQL database-cluster manager
iU postgresql-contrib-9.5 9.5.5-1.pgdg14.04+1 amd64 additional facilities for PostgreSQL
un postgresql-doc-9.5 <none> <none> (no description available)发布于 2017-02-21 13:42:10
Ubuntu的同一期从12.04升级到14.04
通过增加线来修正
alias pg_ctlcluster="pg_ctlcluster --skip-systemctl-redirect"在/usr/share/postgresql-common/init.d-functions之后
init_functions=/lib/lsb/init-functions在木偶里,它看起来像这样
package { 'postgresql-common': ensure => 'installed' }
file_line { 'Patch 1 /usr/share/postgresql-common/init.d-functions':
path => '/usr/share/postgresql-common/init.d-functions',
line => 'alias pg_ctlcluster="pg_ctlcluster --skip-systemctl-redirect"',
after => "init_functions=/lib/lsb/init-functions",
}发布于 2017-01-17 22:31:37
重新编辑:Ubuntu14.04在默认情况下不使用systemd进行服务/init管理。由于某些原因,您的安装使用的是systemd (您知道为什么吗?),但是它应该使用upstart和旧的sysV启动脚本的包装器。
PostgreSQL9.5包没有提供systemd启动单元文件,而是提供了一个sysV脚本,upstart处理很好(刚刚在这里进行了测试)。
可能的备选方案:
...and :我没有主意了;)
发布于 2017-04-05 03:54:04
在搜索之后,我来到这个帖子,因为我的服务器有多个版本的Postgresql 9.4、9.5和9.6,并且得到了相同的行为。
sudo pg_lsclusters 9.4 main status
Ver Cluster Port Status Owner Data directory Log file
9.4 main 5432 down postgres /var/lib/postgresql/9.4/main
/var/log/postgresql/postgresql-9.4-main.log
9.5 main 5433 down postgres /var/lib/postgresql/9.5/main
/var/log/postgresql/postgresql-9.5-main.log
9.6 main 5434 down postgres /var/lib/postgresql/9.6/main
/var/log/postgresql/postgresql-9.6-main.log试图启动postgresql,请继续显示:
sudo pg_ctlcluster 9.4 main start
Redirecting start request to systemctl
Failed to issue method call: Unit postgresql@9.4-main.service failed to load: No such file or directory. See system logs and 'systemctl status postgresql@9.4-main.service' for details.在阅读完所有答案之后,我更喜欢答案:https://askubuntu.com/a/877472/130195,但是如果想要安装Ubuntu14.04不完全支持的systemd,请按照这个方法。
但是我认为我们不需要systemd,我已经用智能来知道安装systemd 204版需要什么,在我的系统上是upower,我也不需要upower。移除我不再需要的东西,所有三个版本的postgresql都重新工作了。
我认为只要一个简单的sudo apt-get purge systemd && sudo apt-get autoremove就可以通过删除systemd包来更好地解决问题。
警告:请在拆下任何包装前要小心,注意哪些东西会非常小心地移除。
https://askubuntu.com/questions/873091
复制相似问题