在本地安装开发文件以在没有 root 访问权限的系统上构建?

pos*_*ist 11 libraries centos

我正在使用一台服务器,运行旧版本的 Linux。我没有系统的 root 访问权限,所以我想构建一个我经常使用的工具的更新版本(Vim 7.3)。我想我会构建它并将其安装在 ~/bin 中。但是,它需要未在系统范围内安装的 ncurses 开发文件。我找到了 ncurses-devel rpm,并提取了“lib”和“include”文件夹,我将它们放在哪里以及如何告诉 ./configure 脚本找到它们,以便我可以在本地正确配置和构建包?

编辑:我最终通过在 Virtualbox 中安装相同的操作系统来解决这个问题,并在那里构建包并复制二进制文件。

小智 15

我在上一份工作中经常这样做 - 似乎最有效的解决方案是创建一个 ~/usr 目录,并使用 --prefix 参数将 ./configure 脚本指向正确的方向。以下是步骤:

  • 创建 ~/usr 目录,并在其下包含、lib 和 bin 目录。
  • 在您的 .profile、.bashrc 或其他 shell 初始化脚本中,添加以下内容(或您的 shell 方言中的等效内容):
    export PATH=$PATH:~/usr/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/usr/lib
    export C_INCLUDE_PATH=$C_INCLUDE_PATH:~/usr/include
    export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:~/usr/include
Run Code Online (Sandbox Code Playgroud)
  • 构建包时,使用 ./configure --prefix=/home/<username>/usr

这种安排适用于我需要在用户空间中构建东西的大多数情况。最困难的部分通常是查找和构建您需要的所有依赖项,但这只是需要使用一些谷歌搜索或明智地使用您的包管理器的“获取源”功能。