解决ubuntu18.04安装 libpqxx-dev

在安装SQLsmith的依赖包时,libpqxx-dev不能安装

报错如下

[root@db01 ~]# apt-get install build-essential autoconf autoconf-archive libpqxx-dev libboost-regex-dev libsqlite3-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
libsqlite3-dev 已经是最新版 (3.22.0-1ubuntu0.4)。
libsqlite3-dev 已设置为手动安装。
build-essential 已经是最新版 (12.4ubuntu1)。
autoconf 已经是最新版 (2.69-11)。
autoconf 已设置为手动安装。
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 libpqxx-dev : 依赖: libpq-dev (>= 8.0.3-1) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

解决步骤

  1. 查看libpqxx-dev和哪些有依赖关系
[root@db01 ~]# apt-cache search libpq-dev
libpq-dev - header files for libpq5 (PostgreSQL library)
golang-github-lib-pq-dev - pure Go postgres driver for Go’s database/sql package
libghc-postgresql-libpq-dev - low-level binding to libpq

是postgreSQL的依赖包,由于本机中没有安装postgresql,导致libpq-dev不能安装
2. 安装postgreSQL,下载源
参考|PostgreSQL

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
 apt-get -y install postgresql
 ...
 正在将用户“postgres”加入到“ssl-cert”组中
dpkg: 处理软件包 postgresql-common (--configure)时出错:
 installed postgresql-common package post-installation script subprocess returned error exit status 10
因为错误消息指示这是由于上一个问题导致的错误,没有写入 apport 报告。
                                                                    dpkg: 依赖关系问题使得 postgresql-13 的配置工作不能继续:
 postgresql-13 依赖于 postgresql-common (>= 182~);然而:
  软件包 postgresql-common 尚未配置。

dpkg: 处理软件包 postgresql-13 (--configure)时出错:
 依赖关系问题 - 仍未被配置
正在设置 postgresql-client-13 (13.1-1.pgdg18.04+1) ...
update-alternatives: 使用 /usr/share/postgresql/13/man/man1/psql.1.gz 来在自动模式中提供 /usr/share/man/man1/psql.1.gz (psql.1.gz)
dpkg: 依赖关系问题使得 postgresql 的配置工作不能继续:
 postgresql 依赖于 postgresql-13;然而:
  软件包 postgresql-13 尚未配置。

dpkg: 处理软件包 postgresql (--configure)时出错:
 依赖关系问题 - 仍未被配置
因为错误消息指示这是由于上一个问题导致的错误,没有写入 apport 报告。
                                                                    正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
正在处理用于 ureadahead (0.100.0-21) 的触发器 ...
正在处理用于 libc-bin (2.27-3ubuntu1.2) 的触发器 ...
正在处理用于 systemd (237-3ubuntu10.42) 的触发器 ...
在处理时有错误发生:
 postgresql-common
 postgresql-13
 postgresql
E: Sub-process /usr/bin/dpkg returned an error code (1)
  1. 执行以下操作可解决 Sub-process /usr/bin/dpkg returned an error code (1)问题
 mv /var/lib/dpkg/info/* /var/lib/dpkg/info.bk
 rm -rf /var/lib/dpkg/info
 mv /var/lib/dpkg/info.bk /var/lib/dpkg/info
 apt-get update # 再次检查更新
 apt-get install -f  # 修复依赖关系
  1. 安装postgresql12
apt install postgresql-12
# 发现此问题依然存在E: Sub-process /usr/bin/dpkg returned an error code (1)
#继续执行
mv /var/lib/dpkg/info/* /var/lib/dpkg/info.bk
rm -rf /var/lib/dpkg/info
mv /var/lib/dpkg/info.bk /var/lib/dpkg/info
apt upgrade # 更新软件包
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
正在计算更新... 完成
下列软件包是自动安装的并且现在不需要了:
 libart2.0-cil libevent-core-2.1-6 libgconf2.0-cil libgeoclue0 libglade2.0-cil-dev libgnome-vfs2.0-cil libgnome2.24-cil libgtkspell0 libjavascriptcoregtk-1.0-0 libwebkitgtk-1.0-0
 libwebkitgtk-1.0-common libwebp5
使用'apt autoremove'来卸载它(它们)。
下列【新】软件包将被安装:
 fsharp initscripts insserv libfsharp-core4.5-cil libfsharp-core5.0-cil sysv-rc xamarin-gtk-theme
下列软件包的版本将保持不变:
 shim
下列软件包将被升级:
 monodevelop mysql-server-5.7 mysql-server-core-5.7
升级了 3 个软件包,新安装了 7 个软件包,要卸载 0 个软件包,有 1 个软件包未被升级。
有 4 个软件包没有被完全安装或卸载。
需要下载 67.5 MB 的归档。
解压缩后会消耗 281 MB 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial/main amd64 insserv amd64 1.14.0-5ubuntu3 [38.2 kB]
获取:2 https://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial/main amd64 sysv-rc all 2.88dsf-59.3ubuntu2 [18.2 kB]
获取:3 https://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial/main amd64 initscripts amd64 2.88dsf-59.3ubuntu2 [24.4 kB]
获取:4 https://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-updates/main amd64 mysql-server-5.7 amd64 5.7.33-0ubuntu0.16.04.1 [2,423 kB]
获取:5 https://download.mono-project.com/repo/ubuntu stable-bionic/main amd64 libfsharp-core4.5-cil all 4.5-0xamarin12+ubuntu1804b1 [3,681 kB]
获取:6 https://mirrors.tuna.tsinghua.edu.cn/ubuntu xenial-updates/main amd64 mysql-server-core-5.7 amd64 5.7.33-0ubuntu0.16.04.1 [7,215 kB]
获取:7 https://download.mono-project.com/repo/ubuntu stable-bionic/main amd64 libfsharp-core5.0-cil all 5.0.0.0-0xamarin15+ubuntu1804b1 [7,068 kB]                                    
获取:8 https://download.mono-project.com/repo/ubuntu stable-bionic/main amd64 fsharp all 5.0.0.0-0xamarin15+ubuntu1804b1 [5,860 kB]                                                   
获取:9 https://download.mono-project.com/repo/ubuntu stable-bionic/main amd64 monodevelop amd64 7.8.4.1-0xamarin6+ubuntu1804b1 [41.1 MB]                                              
获取:10 https://download.mono-project.com/repo/ubuntu stable-bionic/main amd64 xamarin-gtk-theme amd64 0.2017.05.24.11.51-0xamarin9+ubuntu1804b1 [93.3 kB]                            
已下载 67.5 MB,耗时 38分 19秒 (29.4 kB/s)                                                                                                                                            
正在预设定软件包 ...
dpkg: 错误: 无法新建文件 '/var/lib/dpkg/info/format-new': 没有那个文件或目录
E: Sub-process /usr/bin/dpkg returned an error code (2)
  1. 新问题产生Sub-process /usr/bin/dpkg returned an error code (2)
cd /var/lib/dpkg
mv info.old/ info
  1. 再次安装libpqxx-dev
 apt install libpqxx-dev
 ...
 正在处理用于 libc-bin (2.27-3ubuntu1.2) 的触发器 ...
W: APT had planned for dpkg to do more than it reported back (24 vs 28).
   Affected packages: postgresql-common:amd64

系统中缺少libuuid库
6. 安装libuuid库

apt-get install uuid-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 uuid-dev : 依赖: libuuid1 (= 2.27.1-6ubuntu3.10) 但是 2.31.1-0.4ubuntu3.7 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
# 安装libuuid的依赖包
apt-get install libuuid1=2.27.1-6ubuntu3.10
# 再执行
sudo apt-get -f install 
  1. 最后安装libpqxx-dev
[root@db01 /opt/sqlsmith-1.2.1/sqlsmith-1.2.1]# apt install libpqxx-dev 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
libpqxx-dev 已经是最新版 (4.0.1+dfsg-3ubuntu2)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 4 个软件包未被升级

终于安装成功了!

code

postgreSQL
blogs

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值