【问题标题】:Install multiple versions of a package安装一个包的多个版本
【发布时间】:2010-06-18 21:32:43
【问题描述】:

我想从 src 安装一个包的多个版本(比如 libX)。包 (libX) 使用 Autotools 构建,因此遵循 ./configure 、 make、 make 安装约定。默认安装的是 /usr/local/bin 和 /usr/local/lib ,我想在 /home/user/libX 中安装另一个版本。

另一个问题是 libX 是另一个也使用自动工具的包(比如 libY)的依赖项。如何使 libY 指向安装在 /home/user/libX 中的版本?也有可能它是一个像 ffmpeg 这样的系统包,我想为我的 src 代码使用最新的 svn 版本,因此从 src 构建它。在那种情况下我该怎么办?在这种情况下,为了不破坏系统库,最佳做法是什么?

我使用的是 Ubuntu 10.04 和 Opensuse 10.3。

【问题讨论】:

    标签: linux installation


    【解决方案1】:

    您通常可以通过 --prefix 选项进行配置,以告诉它将库安装在不同的位置。因此,对于个人版本,您通常可以将其运行为:

    ./configure --prefix=$HOME/usr/libX
    

    它将安装在$HOME/usr/libX/bin$HOME/usr/libX/lib$HOME/usr/libX/etc等等。

    如果您从源代码构建 libY,配置脚本通常使用pkg-config 工具来查找包的存储位置。 libX 应该在$HOME/usr/libX/lib/pkgconfig 目录中包含一个 .pc 文件,它告诉 configure 在哪里寻找头文件和库文件。您需要告诉 pkg-config 工具先查看您的目录。

    这是通过将 PKG_CONFIG_PATH 设置为首先包含您的目录来完成的。 配置libY的时候试试

    PKG_CONFIG_PATH=$HOME/usr/libX/lib/pkgconfig:/usr/local/lib/pkgconfig ./configure
    

    man pkg-config 应该提供详细信息。

    【讨论】:

      猜你喜欢
      • 2018-08-10
      • 2020-06-29
      • 2011-09-28
      • 1970-01-01
      • 2020-05-20
      • 2014-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多