Appleのサイレントアップデートによって課せられた 最近のJava kerfuffle に直面しました。OSバージョンに固有の.pkgファイルをインストールするための解決策を探しています。
Appleは引き続き10.6のJavaアップデートを提供していますが、10.7以降ではOracleからファイルを取得する必要があります。 Appleはついに金曜日に10.6のJavaアップデートをリリースしましたが、ソフトウェアはOSのソフトウェアアップデートセクションからソフトウェアアップデートとして表示される前に利用可能でした。
10.6の場合、Appleがソフトウェアアップデートをプッシュし、ARDを使用してそれらのソフトウェアアップデートを実行するのを待つことになりますが、JavaアップデートをARDを介して.pkgファイルを使用してプッシュする場合オラクルが提供する、10.7以降のマシンにのみインストールを試みており、それ以下のものにはインストールしないようにしたいと思います。
質問:ARDソフトウェア配布 にクライアントOSのバージョンに基づいてインストールする機能があるかどうか疑問に思っていましたが、Oracleをインストールしようとはしません。 Javaは、10.6クライアントのいずれかの10.7以降のマシンを対象としています。オンラインでドキュメントやディスカッションが見つからないようです。任意/すべての助けをいただければ幸いです。
私が作成した回答(以下の回答からの大きな助け、まだ頭を悩ませているかもしれない人々に最終結果を提供したかっただけです):
#!/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
説明:
softwareupdate
を使用しないことを選択しました。特定のパッケージ名を選択した場合でも、他にも多くの問題が発生しました。入力とガイダンスに感謝し、これが他の人に役立つことを願っています。
Apple Remote Desktopのアイテムのコピーとパッケージのインストール機能には、それを行うための特定のフィルタリング機能はありませんが、スマートリストを使用して2つの簡単なステップで行うことができます。
または、ソフトウェアアップデートを実行するか、Oracle Javaパッケージをすべてのマシンに一度にインストールする場合は、シェルスクリプトを記述してOSバージョンを確認できます。bash
:
os_ver_maj=$(sw_vers -productVersion | cut -d . -f 2) # get the major OS version
if [ $os_ver_maj -ge 7 ]; then
# download & install the Oracle Java package
else
# run software update
fi
必要なことを正しく実行するスクリプトを作成したら、ARD内のすべてのマシンを選択し、[管理]-> [UNIXコマンドの実行...]を実行して(または[UNIXコマンドの送信]ボタンをクリックして)、脚本。
あなたが探しているのはsw_vers
。それを呼び出して出力を解析するスクリプトを作成できます。一致する(または一致しない)場合は、パッケージインストーラーを呼び出します。
サンプル出力:
Marks-MacBook-Pro:~ mark$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.8.2
BuildVersion: 12C60