编译软件是开发者经常做的事情,在开源世界中,一些用户甚至选择自己动手。Linux 播客 Dann Washko 称源码为“通用包格式”,因为它包含了使一个应用在任何平台上运行所需的所有组件。当然,并不是所有的源码都是为所有的系统编写的,所以它只是在目标系统的子集内是“通用”的,但问题是,源码是非常灵活的。有了开源,你可以决定代码的编译和运行方式。
你正在编译的软件需要链接到本身刚刚编译但尚未安装的库。良好设计的构建系统,例如 Autotools和CMake,可以帮助处理这个问题。你正在使用设计为在单个目录之外运行的软件,它没有安装脚本,或安装脚本将库放置在非标准目录中。一些应用具有 Linux 用户可以下载、复制到 /opt并在“不安装”的情况下运行的版本。LD_PATH_LIBRARY变量是通过封装脚本设置的,因此用户通常甚至不知道它已被设置。