在 Ubuntu 下从 ppa 安装 Okular 时出现问题

在 Ubuntu 下从 ppa 安装 Okular 时出现问题

在Ubuntu 12.04下,我安装了来自 ppa 的 Okular

安装后,我在打开PDF文件时遇到了以下问题:

$ okular my.pdf
Got bus address:  "unix:abstract=/tmp/dbus-5dWEZJSTX0,guid=4834397efeb7eb0cb8c1da4300000038"
Connected to accessibility bus at:  "unix:abstract=/tmp/dbus-5dWEZJSTX0,guid=4834397efeb7eb0cb8c1da4300000038"
Registered DEC:  true
okular(15329)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(15329)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(15329)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(15329)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
okular(15329)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
Registered event listener change listener:  true
okular: symbol lookup error: okular: undefined symbol: _ZN11KActivities16ResourceInstanceC1EmP7QObject

以下是有关已安装 Okular 的更多信息:

$ okular --version
Qt: 4.8.1
KDE Development Platform: 4.8.5 (4.8.5)
Okular: 0.17.2

$ ldd $(which okular)
    linux-gate.so.1 =>  (0xb7773000)
    libkparts.so.4 => /usr/lib/libkparts.so.4 (0xb7707000)
    libkactivities.so.6 => /usr/lib/libkactivities.so.6 (0xb76f1000)
    libkio.so.5 => /usr/lib/libkio.so.5 (0xb7443000)
    libkdeui.so.5 => /usr/lib/libkdeui.so.5 (0xb7000000)
    libQtGui.so.4 => /usr/lib/i386-linux-gnu/libQtGui.so.4 (0xb652d000)
    libkdecore.so.5 => /usr/lib/libkdecore.so.5 (0xb625c000)
    libQtCore.so.4 => /usr/lib/i386-linux-gnu/libQtCore.so.4 (0xb5f7f000)
    libQtDBus.so.4 => /usr/lib/i386-linux-gnu/libQtDBus.so.4 (0xb5efe000)
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb5e19000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb5c6f000)
    libnepomuk.so.4 => /usr/lib/libnepomuk.so.4 (0xb5b8b000)
    libnepomukutils.so.4 => /usr/lib/libnepomukutils.so.4 (0xb5b53000)
    libQtXml.so.4 => /usr/lib/i386-linux-gnu/libQtXml.so.4 (0xb5b10000)
    libQtNetwork.so.4 => /usr/lib/i386-linux-gnu/libQtNetwork.so.4 (0xb59c3000)
    libQtSvg.so.4 => /usr/lib/i386-linux-gnu/libQtSvg.so.4 (0xb596e000)
    libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb583a000)
    libstreamanalyzer.so.0 => /usr/lib/libstreamanalyzer.so.0 (0xb57bc000)
    libsolid.so.4 => /usr/lib/libsolid.so.4 (0xb56d9000)
    libacl.so.1 => /lib/i386-linux-gnu/libacl.so.1 (0xb56d0000)
    libattr.so.1 => /lib/i386-linux-gnu/libattr.so.1 (0xb56ca000)
    libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xb56c0000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb5694000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb5675000)
    libSM.so.6 => /usr/lib/i386-linux-gnu/libSM.so.6 (0xb566c000)
    libICE.so.6 => /usr/lib/i386-linux-gnu/libICE.so.6 (0xb5652000)
    libattica.so.0.3 => /usr/lib/libattica.so.0.3 (0xb5567000)
    libdbusmenu-qt.so.2 => /usr/lib/i386-linux-gnu/libdbusmenu-qt.so.2 (0xb5533000)
    libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 (0xb54fe000)
    libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb54e3000)
    libaudio.so.2 => /usr/lib/i386-linux-gnu/libaudio.so.2 (0xb54ca000)
    libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb53d1000)
    libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xb53a7000)
    libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb5390000)
    libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xb52f6000)
    libgobject-2.0.so.0 => /usr/lib/i386-linux-gnu/libgobject-2.0.so.0 (0xb52a7000)
    libXi.so.6 => /usr/lib/i386-linux-gnu/libXi.so.6 (0xb5296000)
    libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb5284000)
    libbz2.so.1.0 => /lib/i386-linux-gnu/libbz2.so.1.0 (0xb5272000)
    liblzma.so.5 => /usr/lib/i386-linux-gnu/liblzma.so.5 (0xb524b000)
    libdlrestrictions.so.1 => /usr/lib/libdlrestrictions.so.1 (0xb5246000)
    libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb5241000)
    librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb5238000)
    /lib/ld-linux.so.2 (0xb7774000)
    libdbus-1.so.3 => /lib/i386-linux-gnu/libdbus-1.so.3 (0xb51ee000)
    libsoprano.so.4 => /usr/lib/libsoprano.so.4 (0xb50fa000)
    libsopranoclient.so.1 => /usr/lib/libsopranoclient.so.1 (0xb50a9000)
    libnepomukquery.so.4 => /usr/lib/libnepomukquery.so.4 (0xb505d000)
    libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb503c000)
    libstreams.so.0 => /usr/lib/libstreams.so.0 (0xb5004000)
    libxml2.so.2 => /usr/lib/i386-linux-gnu/libxml2.so.2 (0xb4eb7000)
    libudev.so.0 => /lib/i386-linux-gnu/libudev.so.0 (0xb4ea7000)
    libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xb4ea1000)
    libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xb4e77000)
    libXt.so.6 => /usr/lib/i386-linux-gnu/libXt.so.6 (0xb4e1a000)
    libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb4e16000)
    libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb4dda000)
    libffi.so.6 => /usr/lib/i386-linux-gnu/libffi.so.6 (0xb4dd3000)
    libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb4dcb000)

的输出less /var/log/apt/history.log是在https://dl.dropboxusercontent.com/u/13029929/history.log,相关部分是:

Start-Date: 2014-04-05  09:56:11
Commandline: apt-get install okular
Install: libkactivities6:i386 (4.8.5-0ubuntu0.1, automatic), libpoppler28:i386 (0.20.5-1ubuntu3~precise1~ppa1, automatic), libkactivities-bin:i386 (4.8.5-0ubuntu0.1, automatic), libpoppler-qt4-4:i386 (0.20.5-1ubuntu3~precise1~ppa1, automatic), libokularcore3:i386 (4.11.2-0ubuntu1~ubuntu12.04~ppa2, automatic)
Upgrade: okular:i386 (4.8.5-0ubuntu0.1, 4.11.2-0ubuntu1~ubuntu12.04~ppa2)
End-Date: 2014-04-05  09:56:42

问题是什么?我该如何解决?

答案1

发布者成功地在他的系统上重建了 Okular PPA 源。某些版本的构建依赖项对于他的系统来说不太正确,因此他必须对其进行调整。目前还不清楚为什么这是必要的,因为海报系统是精确的,PPA 也是如此。

@Graeme 和我在 unix.sx 聊天室中引导他完成了整个过程。聊天会话的记录开始于 http://chat.stackexchange.com/transcript/message/14710296#14710296

@Graeme 建议面临类似问题的人看看 Kubuntu 向后移植 第一个例子。这些是更“官方”的购电协议。

答案2

看起来您确实拥有了所需的 ppa 中的所有内容(如果依赖项的版本控制不正确,有时可能不会)。 Grepping 我自己的系统,似乎缺少的符号位于libkactivities6.这里没有版本依赖关系,所以我无法判断它是针对哪一个构建的。

我会检查该软件包还有哪些其他版本可用,可能只是有一个较新的版本,您所需要做的就是安装它。或者它是针对旧版本构建的,您可以降级到旧版本,但请注意 Ubuntu 中的更新通常是安全或错误修复。去检查:

sudo apt-get update  # make sure everything downloads ok and repeat if not
apt-cache show libkactivities6

要安装特定版本,只需添加=version到 中的包名称即可apt-get。例如,要安装您已有的版本:

sudo apt-get install libkactivities6=4:4.8.5-0ubuntu0.1

如果失败,按照@Faheem Mitha 的评论,安装该软件包的唯一选择是重建它。

更新

查看您的apt-cache输出,您确实有 2 个版本的 libkactivities6。检查中软件包.ubuntu.com我看到两个版本中较旧的是当前的 12.10 版本。另一个肯定来自其他地方(也许是另一个 ppa/)。

如果你这样做(注意我最初错过了4:上述内容):

sudo apt-get install libkactivities6=4:4.8.2-0ubuntu2

它应该修复问题,它可能会导致安装新版本的任何其他程序出现问题。也有可能apt因此而拒绝降级。

重建 ppa 包(否则配置为与 Ubuntu 一起玩 nicley),而不是okular从上游构建普通源,可能是最适合您的解决方案。

相关内容