如何修复 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 服务器?