MacOS新电脑如何安装不支持的老驱动
我自己的主力电脑是MacOS的,系统是Tahoe 26.1,今天回家临时要接家里的古董打印机HP LaserJet Professional M1136 MFP打印东西。由于以前的电脑接过这台打印机的,熟练的下载驱动,安装,却出现了下面这个提示:
不支持最新的版本。
网上找了一堆方法,最后实验下来,可执行有两种。
1、使用Suspicious Package,把包里的内容提取出来,但是Suspicious Package要去找破解版,有点麻烦
2、直接使用原生命令
假设你已经下载下来了驱动的IMG文件,放在Downloads下面,重新命名为hpdrivers.dmg,只需要执行完下面的命令就可以安装了。
hdiutil attach ~/Downloads/hpdrivers.dmg
pkgutil --expand/Volumes/HP_PrinterSupportManual/HewlettPackardPrinterDrivers.pkg ~/Downloads/hp-expand
hdiutil eject /Volumes/HP_PrinterSupportManual
sed -i '' 's/15.0/28.0/' ~/Downloads/hp-expand/Distribution
pkgutil --flatten ~/Downloads/hp-expand ~/Downloads/HP_Drivers_27.pkg
rm -R ~/Downloads/hp-expand现在再打开HP_Drivers_27.pkg安装,一点问题都没有了,就是这么神奇
代码解释如下
hdiutil attach ~/Downloads/hpdrivers.dmg
挂载这个 dmg 磁盘镜像文件。
hdiutil:macOS 自带的磁盘镜像工具
attach:把 dmg 挂载成一个可访问的卷
结果通常会在 /Volumes/... 下出现一个新磁盘
pkgutil --expand /Volumes/HP_PrinterSupportManual/HewlettPackardPrinterDrivers.pkg ~/Downloads/hp-expand
把 pkg 安装包“解包”到一个目录里,方便手工修改。
pkgutil:macOS 安装包处理工具
--expand:展开 pkg 内容
前面那个路径是源 pkg 文件
~/Downloads/hp-expand 是展开后的输出目录
hdiutil eject /Volumes/HP_PrinterSupportManual
弹出/卸载刚才挂载的 dmg 卷。
因为 pkg 已经解出来了,后面不再需要这个挂载卷
sed -i '' 's/15.0/28.0/' ~/Downloads/hp-expand/Distribution
直接修改展开包里的 Distribution 文件,把其中第一次出现的 15.0 替换成 28.0。
这通常是在改系统版本要求。
大概率含义:
原包可能限制“仅支持到某个 macOS 版本”,你这是把限制值从 15.0 改成 28.0,让安装器在更高版本系统上也愿意继续安装。
sed:流编辑器,用来替换文本
-i '':原地修改文件(macOS 的写法)
's/15.0/28.0/':把 15.0 替换为 28.0
Distribution:pkg 的安装规则文件,常用于定义支持的 macOS 版本、校验逻辑等
pkgutil --flatten ~/Downloads/hp-expand ~/Downloads/HP_Drivers_27.pkg
把修改后的展开目录重新打包成一个新的 pkg。
--flatten:把展开结构重新压回 pkg
输出文件是 ~/Downloads/HP_Drivers_27.pkg
rm -R ~/Downloads/hp-expand
删除刚才展开出来的临时目录。
rm -R:递归删除目录及其内容、用来清理中间文件这整套命令的本质是:
1、挂载 HP 驱动的 dmg
2、把里面的 pkg 解包
3、修改安装规则文件 Distribution
4、重新打包成新的 pkg
6、删除临时目录
夜雨聆风