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

Fli*_*imm 29 software-center apt ppa

有几种方法可以在 Ubuntu 中安装应用程序:

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

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

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

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

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

nan*_*rad 33

  • 可靠性:
    • 从 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 中获得每晚甚至当前的源代码以进行编译和安装。如果您需要前沿代码,那可能很有用。
    • 在 debian 中,只有当您拥有它们的存储库时,才会更新软件包。开发人员很可能会在最前沿的源代码之后制作 debian 软件包,但是在线 debs 中经常可以找到测试版。
    • 使用apt,软件包将很容易更新。更新被整合到一个地方,即更新管理器,并自动或半自动完成。除非您使用的是 Ubuntu 的 alpha 或 beta,否则您将使用经过良好测试的版本,即使它们比当前上游源落后一两个版本。安全更新将在经过轻微测试后立即推送,以确保它们不会使情况变得更糟。这意味着您的安全将受到及时更新的保护,但将检查这些更新以避免数据丢失。
  • 安全:
    • Tarball 没有以任何方式进行数字签名。它们可能会被恶意的第三方破坏或修改。即使你做了一个哈希和(避免 MD5),你仍然应该信任站点的所有者和包的作者,因为他们提供 SHA 或 MD5 和。
    • Debian 软件包未签名,但dpkg不允许一个 debian 软件包覆盖另一个软件包的文件,因此恶意 deb 无法通过覆盖来破坏init或干扰bash它。您应该始终信任该网站和软件包的作者。
    • apt对存储库使用签名密钥,因此它们不能在没有出现危险信号的情况下被破坏。PPA 上传经过数字签名,因此 PPA 的非所有者无法上传损坏或不安全的包。另一个包的文件的无覆盖也被强制执行。当然,您应该信任 PPA 或存储库所有者,因为带有恶意代码的未经检查的包将在运行时执行。


Fli*_*imm 20

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


从源安装:

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

  • 更新频率:您将始终获得最新最好的!更新将与原作者选择的一样频繁。但是,您需要自己手动检查更新。

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

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

.deb包安装:

  • 安全隐患:与从源安装相同。

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

  • 可靠性:比从源安装略好。如果作者提供了一个.deb包,那意味着他们可能已经在 Debian 或 Ubuntu 上做了一些最小的测试。

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

从 Ubuntu 软件中心安装:

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

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

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

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

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

  • 安全隐患:您需要信任软件的作者,以及维护 PPA 的人。绝对任何人都可以托管 PPA,所以不要仅仅因为它在 Launchpad 上就相信 PPA。用户可能很懒惰,根本没有审查软件。

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

  • 可靠性:通常不如从 Ubuntu 软件中心安装可靠。PPA 适用于尚未满足 Ubuntu 软件中心标准的程序,因此实际上保证它们不太可靠。

  • 易于安装和卸载:它不难学习,并且非常适合 Ubuntu 的包管理。

  • @Flimm:不完全是,USC 也可以安装 .deb 包,因此将 USC 称为 apt-get 和 dpkg 的前端更合适。 (2认同)