我正在尝试找出如何处理 Slackware 中缺乏依赖性解析的问题。
我从 slackware.pkgs.org 安装了 Gnumeric,但它无法运行多个
** (gnumeric:10645): 关键 **: go_conf_[whatever]: 断言 'parent ||密钥失败
错误并最终
gnumeric:符号查找错误:/usr/lib64/libspreadsheet-1.12.34.so:未定义符号:gtk_widget_path_iter_set_object_name
根据ldd
,没有丢失任何有用的共享库(确保我检查了ldd
with的输出ls
)。然而,有两个符号是未定义的:
$ ldd -r /usr/bin/gnumeric
[…]
undefined symbol: gtk_widget_path_iter_set_object_name (/usr/lib64/libgoffice-0.10.so.10)
undefined symbol: gtk_widget_path_iter_set_object_name (/usr/lib64/libspreadsheet-1.12.34.so)
如果我在这两个库上运行,我没有看到任何丢失的库ldd
,但实际上我发现了大量丢失的符号:
$ nm -D /usr/lib64/libgoffice-0.10.so.10|grep U|wc -l
1253
$ nm -D /usr/lib64/libspreadsheet-1.12.34.so|grep U|wc -l
2234
是否仍然缺少某些软件包,或者是否需要升级某些已安装的软件包?(我猜gtk+3)我怎样才能发现这一点?
注意:我(还)对解决依赖关系的自动化工具不感兴趣(例如slapt-get
或切换到 Salix)。
gnumeric
NB2 :FWIW,我通过在 slackware.pkgs.org 上安装另一个贡献者提供的和软件包,设法让 Gnumeric 工作goffice
,但显然关于如何找出缺少的内容以及如何解决依赖关系而不测试所有可用的软件包组合的一般问题遗迹。
答案1
有几种方法可以做到这一点。
1) pkgs.org 在“Requres”部分列出了给定包的所有必需依赖项。
2)下载源码并手动编译。 ./configure 或 make 通常会标记缺少的库。快速谷歌搜索通常会引导您找到库源。