![从源代码构建另一个项目时,是否需要从源代码构建所有依赖项?](https://linux22.com/image/170368/%E4%BB%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E6%9E%84%E5%BB%BA%E5%8F%A6%E4%B8%80%E4%B8%AA%E9%A1%B9%E7%9B%AE%E6%97%B6%EF%BC%8C%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81%E4%BB%8E%E6%BA%90%E4%BB%A3%E7%A0%81%E6%9E%84%E5%BB%BA%E6%89%80%E6%9C%89%E4%BE%9D%E8%B5%96%E9%A1%B9%EF%BC%9F.png)
我的发行版的软件包存储库没有我想要的当前版本的 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/local
(PREFIX
在执行之前设置./configure
,或者如果此包的做法不同,请阅读文档)。这样,您自己构建的内容和包管理器安装的内容就不会发生冲突。我stow
也用这个,所以我可以保留几个版本。
它们是否有可能也会过时
当然“有机会”。找出答案的唯一方法是去你的包管理器看看。如果上游存在更新的版本,这可能是向您的包管理器指向更新版本的好机会。