在Ubuntu中,包和软件之间有什么区别?

这是一个非常基础的问题,但我找不到答案。我想知道“package”和“software”的区别。
通过执行命令“sudo apt-get install filezilla”,下载了名为filezilla的软件包以及其他依赖包。好的,这就是软件包。
那么,“software”是什么呢?在Ubuntu中,所有东西都是软件包,对吗?还是说有其他软件?如果有,那么什么才是真正的软件?
使用Ubuntu软件中心,我是安装软件包还是软件?
提前感谢。
2个回答

如果你熟悉MS-Windows,那么在该系统下安装软件的常规方法是使用setup.exe。正如你所见,Ubuntu使用软件包。
主要(巨大)的区别在于软件包具有所谓的依赖关系,因此像APT这样的系统可以在安装所选软件包之前下载所有必要的依赖项。当然,有时候所有的依赖项已经满足,所以只安装一个软件包。 setup.exe和软件包都是由多个文件组成的单个二进制文件。在大多数情况下,这是一种压缩存档。在MS-Windows下,它们通常使用zip。Debian / Ubuntu软件包使用ar和tar(ar作为包装器,tar用于保存软件包中的所有文件)。
所以...根据软件的一般定义,一个软件包通常可以被视为一个软件(一个程序)。它需要自动安装依赖项的事实是一种产物。然而,有些软件包本身并不是软件。也就是说,-doc软件包可能只是HTML或man文件。其他软件包只包含调试符号。
作为一个程序员,我可以说软件是安装在/usr/bin(或等效位置)下的文件。这些文件是软件的实际“大脑”,编译后的程序会发送到计算机的CPU中执行任务。

软件包就像是带有构建软件所需的所有组件的盒子。当你使用APT安装软件时,实际上是从软件仓库下载一个DEB(Debian)软件包,然后使用该软件包中提供的“部件”来构建软件。所以,在Ubuntu中你是在使用软件。Ubuntu本身就是一款软件。软件包只是编译(构建)程序的简单方式。
只是为了明确一下,软件是一种工具,用于用户与硬件之间的通信。

2嗯...我觉得这里对于"build"一词的使用有些不准确。你是构建一个软件包然后"安装"它,虽然实际上安装过程更像是"提取"而不是"构建"。作为一个软件包维护者,你应该构建软件包。 - Alexis Wilke
我知道,但是一个不知道包装和软件之间区别的人可能是一个非常新的用户。你必须使用例子,比如“组装”一台机器,其零件来自一个“盒子”。 - Eduardo Cola
使用Makefile从模块生成程序可执行文件时,“build”动词也很常见。 - Leonardo Castro