我应该从源 tarball(`.tar.gz`)、Ubuntu 软件中心还是其他地方安装程序?

我应该从源 tarball(`.tar.gz`)、Ubuntu 软件中心还是其他地方安装程序?

在 Ubuntu 中安装应用程序有多种方法:

  • 您可以下载源 tarball(通常是.tar.gz.tar.bz2文件)并手动安装。(请参阅如何安装 .tar.gz(或 .tar.bz2)文件?

  • 您可以使用或软件中心下载.deb文件并手动安装。dpkg

  • 您可以在 Ubuntu 软件中心搜索该应用程序并在那里安装,或者apt与官方 Ubuntu 存储库一起使用。

  • 您可以找到 PPA 或第三方 repo,然后从那里安装它。

每种方法的优缺点是什么?请在您的答案中讨论每种方法的安全隐患、更新频率和程序可靠性。

答案1

  • 可靠性:
    • 从 tarball 安装时,软件可能会尝试覆盖其他软件。需要构建依赖项,并且该过程失败率很高。如果您正在安装存储库中的软件包所依赖的软件,这将无法满足该依赖项,因为它未在 注册dpkg,除非您使用checkinstall将其临时转换为 debian 软件包。这样,您确实有风险打破dpkg即使代码是开源的,除非你确定它没有被更改,否则你仍然应该从受信任的站点下载它。你可以安装多个版本的软件,只要它使用不同的目录即可。你可以在 makefile 中覆盖这一点。
    • 使用 Debian 软件包将确保文件不会覆盖其他程序的文件,但是,如果使用sudo dpkg -i file.deb,则必须先安装依赖项。以这种方式安装时,除非软件包也在存储库中,否则您将无法获得更新,但此软件包将满足需要此软件的依赖项。它还很可能会为该软件包提供一个菜单项或至少注册手册页。Debian 软件包通常使用 Lintian 进行测试,以确保软件包符合或超过一组可能非常严格的标准,甚至包括某些文件是否具有可执行代码。无法安装同一软件包的多个版本。制作不良的软件包可能会导致安装失败、删除失败,甚至打破DPKG,导致难以修复、疯狂搜索备份,或者如果问题严重则需要重新安装。
    • 如果可能,使用apt是最佳选择。依赖项将自动获取和安装,并使用启动板上的可靠构建服务器配置构建包,从而最大限度地减少故障。可以通过aptitude或其他此类工具搜索包,并且可以通过更新管理器轻松进行更新。由于依赖项也来自apt,因此软件包更有可能与依赖项正确交互。软件包通过 Lintian 进行测试,就像使用 debs 一样,但测试与高度稳定的构建服务器相结合,使软件包更加稳定。由于软件包通过 Ubuntu 的构建服务器,因此很可能会对它们进行调整以与操作系统的其余部分集成。同一软件包的多个版本不能安装。由于 Ubuntu 的构建服务器用于 PPA,因此apt由于自动初始化而破坏的更改较少。
  • 更新中:
    • 使用 tarball 时,您将无法获得更新,除非程序有自己的更新检查功能。使用 tarball 时,您将需要手动安装此类更新,并且它们不会合并到一个地方。您可能能够以 tarball 的形式获取夜间甚至当前源代码以进行编译和安装。如果您需要前沿代码,这可能会很有用。
    • 使用 Debian,只有拥有软件包的存储库时,软件包才会更新。开发人员很可能会制作出比最新源代码稍落后的 Debian 软件包,但通常可以在网上找到带有 Debs 的测试版。
    • 使用apt,软件包将非常容易更新。更新被整合到一个地方,即更新管理器,并自动或半自动完成。除非您使用的是 Ubuntu 的 alpha 或 beta 版本,否则您将使用经过充分测试的版本,即使它们比当前上游源落后一两个版本。安全更新将在经过简单测试后立即推送,以确保它们不会使情况变得更糟。这意味着您的安全将受到及时更新的保护,但这些更新将经过检查以避免数据丢失。
  • 安全:
    • Tarball 未以任何方式进行数字签名。它们可能会被恶意的第三方破坏或修改。即使您进行了哈希校验(避免使用 MD5),您仍应信任网站所有者和软件包作者,因为他们提供了 SHA 或 MD5 校验。
    • Debian 软件包未签名,但dpkg不允许 Debian 软件包覆盖其他软件包的文件,因此恶意的 deb 无法通过覆盖来破坏init或破坏bash。您应该始终信任软件包的网站和作者。
    • apt使用已签名的存储库密钥,因此它们无法被破坏,否则会出现红旗。PPA 上传经过数字签名,因此非 PPA 所有者无法上传损坏或不安全的软件包。还强制执行不覆盖其他软件包的文件。当然,您应该信任 PPA 或存储库所有者,因为未经检查的带有恶意代码的软件包在运行时将被执行。

答案2

简短的回答是从 Ubuntu 软件中心安装通常比所有其他方法都好。但是,有时您可能想从其他地方安装程序。


从源安装:

  • 安全影响:您需要信任软件的作者和提供下载的网站。您还应该检查下载是否通过 HTTPS 进行,否则第三方可能会修改下载。

  • 更新频率:您将始终获得最新和最好的更新!更新频率将由原作者决定。但是,您需要自己手动检查更新。

  • 可靠性:它可能不如其他方法那么可靠,因为该软件经过的测试较少,甚至可能根本没有针对 Ubuntu 进行过测试,只是针对其他 Linux 发行版进行过测试。

  • 易于安装和卸载:所有选项中最难的。即使是经验丰富的用户也可能避免使用此选项,因为他们更喜欢使用更易于管理的原生 Debian 软件包。

从包安装.deb

  • 安全影响:与从源安装相同。

  • 更新频率:与从源安装相同。

  • 可靠性:比从源代码安装略好。如果作者提供了软件包.deb,则意味着他们可能在 Debian 或 Ubuntu 上进行了一些最低限度的测试。

  • 易于安装和卸载:非常简单。只需双击并单击“安装”!卸载也同样简单。

从 Ubuntu 软件中心安装:

  • 安全影响:您需要信任软件的作者和 Ubuntu repo 维护者。总体而言,这比直接从源代码安装更安全,因为该程序已在某种程度上经过 Debian 和/或 Ubuntu 维护者的审查。如果该程序是开源的,Debian 和/或 Ubuntu 维护者也可以修补该程序以修复安全漏洞。

  • 更新频率:Debian 和/或 Ubuntu 维护者只选择软件的某些版本。(例如,他们可能只选择稳定的更新)。程序发布和包含在 Debian 和/或 Ubuntu 存储库之间存在延迟。如果您想要最新和最好的,这不是最好的选择。如果您想要经过审核的稳定更新,这是一个不错的选择。更新通过更新管理器自动提出apt-get

  • 可靠性:比从源代码安装好得多,因为该程序已经针对 Ubuntu 进行了审查和调整。

  • 易于安装和卸载:非常非常简单。

从 PPA 或第三方存储库安装:

  • 安全影响:您需要信任软件的作者以及维护 PPA 的人。任何人都可以托管 PPA,因此不要仅仅因为 PPA 在 Launchpad 上就信任它。用户可能很懒,根本没有审查过该软件。

  • 更新频率:这取决于 PPA。检查更新很容易。

  • 可靠性:通常比从 Ubuntu 软件中心安装更不可靠。PPA 适用于尚未满足 Ubuntu 软件中心标准的程序,因此几乎可以肯定它们的可靠性较低。

  • 易于安装和卸载:它并不难学,并且与 Ubuntu 的包管理很契合。

相关内容