问题描述
有几种方法可以在Ubuntu中安装应用程序:
-
您可以下载源tarball(通常是
.tar.gz
或.tar.bz2
文件)并手动安装。 (见How do I install a .tar.gz (or .tar.bz2) file?) -
您可以下载
.deb
文件并使用dpkg
或软件中心手动安装。 -
您可以在Ubuntu软件中心中搜索该应用程序并将其安装在那里,或者将
apt
与官方Ubuntu存储库一起使用。 -
您可以找到PPA或third-party仓库,并从那里安装它。
每种方法的优缺点是什么?请在答案中讨论每种方法的安全隐患,更新频率和程序可靠性。
最佳解决思路
-
可靠性:
-
从tarball安装时,软件可能会尝试覆盖其他软件。需要构建依赖项,并且该过程具有高故障率。如果要安装存储库中的软件包所依赖的软件,则不会满足该依赖关系,因为它未向
dpkg
注册,除非您使用checkinstall
将其临时转换为debian软件包。有了这个,你就有可能破坏dpkg
。即使代码是open-source,除非您确保它没有被更改,否则您仍应从受信任的站点下载它。您可以安装多个版本的软件,只要它使用不同的目录即可。您可以在makefile中覆盖它。 -
使用debian软件包将确保文件不会覆盖其他程序的文件,但是,如果使用
sudo dpkg -i file.deb
,则必须首先安装依赖项。以这种方式安装时,除非软件包也在存储库中,否则您将无法获得更新,但此软件包将满足需要此软件的依赖项。它也很可能为这个包提供菜单条目或至少注册联机帮助页。 Debian软件包通常使用Lintian进行测试,确保软件包满足或超过一组可能非常严格的标准,直到某些文件是否具有任何可执行代码。无法安装同一软件包的多个版本。一个制作糟糕的软件包可能无法安装,无法删除甚至破坏DPKG,导致难以修复,疯狂搜索备份,甚至在问题严重时重新安装。 -
如果可能,使用
apt
是最佳选择。将自动获取和安装依赖项,并使用启动板上的可靠构建服务器配置构建程序包,从而最大限度地减少故障。可以通过aptitude
或其他此类工具搜索包,并通过更新管理器轻松实现更新。由于依赖关系也来自apt
,因此该包更可能与依赖项正确交互。软件包通过Lintian和debs一起进行测试,但测试结合高度稳定的构建服务器,可以提供更稳定的软件包。由于软件包通过Ubuntu的构建服务器,因此很可能会调整它们以与操作系统的其余部分集成。无法安装同一软件包的多个版本。由于Ubuntu的构建服务器用于PPA,因此,由于auto-linitianing,您将破坏apt
的更改。
-
-
更新:
-
使用tarball,除非程序有自己的检查,否则您将无法获得更新。有了这个,您将需要手动安装此类更新,并且它们不会合并到一个位置。您可能能够在tarball中获取每晚或甚至当前的源代码来编译和安装。如果您需要bleeding-edge代码,那可能会有用。
-
使用debian,只有拥有存储库的软件包才会更新。开发人员很可能会使debian软件包稍微落后于最新资源,但是经常会在网上找到debas。
-
使用
apt
,软件包将非常容易更新。更新将合并到一个位置,即更新管理器,并自动完成或semi-automatically。除非您使用的是Ubuntu的alpha或beta版,否则您将使用well-tested版本,即使它们是当前上游源的版本或者两个版本。安全更新将在轻微测试后立即推送,以确保它们不会使情况更糟。这意味着您的安全性将受到及时更新的保护,但将检查这些更新以避免数据丢失。
-
-
安全:
-
Tarball没有以任何方式进行数字签名。它们可能被恶意的第三方破坏或修改。即使你做了一个hashsum(避免MD5),你仍然应该信任该站点的所有者和包的作者,因为它们提供SHA或MD5总和。
-
Debian软件包没有签名,但是
dpkg
不允许debian软件包覆盖另一个软件包,因此恶意deb不能通过覆盖它来破坏init
或乱用bash
。您应该始终信任该网站和该软件包的作者。 -
apt
使用已签名的密钥存储库,因此它们可以被修复而不会出现红色标记。 PPA上传是经过数字签名的,因此PPA的non-owners无法提供损坏或不安全的包裹。还强制执行另一个包的文件的no-overwrite。当然,您应该信任PPA或存储库所有者,因为带有恶意代码的未经检查的包将在运行时执行。
-
次佳解决思路
简短的回答是,从Ubuntu软件中心安装通常比所有其他方法更好。但是,有时您可能希望从其他位置安装程序。
从源代码安装:
-
安全隐患:您需要信任该软件的作者和承载该下载的网站。您还应检查下载是否通过HTTPS执行,否则,third-party可能会修改下载。
-
更新频率:您将始终获得最新和最好的!更新将与原作者选择的频率一样频繁。但是,您需要手动检查更新。
-
可靠性:它可能不如其他方法可靠,因为软件将经历较少的测试,甚至可能根本没有针对Ubuntu进行测试,只有其他Linux发行版。
-
易于安装和卸载:所有选项中最困难的。即使是有经验的用户也可能会避免使用此选项,因为他们更喜欢使用更易于管理的本机Debian软件包。
从.deb包安装:
-
安全隐患:与从源安装相同。
-
更新频率:与从源安装相同。
-
可靠性:比从源安装要好一些。如果作者提供了
.deb
包,这意味着他们可能已经对Debian或Ubuntu进行了一些最小的测试。 -
易于安装和卸载:非常简单。只需double-click并点击”install”!同样易于卸载。
从Ubuntu软件中心安装:
-
安全隐患:您需要信任该软件的作者和Ubuntu repo维护者。总的来说,这比直接从源代码安装更安全,因为该程序已经在某种程度上由Debian和/或Ubuntu维护者进行了审查。如果程序是开源的,Debian和/或Ubuntu维护者也可以修补程序以修复安全漏洞。
-
更新频率:Debian和/或Ubuntu维护者只选择某些版本的软件。 (例如,他们可能只选择稳定的更新)。程序发布与将其包含在Debian和/或Ubuntu存储库之间存在延迟。如果你想要最新和最好的,这不是最好的选择。如果您想要经过审核的稳定更新,这是一个不错的选择。通过更新管理器和
apt-get
自动提出更新。 -
可靠性:比从源安装更好,因为该程序已经过Ubuntu的审查和调整。
-
易于安装和卸载:非常非常简单。
从PPA或third-party仓库安装:
-
安全隐患:您需要信任软件的作者以及维护PPA的人。绝对任何人都可以托管PPA,所以不要仅仅因为它在Launchpad上而信任PPA。用户可能一直懒惰而根本没有查看软件。
-
更新频率:取决于PPA。检查更新很容易。
-
可靠性:通常不如从Ubuntu软件中心安装可靠。 PPA适用于尚未达到Ubuntu软件中心标准的程序,因此几乎可以保证它们不太可靠。
-
易于安装和卸载:学习起来并不难,而且它与Ubuntu的软件包管理非常吻合。