OSX:苹果软件更新综述

简介:

Apple本身提供软件更新,10.8系统以前是单独的一个程序Software Update来管理,这个程序只能管理OS X本身和Apple的软件更新(比如iLife和iWorks套件等),对于App的更新需要使用App Store。为了可以把两者合给用户一个统一的界面,10.8之后统一使用App Store程序来管理系统和App的更新。不过它的命令行工具softwareupdate依然不变,提供的功能也包括列表、下载和安装等,而在10.7之后GUI的更新就已经不提供下载选项了。


苹果提供的方法对于个人用户完全可以应付99%的更新需求,可是对于网络环境中提供管理和客户化服务的企业来说,这很不够。在Mac OS X服务器上,苹果也提供了一个Update服务,让管理员可以为内部网络用户提供更新服务,但是这依然存在诸多的不便。比如,
  • 一旦Apple把一个旧的更新删除,这个服务也会把该更新包删除,然而在企业中会存在旧的软件和系统,管理员重新做了系统镜像后,需要的更新包被删除,比如更新到iPhoto 9.2.x时需要至少版本9.1,而从iLife DVD中制作的安装包的版本低于9.1。
  • 苹果的更新服务是一种平坦模式,没有细节颗粒化的管理机制。比如系统管理员在发布更新的时候,一般需要先测试,然后筛选出适合自己网络和企业环境的再发布,苹果的服务没有提供这种测试机制,也没有提供一种机制使管理远程筛选发布。
  • 系统平台固定:只能使用OS X Server。
  • 没有分布存储功能:苹果的也不提供软件和数据的分布存储,完全依赖于一台设备。
  • 安装/卸载软件:没有这个功能,需要使用其他软件,比如:ARD.

不提其他的如JAMF等付费软件提供的软件更新模式,和传统的radmin等,在开源和免费软件中,目前比较流行的至少有两个相对好的选择:一个是Munki,一个是Reposado。


Munki:

在之前的BLOG中介绍过Munki,Munki是Greg Neagle最初开发的(Note1),也是一个非常活跃的Google Code项目,项目的主要成员都是活跃在Mac系统管理和开发的。它主要功能是提供远程安装/更新/卸载软件(管理员push软件安装);可以提供客户可选择的软件安装(客户pull安装);支持Drag-n-Drop方式的软件安装;支持软件分类,适合网络环境不同电脑配置和需求;服务器只需要提供Web服务而不依赖于特定的系统平台,而且在服务端无需任何软件安装。Munki是使用Python写的程序,它有管理软件和客户端软件两部分,管理软件只需安装在管理电脑上。它不能实现系统级别的系统镜像和部署,远程控制/协助等操作。在操作上,它使用可嵌套的Manifest的概念来对软件进行分组,在客户端可以配置电脑的分组以匹配每个软件组,这样只有软件组里所列出的软件可以被改组的电脑所使用;在软件安装本身上使用catalogs来管理,定义软件的安装/版本/更新/卸载等等的信息。在管理端,主要使用命令行来进行管理,在客户端有图形化的可配置的安装环境,安装也是相当的容易简明。在最初,如果不能很好的理解它的理念,被它的各种目录和Manifest/Catalogs等搞晕,所以可能会不容易入手。

Google在2011年1月的时候把它的Simian的工具开源了,这个软件是Google的Mac Operations and Security团队开发的,它基于Munki核心,但依赖于Google App Engine。


Reposado:

Reposado也是Greg开发的,目前在Github上寄存的一个开源软件。它的目标是代替传统的Apple Software Update,同时提供更大的灵活性,比如可以对软件分类;自动从苹果更新服务器上下载苹果官方更新包;保留所有的软件更新包,不会删除已经被苹果(deprecated)不再支持的软件;客户端使用相同的Apple Software Update来安装更新,只不过通过变更Library/Preferences/com.apple.SoftwareUpdate CatalogURL来指向你的服务器。它主要提供两个命令行,一个是repo_sync用来下载苹果的更新服务器最新程序包,一个是repoutil用来管理分组。它主要依赖于两个部分,一个是Web服务器,一个是curl命令,所以即便是Windows也可以作为OS X的更新服务器。

基于它没有GUI界面管理的特点,第三方提供了两个GUI的管理界面,一个是NetSUS,一个是Margarita。NetSUS是JAMF公司制作的一个基于Ubuntu的免费软件设备,他的问题是只能使用它提供的包,用户无法选择其他的平台,更新也需要全部更新,不过他的管理界面比较的吸引人。Margarita基于Flask开发的Web前端,可以提供独立于平台的特性。它们应该都可以被安装在各种虚拟机上。


比较:

基于上面对两个软件的简单功能介绍,可以看出,他们都提供了基本的软件更新服务,而且都是免费开源的,都使用Python语言编写。他们的不同是,Munki提供了完全一套新的工具,完全摒弃了苹果系统自带的功能,而Reposado则是,在客户端依然使用苹果的自带功能,只不过在服务器端进行改造,提供更多的服务。同时Munki提供更强大的功能,Reposado则是在苹果功能上的扩展,功能有限。管理员需要更多的时间来管理配置测试Munki,而Reposado的管理工作要少很多。Munki社区活跃,参与人员多,更新快;Reposado则相对很冷清,更新慢。


你可能感兴趣的:(OSX:苹果软件更新综述)