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

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

2025-06-16 22:48:06作者:邵娇湘

项目简介

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

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

项目优选

收起
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
152
1.97 K
kernelkernel
deepin linux kernel
C
22
6
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
486
37
communitycommunity
本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息
315
10
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
145
191
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
991
395
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
193
276
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
937
554
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Python
75
69