面对Apple 的静默更新最近造成的 Java 混乱,我正在寻找一种解决方案来安装特定于操作系统版本的 .pkg 文件。
Apple 继续为 10.6 提供 Java 更新,但对于 10.7+,我们需要从 Oracle 获取文件。苹果终于在周五发布了 10.6 的 Java 更新,但该软件在通过操作系统的软件更新部分显示为软件更新之前就已经可用了。
对于 10.6,我们可能最终只能等待 Apple 通过他们的软件更新推送它并使用 ARD 运行这些软件更新,但是当使用 Oracle 提供的 .pkg 文件通过 ARD 推送 Java 更新时,我想以确保我们只尝试在 10.7+ 的机器上安装,而不是在低于 10.7 的机器上安装。
问题:我想知道ARD Software Distribution是否能够根据客户端操作系统版本进行安装,我不想尝试在我们的任何 10.6 客户端上安装适用于 10.7+ 机器的 Oracle Java。我似乎无法在网上找到任何文档或讨论。任何/所有帮助表示赞赏。
我制定的答案(下面的答案有很大帮助,只是想为可能仍在摸不着头脑的人提供最终结果):
#!/bin/bash
os_ver_maj=$(sw_vers -productVersion | cut -d . -f 2)
if [ $os_ver_maj -ge 7 ]; then
mkdir /Volumes/ARD && mount_afp afp://ardservername.localdomain/ARD_pkgs /Volumes/ARD && installer -pkg /Volumes/ARD/jre-7u13-macosx-x64.pkg -target /
else
mkdir /Volumes/ARD && mount_afp afp://ardservername.localdomain/ARD_pkgs /Volumes/ARD && installer -pkg /Volumes/ARD/Java6u12OSX10.6.pkg -target /
fi
umount /Volumes/ARD
解释:
- 我选择直接在 ARD 服务器上托管文件,从 Oracle 下载几乎是不可能的,我相信它会在没有警告的情况下发生变化。
- 我也选择不使用
softwareupdate
10.6,出现了太多其他问题,即使在选择特定的 PackageName 时也是如此。 - 当新的 Java 更新出现时,我们将下载并从 .dmg 中提取 .pkg,将其放在 ARD 服务器上的 ARD_pkgs 目录中,并更新脚本以反映包版本更改。
我希望这对其他人有帮助,感谢您的投入和指导。
Apple Remote Desktop 的复制项目和安装包功能没有执行此操作的特定过滤功能,但您可以使用智能列表通过两个简单的步骤完成此操作:
或者,如果您想要同时在所有机器上运行软件更新或安装 Oracle Java 程序包,您可以编写一个 shell 脚本来检查操作系统版本。这是一个例子
bash
:一旦你构建了一个正确执行你想要的操作的脚本,你就可以选择 ARD 中的所有机器,然后你可以执行管理 -> 运行 UNIX 命令...(或单击发送 UNIX 命令按钮)并粘贴到脚本。
我想你要找的是
sw_vers
. 您可以创建一个脚本来调用它并解析输出。如果匹配(或不匹配),则调用包安装程序。示例输出: