通过Ubuntu软件中心和终端安装应用程序有什么区别吗?

我想问一个非常基本的问题,但之前从未考虑过。 嗯,当有人从终端安装应用程序时,他首先必须添加存储库,对吗?而当有人从Ubuntu软件中心安装应用程序时,存储库是否会自动添加?
我问这些问题是为了弄清楚:当我运行更新然后升级时,该应用程序是否会升级?两个选项的结果是否相同?
4个回答

这并不完全准确,但也不算离谱。

Ubuntu软件中心是一组软件仓库。许多应用程序已经在这些仓库中。要安装这些应用程序,您无需添加新的仓库。

当您安装一个具有自己仓库的应用程序(如virtualbox),并且想要使用命令行apt-get或软件中心时,您需要添加仓库、添加密钥,然后更新(apt-get update)。还有其他仓库,其中包含大量应用程序,比如playdeb,他们的仓库中有很多游戏。

之后,您可以使用GUI软件中心或命令行apt-get install xxx从仓库中安装应用程序。

您还可以使用dpkg安装.deb文件,或者使用二进制安装程序进行其他安装,甚至只需解压二进制文件即可。

总结:

不是所有的应用程序都必须从软件仓库安装。 许多数以千计的应用程序已经预先配置在软件仓库中,可以在初始安装时使用。 您可以添加软件仓库,然后使用图形界面或命令行从中安装应用程序。 您可以通过使用.deb文件、二进制文件或压缩文件来安装不在软件仓库中的程序。 从软件仓库安装的应用程序将在运行更新和升级命令时进行升级(如果可能)。一个注意事项是,在发行版升级(例如从11.10到12.04)之后...在这种情况下,您需要重新添加之前添加过的任何软件仓库。

无论如何,当我运行apt-get upgrade命令时,应用程序会自动升级,对吗? - gabriel
如果应用程序是通过软件仓库安装的,那么是的。如果您以其他方式安装了它,则不是。 - cprofitt
+1 对于我忽略的问题中处理存储库方面的回答,非常感谢。 - Joe

从软件中心或其他图形界面安装软件与通过命令行安装的唯一真正大的区别在于当出现问题时。
在大多数图形界面中,安装错误消息是隐藏的,它们只会给你一个一般性的消息,告诉你安装失败了。而当你通过命令行安装时,你会看到所有生成的消息。通常,这些信息可以用来修复问题,或者告诉你为什么你可能不想修复它。例如,安装该软件包将破坏或卸载已经安装的其他软件包。
有时,一个软件包无法安装只是因为它的某个依赖项没有安装(而常规安装不会自动修复这个问题,像大多数软件包那样)。当这种情况发生时,你通常可以先安装缺失的软件包,然后再进行安装,这样你的安装就会成功。
此外,apt-get还会告诉你与你的软件包一起“推荐”的其他相关软件包,所以你可以查找它们并看看你是否需要其中任何一个。
它还会报告之前安装的可能不再需要的任何软件包,并告诉你如何删除它们。
在这最后两个步骤中,你不应该随意添加/删除软件包,而应该仔细审查涉及的软件包,但通常是安全的。
在Ubuntu 12.04中,新安装的应用程序默认会添加到启动器中,但这仅适用于使用软件中心安装的应用程序。

仓库只需要添加和启用一次。你可能会看到类似以下的指示:

Add the Stable Bumblebee Releases PPA and install Bumblebee using the proprietary NVIDIA driver:

sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia

添加存储库只需执行一次。在上面的示例中,bumblebee程序不在默认存储库中,因此您需要启用这个第三方存储库(使用add-apt-repository程序)。

第二行的apt-get update命令会刷新软件包列表,以获取有关软件包的最新信息。如果添加了新的存储库,这将通知数据库有来自该存储库的新软件包。

第三个命令apt-get install ...相当于选择要安装的软件包。

Ubuntu软件中心允许您安装存储库中可用的软件。与使用apt-get install命令“手动”安装软件包时没有任何区别。您仍然可以从存储库获取更新等内容。

最后,您可能会遇到类似“下载foo.deb并使用sudo dpkg -i foo.deb安装”的说明。在这种情况下,除非软件包的作者对系统配置进行修改(如Google Chrome),否则您将不会收到升级。


好的,我明白了。所以,当我从软件中心安装一个应用程序时,比如说GIMP已经在存储库里,并且正在运行apt-get命令。所以,在升级过程中,GIMP程序将会像从终端安装一样被升级,对吗? - gabriel
是的,无论是使用apt-get命令还是软件中心操作,都会确保在存储库宣布有更新时升级程序。 - Lekensteyn

软件中心是apt工具的前端用户界面。当您从软件中心安装软件时,它会使用apt进行安装。因此,当您执行apt-get updateapt-get upgrade命令时,将更新您从中心安装的软件。 此外,如果软件中心需要自动添加存储库,也将由apt使用,因为正如我所说,软件中心使用apt。 当您使用apt安装某些东西时,并不总是需要添加存储库,例如,如果您键入apt-get install vlc,它将安装vlc,但您并没有添加存储库。

好的,现在我看到了你的回答。所以,当我安装一个应用程序,比如VLC时,如果我想通过apt-get upgrade来升级它,我需要添加软件源,对吗?而如果是从软件中心安装的,那么它会通过apt-get upgrade来升级吗? - gabriel
不,如果你通过apt-get install vlc安装了VLC,那么你并没有添加一个软件源。你只是从Ubuntu的软件源中安装了一个软件。如果你从软件中心安装它,那么实际上安装的是同样的软件。 “如果从中心安装,那么通过apt-get upgrade会升级吗?”正如我之前说过两次的那样,是的,会升级,因为中心也使用apt。当你从电脑上安装更新时,apt-get upgrade就是中心所做的事情。apt和中心是同一件事,只是界面不同而已。 - Bahaïka