从源代码构建另一个项目时,是否需要从源代码构建所有依赖项?

从源代码构建另一个项目时,是否需要从源代码构建所有依赖项?

我的发行版的软件包存储库没有我想要的当前版本的 tmux 软件包。我tar.gz从网站上下载了最新版本的格式。然而,在尝试./configure这样做时,configure 告诉我它需要其他依赖项。我的问题是,从源手动构建这些依赖项是否是最佳实践?如果我要使用分发包管理器下载这些依赖项,是否有可能他们也是是否会过时,并且存在比当前 tmux 需要的更旧的依赖项?

在这种特殊情况下,我尝试tmux在 Ubuntu 18.04.4 LTS 上构建 3.0a,但它告诉我不存在的软件包称为libevent

答案1

假设您需要 libevent 版本 42.1。

如果您的包管理器有 libevent 版本 42.5,请继续安装它。无需从源代码构建它。要使用libevent构建软件,您需要安装相应的开发包; libevent-dev 在基于 .deb 的发行版上,libevent-devel 在基于 RPM 的发行版上。

如果您的包管理器只有 libevent 版本 40.3,那么您还需要从源代码(从高于 42.1 的版本)构建 libevent。

建议:安装您从源代码构建的所有内容/usr/localPREFIX在执行之前设置./configure,或者如果此包的做法不同,请阅读文档)。这样,您自己构建的内容和包管理器安装的内容就不会发生冲突。我stow也用这个,所以我可以保留几个版本。

它们是否有可能也会过时

当然“有机会”。找出答案的唯一方法是去你的包管理器看看。如果上游存在更新的版本,这可能是向您的包管理器指向更新版本的好机会。

相关内容