首页
/ Munki 7.0 Beta 5:macOS软件管理工具的重大更新

Munki 7.0 Beta 5:macOS软件管理工具的重大更新

2025-06-16 01:20:24作者:邵娇湘

项目简介

Munki是一个开源的macOS软件管理工具,主要用于企业环境中自动化部署和管理macOS设备上的软件安装、更新和移除。它通过中央仓库管理软件包,并支持灵活的部署策略,是macOS系统管理员的重要工具之一。

Munki 7.0 Beta 5核心更新

Munki 7.0 Beta 5标志着该项目的一个重要里程碑,所有命令行工具已从Python迁移到Swift语言实现,带来了显著的架构变化和性能改进。

架构转型

本次版本最显著的变化是将所有命令行工具从Python重写为Swift,并编译为原生可执行文件。这一转变带来了:

  1. 不再依赖Python运行时环境
  2. 更好的性能表现
  3. 更紧密的macOS系统集成

兼容性调整

新版本将最低支持系统版本提升至macOS 10.15(Catalina),不再支持10.13(High Sierra)和10.14(Mojave)。这一决策基于现代macOS生态系统的需求,同时简化了代码维护。

功能增强与改进

新增功能特性

  1. 版本检测脚本支持:引入了version_script键值,允许管理员通过脚本精确检测已安装软件的版本号,比传统的installcheck_script更精确和灵活。

  2. 电源管理优化:在引导过程中,根据电源状态智能控制显示器休眠,确保用户能看到引导进度:

    • Intel芯片:电池电量>50%时保持显示
    • Apple芯片:电池电量>30%时保持显示

性能优化

  1. 改进了递归文件列表算法,使makecatalogsmanifestutil等工具运行更快
  2. 文件列表顺序与Python版本保持一致,确保生成的目录完全一致
  3. 增强了对PEM文件的解析能力,包括正确处理CRLF行分隔符(常见于Windows生成的文件)

移除的过时功能

为保持代码精简和现代化,移除了多个不再适用的功能:

  1. macOS升级方式:不再支持Intel Mac上的startosinstall方式,统一使用stage_os_installer

  2. Apple软件更新:完全移除了对Apple更新的安装支持,引导用户使用系统原生工具

  3. Adobe安装器支持:移除了多种Adobe专用安装器类型,建议使用Adobe官方打包工具生成标准安装包

  4. 配置配置文件管理:不再支持profile安装器类型,推荐使用MDM解决方案管理配置

  5. 其他过时功能:包括appdmg安装器类型和suppress_bundle_relocation键值等长期弃用的功能

中间件与插件兼容性

中间件变化

  1. Python中间件不再兼容,必须使用新的Swift中间件协议
  2. 多个常用中间件已完成Swift移植:
    • Azure存储中间件
    • BunnyNet中间件
    • CloudFront中间件
    • Google云存储中间件
    • S3中间件

仓库插件

  1. Python仓库插件不再工作
  2. 提供了Swift仓库插件协议和MWA2API仓库插件示例

安装与迁移注意事项

  1. 安装包包含Python库组件(munkilib),作为过渡辅助
  2. 覆盖安装会保留Python框架,便于识别依赖关系
  3. 建议测试环境中验证所有自定义脚本和工作流
  4. 已知makecatalogs工具性能较Python版本有所下降

测试重点建议

管理员在评估此版本时应重点关注:

  1. 管理工具功能,特别是manifestutil的交互模式
  2. 在各种macOS版本上的安装和运行情况
  3. 认证重启流程
  4. 应用使用追踪功能
  5. 客户端证书认证
  6. 中间件插件功能

Munki 7.0 Beta 5代表了该项目向现代化迈出的重要一步,虽然带来了一些兼容性变化,但也为未来的功能扩展和性能优化奠定了基础。建议管理员在测试环境中充分验证后,再考虑生产环境部署。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
27
11
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
466
3.47 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
10
1
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
65
19
flutter_flutterflutter_flutter
暂无简介
Dart
715
172
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
23
0
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
203
81
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.26 K
695
rainbondrainbond
无需学习 Kubernetes 的容器平台,在 Kubernetes 上构建、部署、组装和管理应用,无需 K8s 专业知识,全流程图形化管理
Go
15
1
apintoapinto
基于golang开发的网关。具有各种插件,可以自行扩展,即插即用。此外,它可以快速帮助企业管理API服务,提高API服务的稳定性和安全性。
Go
22
1