在 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 时,您将需要手动安装此类更新,并且它们不会合并到一个地方。您可能能够以 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 的包管理很契合。