我可以直接更新从源代码安装的软件吗

Che*_* S. 16 updates installation packaging source-code backport

尽管我开始使用 Ubuntu 已经快一年了,但我还没有尝试从源代码安装软件。我实际上并不觉得有必要这样做。但现在我正在开发一个软件,该软件处于存储库中的候选发布阶段,但最新的稳定版本的源代码可在软件主页上找到。

我了解到如果软件有很多依赖项,从源代码安装可能会很困难。但是,如果我解决了这个问题,我会对最新版本感到满意。但是我一直想知道这样的软件是否可以自动更新,或者我是否必须运行一些脚本来更新包。或者更糟糕的是,我是否必须从头开始重新安装每个更新?

另外,我很想知道从上述以外的源安装是否有任何特定优势。

evg*_*eny 10

最好注意软件的依赖项很少改变。如果您已经成功编译了一次软件,那么任何后续版本都应该很容易编译 - 所有依赖项都应该已经得到满足。

如果您从源代码编译,则没有.deb或类似的软件包可用于更新,除非您等待发行版将该软件包含到他们的存储库中,或者等到开发人员的 PPA 更新。

简而言之,必须有人先编译它才能使其成为 deb。编译旧版本不会给你自动更新的能力,你仍然需要经历整个“下载-配置-编译-安装”过程。

但是,如果您想在多台计算机上安装相同的版本,则将编译后的版本打包为一个.deb(或类似的)并将其分发到这些计算机上是有意义的。如果操作正确,依赖项将被自动拉入。

至于从源码安装的好处,我能想到的只有两个:

  • 您可以访问代码的最新版本,并且可以选择稳定版本或尖端版本(通常称为夜间构建、最新版本等)
  • Ubuntu/other-distribution 可能不想将软件包含在他们的存储库中。在这种情况下,您会被开发人员或社区提供的源代码或包所困扰。也就是说,您别无选择,只能使用资源。

  • 即使您自己编译了一些东西以在一台计算机上使用,自己制作一个 .deb 包总是很有用的,因为它可以帮助您在一个地方保存已安装软件的概览,并使您自己更容易卸载或升级。 (4认同)

小智 5

根据这篇文章,您可以在编译源代码后生成一个 .deb 包。然后,您可以从 .deb 包安装,而不是“make install”。这使得更新更容易(如果它在某个存储库中),因为包将由跟踪更新的包管理器管理。

如果从源代码构建包“some-package”,并且存在依赖项,您可以尝试“apt-get build-dep some-package”来自动安装编译包所需的所有依赖项,而无需手动跟踪每个依赖自己。这样,依赖项也由包管理器管理,也应该自动更新。