1. 问题描述

在Odoo11(Ubuntu)上要打印发票时,系统提示“找不到wkhtmltopdf”,所以打算安装wkhtmltopdf。结果安装失败。

$ sudo apt install ./wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
您也许需要运行“apt --fix-broken install”来修正上面的错误。
下列软件包有未满足的依赖关系:
 wkhtmltox : 依赖: libpng12-0 但无法安装它
             依赖: xfonts-75dpi 但是它还没有被安装
E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。

于是安装libpng12-0:

$ sudo apt install ./libpng12-0_1.2.54-1ubuntu1.1_amd64.deb
[sudo] odoo 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
您也许需要运行“apt --fix-broken install”来修正上面的错误。
下列软件包有未满足的依赖关系:
 wkhtmltox : 依赖: libpng12-0 但是它还没有被安装
             依赖: xfonts-75dpi 但是它还没有被安装
E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。

2. 解决方法

* 其实报错信息中已说明了解决方法

E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。

按照提示信息执行命令:

$ sudo apt --fix-broken install
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
正在修复依赖关系... 完成
下列软件包是自动安装的并且现在不需要了:
  linux-headers-4.15.0-38 linux-headers-4.15.0-38-generic
  linux-image-4.15.0-38-generic linux-modules-4.15.0-38-generic
  linux-modules-extra-4.15.0-38-generic
使用'sudo apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
  xfonts-75dpi
下列软件包将被【卸载】:
  wkhtmltox
下列【新】软件包将被安装:
  xfonts-75dpi
升级了 0 个软件包,新安装了 1 个软件包,要卸载 1 个软件包,有 0 个软件包未被升级。
有 1 个软件包没有被完全安装或卸载。
需要下载 3,368 kB 的归档。
解压缩后将会空出 122 MB 的空间。
您希望继续执行吗? [Y/n] y
获取:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu bionic/universe amd64 xfonts-75dpi all 1:1.0.4+nmu1 [3,368 kB]
已下载 3,368 kB,耗时 1秒 (3,287 kB/s)    
(正在读取数据库 ... 系统当前共安装有 208922 个文件和目录。)
正在卸载 wkhtmltox (1:0.12.5-1.xenial) ...
dpkg: 警告: 卸载 wkhtmltox 时,目录 /usr/local/lib 非空,因而不会删除该目录
dpkg: 警告: 卸载 wkhtmltox 时,目录 /usr/local/bin 非空,因而不会删除该目录
dpkg: 警告: 卸载 wkhtmltox 时,目录 /usr/local/share 非空,因而不会删除该目录
正在选中未选择的软件包 xfonts-75dpi。
(正在读取数据库 ... 系统当前共安装有 208902 个文件和目录。)
正准备解包 .../xfonts-75dpi_1%3a1.0.4+nmu1_all.deb  ...
正在解包 xfonts-75dpi (1:1.0.4+nmu1) ...
正在设置 xfonts-75dpi (1:1.0.4+nmu1) ...
正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
正在处理用于 fontconfig (2.12.6-0ubuntu2) 的触发器 ...

之后在安装wkhtmltopdf的依赖。

$ sudo apt-get install x11proto-render-dev x11proto-core-dev
$ sudo apt-get install libXrender*
$ sudo apt-get install libfontconfig*

$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb

$ sudo apt install ./wkhtmltox-0.12.2.1_linux-trusty-amd64.deb

$ sudo apt install ./libpng12-0_1.2.54-1ubuntu1.1_amd64.deb

$ sudo apt install ./wkhtmltox-0.12.2.1_linux-trusty-amd64.deb

$ wkhtmltopdf
You need to specify atleast one input file, and exactly one output file
Use - for stdin or stdout

Name:
  wkhtmltopdf 0.12.2.1 (with patched qt)