如何修复 postgres 安装 ubuntu 上的错误

Posted

技术标签:

【中文标题】如何修复 postgres 安装 ubuntu 上的错误【英文标题】:How to fix error on postgres install ubuntu 【发布时间】:2018-12-04 15:10:22 【问题描述】:

我正在努力解决安装 postgres 客户端时出现的错误。我在持续集成构建上安装它,所以我需要它安装没有错误。问题是,客户端已安装,我什至可以运行psql 命令,如果我将ssh 运行到服务器中,但我需要它在没有我触摸的情况下运行,这意味着安装必须没有错误地进行。 我已经完成了所有的 google-foo,并且我在 Ubuntu 论坛上看到的任何建议都没有,或者这里似乎指向正确的方向。这一切都在 ubuntu 14.04 上。

或者,只要客户端可用,也许我可以让错误静音。

以下是我遇到的错误:

sudo apt-get install postgresql-client

    阅读包裹清单...完成


    构建依赖树


    读取状态信息...完成

    将安装以下附加软件包:
      libpq5 postgresql-client-9.6 postgresql-client-common
    推荐套餐:
      postgresql-9.6 postgresql-doc-9.6
    将安装以下新软件包:
      libpq5 postgresql-client postgresql-client-9.6 postgresql-client-common
    0 升级,4 新安装,0 删除,7 未升级。
    需要获得 1494 kB 的档案。
    此操作后,将使用 6121 kB 的额外磁盘空间。

    获取:1 http://deb.debian.org/debian stretch/main amd64 libpq5 amd64 9.6.7-0+deb9u1 [132 kB]

    获取:2 http://deb.debian.org/debian stretch/main amd64 postgresql-client-common all 181+deb9u1 [79.0 kB]

    获取:3 http://deb.debian.org/debian stretch/main amd64 postgresql-client-9.6 amd64 9.6.7-0+deb9u1 [1228 kB]

    获取:4 http://deb.debian.org/debian stretch/main amd64 postgresql-client all 9.6+181+deb9u1 [55.7 kB]

    在 0 秒内获取 1494 kB (55.5 MB/s)
    debconf: 延迟包配置,因为 apt-utils 没有安装
    选择以前未选择的包 libpq5:amd64。
    (正在读取数据库...当前安装的 31433 个文件和目录。)
    准备解压.../libpq5_9.6.7-0+deb9u1_amd64.deb ...
    解压 libpq5:amd64 (9.6.7-0+deb9u1) ...
    选择以前未选择的包 postgresql-client-common。
    准备解压.../postgresql-client-common_181+deb9u1_all.deb ...
    解压 postgresql-client-common (181+deb9u1) ...
    选择以前未选择的包 postgresql-client-9.6。
    准备解压.../postgresql-client-9.6_9.6.7-0+deb9u1_amd64.deb ...
    解压 postgresql-client-9.6 (9.6.7-0+deb9u1) ...
    选择以前未选择的包 postgresql-client。
    准备解压.../postgresql-client_9.6+181+deb9u1_all.deb ...
    解压 postgresql-client (9.6+181+deb9u1) ...
    设置 libpq5:amd64 (9.6.7-0+deb9u1) ...
    处理 libc-bin (2.24-11+deb9u3) 的触发器 ...
    设置 postgresql-client-common (181+deb9u1) ...
    设置 postgresql-client-9.6 (9.6.7-0+deb9u1) ...
    update-alternatives:使用 /usr/share/postgresql/9.6/man/man1/psql.1.gz 在自动模式下提供 /usr/share/man/man1/psql.1.gz (psql.1.gz)
    更新替代方案:错误:创建符号链接“/usr/share/man/man7/ABORT.7.gz.dpkg-tmp”时出错:没有这样的文件或目录
    dpkg: 错误处理包 postgresql-client-9.6 (--configure):
     子进程安装后安装脚本返回错误退出状态 2
    dpkg:依赖问题阻止了 postgresql-client 的配置:
     postgresql-client 依赖于 postgresql-client-9.6;然而:
      软件包 postgresql-client-9.6 尚未配置。

    dpkg: 错误处理包 postgresql-client (--configure):
     依赖性问题 - 未配置
    处理时遇到错误:
     postgresql-client-9.6
     postgresql 客户端
    E:子进程/usr/bin/dpkg返回错误码(1)
    退出代码 100

我尝试了以下解决方法:

sudo apt-get purge postgr* sudo apt-get 自动删除 sudo apt-get 安装突触 sudo apt-get 更新

来自:https://ubuntuforums.org/showthread.php?t=2277582

哪个 psql /usr/bin/psql

更多 /etc/apt/sources.list deb http://deb.debian.org/debian 拉伸主要 deb http://deb.debian.org/debian 拉伸更新主要 deb http://security.debian.org/debian-security stretch/updates main

我不知道如何前进。

【问题讨论】:

看起来你是第一次在这个系统上安装它。您可以只清除软件包(dpkg --purge)然后再试一次吗?也许先尝试“dpkg --purge --dry-run”。 是的,每次 CI 运行都像是全新安装。我确实已经尝试清除。我认为这个错误实际上与这个错误有关 bugs.debian.org/cgi-bin/bugreport.cgi?bug=866729 不幸的是,这是 Debian 中的一个错误,从一年前开始,我不是 *nixer 知道修复是否已进入 ubuntu。我猜不是。 既然是 CI,你能在安装包之前创建缺少的目录吗?我知道这是一种解决方法... 【参考方案1】:

我的 CI 构建遇到了同样的问题,我找到了一种解决方法,可以创建像 @A 这样的文件夹。提到了 Scherbaum。

sudo mkdir -p /usr/share/man/man1
sudo mkdir -p /usr/share/man/man7
sudo apt-get update
sudo apt-get install postgresql-client

我通过这个issue在这个commit找到了这个解决方案

但是我也像你说的那样进行了测试以消除错误并且它起作用了,但我不知道后果

sudo apt-get install postgresql-client || true

我在circleci article 中发现了类似的东西

【讨论】:

哇... 10 个月前,这个修复仍然是必要的。请注意,如果有人想重现这个,我正在使用 docker 和 FROM ruby:2.5.3-slim 使用`|| true` 在 all 错误之后有效。除非您不关心可能发生的所有其他故障,否则不要将其用于特定错误。

以上是关于如何修复 postgres 安装 ubuntu 上的错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ubuntu 上使用 pgAdmin 将 Postgres 连接到 localhost 服务器?

ubuntu上安装postgres以及在远程连接上的坑

如何安装/更新到 Postgres 9.4?

如何修复 Hadoop 警告:在 Ubuntu 上发生非法反射访问操作错误

如何修复ubuntu14.04上核素的lldb错误?

如何修复 ubuntu 中检测到系统程序错误的问题