软件更新如何在OS X中工作?


8

我刚从Linux切换到OS X,但我仍然习惯它。

我知道我将需要使用Homebrew,因为我依赖于许多CLI工具。另外,我刚刚读过《木桶》,这使我对一件事感到奇怪。软件(不是来自App Store)如何获取更新?类似于Windows,即一条消息,通知您有关新版本的信息,以便我可以下载它,或者以某种方式与系统集成在一起,这样就不必每次要更新应用程序时都下载新的.dmg吗?

如果它是“类似Windows的”,那么最好将Cask用于Firefox,VirtualBox,VLC,LibreOffice ...之类的东西?


2
如果只需要g ++ / gcc之类的命令和其他开发人员工具,则可以安装Apple的命令行开发人员工具,只需在终端中键入g ++,然后接受安装即可。这些开发人员工具的所有更新都在App Store应用程序的“更新”下。
Flare Cat

Answers:


8
  • 使用cask,只需一个命令即可升级所有已安装的应用程序(随cask一起安装):

    brew cask update
    

    这是一种非官方的(基于社区的)升级应用程序的方式,并且其存储库中只有免费软件(无法购买)。这种机制的优点是:

    1. 它可以编写脚本
    2. 它将系统应用程序与用户应用程序分开(将已安装的应用程序放置在中,~/Applications/而不是放置在其中/Applications/),因此它是针对每个用户的。
    3. 打包安装程序的安装在后台进行,因此不需要用户交互。
    4. 应用程序的卸载由其社区进行编程,因此无需担心卸载后剩余的文件。
    5. 有可能系统地拥有多个版本的应用程序,因为该机制使用符号链接表示应用程序的最新版本或选定版本。
    6. 应用程序的源保留在缓存中,因此您可以安装和卸载它们,而无需进行其他下载。

    该机制的缺点是:

    1. 没有差异升级。它下载整个应用程序映像(.dmg)或程序包(.pkg)并存储在缓存中。
    2. 应用程序的安装依赖于可能不理想的符号链接(应用程序有两个副本,可能会在“打开方式”列表中重复出现)
  • 还有一种官方的App Store机制(默认),用于升级自身安装的应用程序,它支持差异升级,并且只需单击即可升级所有已安装的应用程序。但是与Cask不同,它无法编写脚本来运行升级,安装等操作,并且不保留源代码。

  • 另一种机制是在应用程序启动时进行应用程序内升级检查。它不同于App Store升级,还支持差异升级。

我认为由您来选择对哪种类型的应用程序使用哪种机制,这种比较可能会对您有所帮助。

我将Cask用于App Store中未提供的应用程序(例如VLC,OS X FUSE,OwnCloud,Weka等),并将App Store用于我购买的非免费应用程序。应用内升级不适合我,因为它不能保留下载数据的来源。


3

对于非Apple交付的,非Mac App Store应用程序的更新,没有公认的“最佳”方法。有很多方法,一些使用linux工具,其他方法重塑某些轮子,其他方法以类似于在核心脚本和ruby软件包配方上构建自制软件的方式来编写rsync / curl脚本。

至于应用程序的自我更新(或至少在可能有更新可用时通知最终用户),一些应用程序使用诸如sparkle之类的框架来检查更新或编写自己的更新检查机制。Microsoft Office,Chrome,Firefox和许多其他应用程序不需要其他任何更新机制,而是选择了自动更新机制。

自制酒桶可能会更新,而命令行工具的核心自制酒体验也会更新,因此我将首先对此进行介绍,然后询问是否/何时考虑到某个特定应用程序未根据您的需求进行更新。

如果您以专业的方式管理Mac,则有许多框架可以进行映像,更新甚至运行自己的“应用程序商店”,以打包特定版本的应用程序,并绕开Apple的流程。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.