有时,当我从互联网上下载软件时,我发现有一个 .deb 软件包可供我的 Debian/Ubuntu 使用,还有一个 tarball 可供编译。一开始,我只会使用该软件包,因为它安装方便,甚至不敢尝试编译。甚至它的声音都让我有点害怕。然而,现在,当我有选择时,我有时会陷入困境:与 .deb 软件包相比,从源代码编译是否有不受欢迎的优势?我希望在这里找到答案,谢谢。
答案1
从源代码编译的优点是,您可以使用某些标志/选项来编译软件包,而这些标志/选项在标准 Ubuntu 软件包中可能缺失/禁用。此外,它还可以轻松安装同一程序的多个版本。此外,您可以选择软件包的精确版本,该软件包可能已从 Ubuntu 存储库中删除或尚未存在(例如:我的 /opt/ 目录中有多个版本的 Python 2.4.x,因为我需要它来运行一些较旧的软件)。
从源代码编译的缺点是,除非您构建一个 .deb 然后安装它,否则正常的“ ./configure; make; sudo make install”过程会让 Ubuntu 的包管理器完全不知道您所做的更改,所以你不会得到任何手动编译的软件的更新;而且如果您不小心将其安装在单独的位置,包管理器可能会稍后覆盖/破坏您的包。
简而言之:始终首先考虑从标准 Ubuntu 存储库安装,然后考虑安装 .deb;只有当您确切知道为什么需要这样做时才从源代码进行编译。
答案2
我昨天还在争论这个问题。我认为,不要构建任何脆弱的东西非常重要,因为众所周知,没有最新且良好的文档,尤其是当您使用脆弱的系统时,就没有时间去救火和编写文档,而当一切都很强大时,文档就不那么需要了。所以你永远不应该从源代码编译,寻找另一种解决方案,使用另一种软件,更改您的架构,但不要使用更新后会损坏的东西。是的,这与内核版本无关,它与您的机器的架构有关,而且在当今,您几乎无法从源代码编译中获得显着差异,我敢打赌你不会得到任何差异。
答案3
安装 .deb 当然要容易得多,但是如果可以的话,最好的办法是在 repo 或 ppa 中找到它,以便可以获得更新。
据我所知,除非你打算先修改它,否则自己编译它没有什么好处。如果你只想要原样的软件,那么安装 .deb