大苏尔错误阻止升级到下一个版本

2020-12-18 16:08:47

如果您以某种身份与Apple合作,您会知道他们不太可能承认错误。我不知道Apple在停机后会发布验尸报告,也没有提供有关已知问题的详细信息。因此,整个开发人员和管理员社区应该互相帮助,以了解停电和潜在原因。在本周的macOS 11.1版本中,我一直在调试Mac软件更新过程中的一个新问题,该问题将影响大多数企业用户。我决定写这篇文章,让大家知道这个问题是什么,解决方法以及如何避免它。我也一直在密切关注软件更新机制的一些最新变化,因此,我也会在下面尝试提及它们。

在本周早些时候发布macOS 11.1之后,许多用户开始报告他们看不到软件更新。其他人报告说他们看到了,但是无法下载。我个人在11.1测试版中遇到了这个问题,并向Apple提起了诉讼,但随后转到了其他问题。当最终版本于本周发布时,MacAdmins Slack上有关于它的广泛报道。通过阅读系统日志,我以及其他管理员都能找到根本原因。在某些情况下,macOS 11.0.1和macOS 11.1主机正在请求更新服务器发送11.0.1更新,而不是请求下一个可用更新。服务器拒绝此更新,因为它已安装或较旧。这以某种方式破坏了软件更新过程的状态,并且该更新作为“系统偏好设置”中的选项不再可见。

重新启动后,更新立即再次可见。但目前尚不清楚该更新是否可以始终在可见后安装,因为可以再次触发导致首次下载失败的条件。

删除MDM注册配置文件会使更新再次出现。我和其他几个人对此进行了广泛的测试,这绝对是注册资料,不是MDM管理的其他一些政策。这显然是一个糟糕的解决方法,我会犹豫向用户提及它,因为它可能导致安全代理停止工作,以及我们非常熟悉的无数批准对话框。更不用说你们中的某些人具有不可移动的MDM注册资料或不是管理员的用户,因此他们没有取消注册的权限。让他们重新加入MDM也可能是一个挑战。

苹果公司现在很清楚这是一个问题,所以我相信这个问题将在11.2中解决。不幸的是,这是一个影响11.0.1和11.1客户端的客户端问题。因此,Apple无法提供修复程序。我认为一种潜在的解决方案是让Apple检测到错误的请求,而不是拒绝下载,而是提供正确的文件存档。但这是一个复杂的系统,目前尚不清楚仅服务器端的更改是否足够。

苹果可以尝试的另一种方法是通过另一个软件更新来侧面加载补丁。有后台配置和恶意软件删除工具可能能够解决系统上的问题。但这是一个丑陋的骇客,即使可以使用,我个人也不会这么做。

我认为,最有可能的结果是该错误将在11.2中修复,但是已经升级到Big Sur(或您可能购买的任何M1 Mac)的客户将必须自行解决此问题。如果幸运的话,Apple会发表支持文章。

Big Sur完全改变了软件更新机制,尤其是在Apple Silicon macs上。很长一段时间来了,Apple在WWDC的MDM和IT会议上谈到了其中的一些内容,所以这并不奇怪。但是,还有很多话要说给我们自己去发现。

组合更新程序包不再在Apple网站上发布。这可能会让许多依赖分发它们的人感到惊讶。主要原因是更新的整体格式已更改,并且在Mac无法访问互联网的情况下也无法再安装更新。更新必须来自Apple,并且必须由系统上的软件更新和相关进程进行管理。

在Apple Silicon上,第三方进程不再能够编写softwareupdate命令的脚本。现在,以root用户进程运行software update命令会提示您输入管理员密码,该管理员密码也必须是安全的令牌用户。只有两种可能的选项可以应用OS更新;设备本身的人工用户或具有特殊权限的MDM流程。 Mac可能还可以使用自动更新机制进行自我更新,但是目前存在太多错误,无法观察其工作原理。我的个人经历是,没有,我收到密码提示以输入第二天的信息…

指定用于Softwareupdate流程以从中提取更新的自定义URL不再是可能的。苹果公司在去年全年都在宣传这种贬值的做法,因此它不会让人感到惊讶,但会带来伤害。 Reposado是使组织内具有不稳定/ beta /稳定轨道的几种出色工具之一。

—无视作为标志消失了。它在10.15.5中也曾短暂消失过,所以您可能知道这一点。这次它永远消失了,再也不会回来了。 MDM服务器最多可以将客户端的OS更新延迟最多90天,但这是以后的绝对最大值。即使对于像macOS 12这样的将来的主要版本,如果这对您来说很重要,请文件反馈给Apple,以提供第二个推迟选项,特定于主要版本号。

我每天都在使用MDM协议,并且已经测试了一段时间的软件更新。我什至对六月大苏尔州的情况感到乐观。苹果公司曾承诺,这将是一个全新的实现,与iOS上提供的功能更接近,并且一切都会比以前更好。但是我们的开端并不顺利,几年来我一直担心的一切都又回来了。 MDM中的OS更新设计很脆弱,需要多次远程过程调用才能完成以前由几行Shell脚本完成的工作。这本身是不好的,但是糟糕的设计与错误的实现结合在一起。除上述问题外,还有许多已知问题。除非情况发生急剧变化,否则我们可能会看到数月甚至数月的软件更新错误,而这完全是我们无法控制的。

苹果公司从来没有特别擅长为企业构建系统。但是直到最近,Unix组件才可供软件开发人员和系统管理员使用。最终结果是,如果您在组织内进行投资,那么macOS对于最终用户而言将是一次很棒的体验。花费了很多工作,但是一切都是可以实现的。如今,Apple在开发企业所需的系统方面并没有更好的表现。但是球完全在他们的球场上。苹果仍然为消费者提供了出色的工具,并且员工会要求为他们提供苹果设备。但是,如果Apple无法根据我们的集体反馈采取行动,那么大多数人将很快无法在工作场所使用Mac。