[ Linux ]在./configure 提示库丢失的时候,如何去找需要安装的包?

2023-01-17 05:37:13 +08:00
 bronana

例如以下的报错提示

./configure: error: the HTTP XSLT module requires the libxml2/libxslt
libraries. You can either do not enable the module or install the libraries.

缺少了libxml2/libxslt,我的笨办法就是复制 error: the HTTP XSLT module requires the libxml2/libxslt 粘贴去 google, 有时候我发现这种办法 google 也不好用。

所以想请问大家有不有什么聪明点的办法?

2492 次点击
所在节点    Linux
15 条回复
h0099
2023-01-17 06:04:30 +08:00
asd7160
2023-01-17 08:32:19 +08:00
那你只搜 libxml2 不就行了
ilylx2008
2023-01-17 08:36:51 +08:00
apt search libxml2-dev
PendingOni
2023-01-17 09:03:25 +08:00
julyclyde
2023-01-17 09:13:30 +08:00
都已经写了库名字了,其实没必要复制全文去搜索吧
只搜库名字就足够了

需要安装那个库加上-devel 或者-dev 结尾的包
julyclyde
2023-01-17 09:14:12 +08:00
还有就是,非这个软件自己的开发人员、非发行版打包人员,都别去编译安装了
纯属没事找事,初学者也学不到什么有用的东西
jinliming2
2023-01-17 09:25:09 +08:00
首先,读懂错误是啥:
the HTTP XSLT module requires the libxml2/libxslt libraries. You can either do not enable the module or install the libraries.
是说 HTTP XSLT 这个模块依赖 libxml2/libxslt 库,你要么别启用 HTTP XSLT 这个模块,要么把依赖库装上。

你的笨办法是复制整条错误语句去搜,那肯定是不好的,搜索引擎按照关键词去搜会比较高效,这里读懂这个错误原因了,那么就有两种解法,取决于你需不需要 HTTP XSLT 这个模块。
如果你不需要 HTTP XSLT 模块的话,那么就在 ./configure 的时候加参数去禁用,不知道加啥参数的话,一般 --help 或者打开 configure 文件搜关键词 http 和 xslt ,或者以“你要编译的这个软件名 disable HTTP XSLT”为关键词去搜索引擎搜。
如果你需要 HTTP XSLT 模块,那么根据错误提示,你需要安装 libxml2/libxslt ,那么你到搜索引擎只搜这两个关键词就行了。
如果你不知道 HTTP XSLT 这个模块是啥,或者你不知道你要不要,那么就以这个模块名为关键词去搜索引擎搜,了解这个模块干嘛用的再说。或者简单点,如果这个模块不是你手动在 ./configure 的时候专门启用的,那么就是默认启用的模块,那你就保持默认就好。如果默认没启用,那就先不要这个模块了,编译完先用一下,如果缺少你需要的功能了,那再来把这个模块打开重新编译安装一次。
julyclyde
2023-01-17 09:38:11 +08:00
我一直反对初学者自己编译的原因,其中之一就是:
初学者根本不知道自己是否需要这个 feature ,以至于无法做出“是 disable 还是 install“的决策
littlezzll
2023-01-17 09:42:21 +08:00
el 系列的,dnf provide xxxx.so
dzdh
2023-01-17 09:46:44 +08:00
同 9 楼

RedHat 及其衍生发行版 centos/alma/rocky/oel 等 dnf provide xxxx.so 就好了

debian/ubuntu 等 apt-file search 就好了
listen2wind
2023-01-17 10:48:11 +08:00
前几天离线安装一些东西,发现了 pkgs.org 挺不错的
perfectlife
2023-01-17 10:59:19 +08:00
能不编译安装就不编译安装,不够标准化,每个人编译的参数可能千奇百怪,后期维护崩天裂地
wu67
2023-01-17 11:10:45 +08:00
建议是直接用编译好的发行包. 除非你清楚自行编译时都做了些什么.

我上一次编译还是差不多 7 年前, 那时候 shadowsocks 原版还能玩, libev 分支自行编译安装的使用速度比从 GitHub 下载编译包的要快...
yanqiyu
2023-01-17 12:06:50 +08:00
Fedora 上为例,直接 dnf search libxml2 或者 dnf search libxslt 就能找到对应的包安装了
甚至熟悉的话可以直接看一下 autoconf 找的是哪个 pkgconfig 包名称,直接用别名安装
dnf install "pkgconfig(libxml-2.0)" "pkgconfig(libxslt)"
loken2020
2023-01-18 10:32:43 +08:00
首先,configure 是一个 shell 脚本,你要去了解这个脚本干了什么事情。执行了那条命令导致这个报错。
configure 脚本里面的逻辑,大部分项目都是执行一些编译检测,也就是调 gcc ,g++,或者 Linux 的命令做一些检测。
而编译链接的基础知识,我的《 FFmpeg 原理》里面正好有讲。
https://ffmpeg.xianwaizhiyin.net/base-compile/intro.html

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/909390

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX