关于软件安装的假设性问题。下载并安装了版本 1 的 .exe 或 .dmg 文件。它在文件系统中创建并存储其信息的文件夹是 A、B 和 C。现在我们用版本 2 文件替换文件系统上的版本 1 文件(已知它还在同一路径下创建具有不同内容的 A、B、C 文件夹)。我们刚刚成功安装了版本 2 吗?
所讨论的操作系统是 OS X。软件几乎任何都有。是否也应该更新一些首选项文件?
答案1
唯一的答案可能是“不,除非它有效,否则是的。”这将因应用程序而异,并且应用程序内也有不同的版本。
大多数应用程序使用共享库和组件,这些库和组件随第一个使用它们的软件一起安装。这有几个含义:
- 您的软件的某些重要组件可能不会与相关软件同时安装。
- 其他应用程序可能依赖于你的程序安装的对象/组件
- 大多数应用程序必须使用程序编译时所用的依赖项的精确版本。
- 当使用共享对象的另一个应用程序更新/升级时,它可能会更新共享对象。如果没有其他软件知道共享对象被其他产品使用,它就没有理由不删除现有(现已过时)的对象版本。
出于这些原因,每个主流操作系统都实施了跟踪应用程序组件和版本依赖关系的方案。Mac 有几种方案,包括 MacPorts、Fink 和 Homebrew。
因此,正如您所知,这完全取决于:
- 特定应用程序依赖项
- 您安装的其他应用程序及其共享依赖项
- 您使用的包管理方法
如果所讨论的应用程序没有外部依赖项,并且您不想使用包管理器来重新安装/更新/删除该程序,那么它就可以工作。
如果应用程序具有外部依赖,但它是唯一依赖于系统的应用程序,并且您不想使用包管理器来重新安装/更新/删除该程序,那么它就会起作用。
在所有其他情况下,不会,它将不起作用,并且可能会导致奇怪和不可预测的问题。特别是在执行新操作系统版本升级时要特别小心。