V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
bronana
V2EX  ›  Linux

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

  •  
  •   bronana · 2023-01-17 05:37:13 +08:00 · 2660 次点击
    这是一个创建于 680 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如以下的报错提示

    ./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 也不好用。

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

    15 条回复    2023-01-18 10:32:43 +08:00
    asd7160
        2
    asd7160  
       2023-01-17 08:32:19 +08:00
    那你只搜 libxml2 不就行了
    ilylx2008
        3
    ilylx2008  
       2023-01-17 08:36:51 +08:00
    apt search libxml2-dev
    julyclyde
        5
    julyclyde  
       2023-01-17 09:13:30 +08:00
    都已经写了库名字了,其实没必要复制全文去搜索吧
    只搜库名字就足够了

    需要安装那个库加上-devel 或者-dev 结尾的包
    julyclyde
        6
    julyclyde  
       2023-01-17 09:14:12 +08:00   ❤️ 2
    还有就是,非这个软件自己的开发人员、非发行版打包人员,都别去编译安装了
    纯属没事找事,初学者也学不到什么有用的东西
    jinliming2
        7
    jinliming2  
       2023-01-17 09:25:09 +08:00 via iPhone   ❤️ 2
    首先,读懂错误是啥:
    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
        8
    julyclyde  
       2023-01-17 09:38:11 +08:00
    我一直反对初学者自己编译的原因,其中之一就是:
    初学者根本不知道自己是否需要这个 feature ,以至于无法做出“是 disable 还是 install“的决策
    littlezzll
        9
    littlezzll  
       2023-01-17 09:42:21 +08:00 via Android
    el 系列的,dnf provide xxxx.so
    dzdh
        10
    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
        11
    listen2wind  
       2023-01-17 10:48:11 +08:00 via Android
    前几天离线安装一些东西,发现了 pkgs.org 挺不错的
    perfectlife
        12
    perfectlife  
       2023-01-17 10:59:19 +08:00   ❤️ 1
    能不编译安装就不编译安装,不够标准化,每个人编译的参数可能千奇百怪,后期维护崩天裂地
    wu67
        13
    wu67  
       2023-01-17 11:10:45 +08:00
    建议是直接用编译好的发行包. 除非你清楚自行编译时都做了些什么.

    我上一次编译还是差不多 7 年前, 那时候 shadowsocks 原版还能玩, libev 分支自行编译安装的使用速度比从 GitHub 下载编译包的要快...
    yanqiyu
        14
    yanqiyu  
       2023-01-17 12:06:50 +08:00   ❤️ 1
    Fedora 上为例,直接 dnf search libxml2 或者 dnf search libxslt 就能找到对应的包安装了
    甚至熟悉的话可以直接看一下 autoconf 找的是哪个 pkgconfig 包名称,直接用别名安装
    dnf install "pkgconfig(libxml-2.0)" "pkgconfig(libxslt)"
    loken2020
        15
    loken2020  
       2023-01-18 10:32:43 +08:00
    首先,configure 是一个 shell 脚本,你要去了解这个脚本干了什么事情。执行了那条命令导致这个报错。
    configure 脚本里面的逻辑,大部分项目都是执行一些编译检测,也就是调 gcc ,g++,或者 Linux 的命令做一些检测。
    而编译链接的基础知识,我的《 FFmpeg 原理》里面正好有讲。
    https://ffmpeg.xianwaizhiyin.net/base-compile/intro.html
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5511 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 06:52 · PVG 14:52 · LAX 22:52 · JFK 01:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.