【问题标题】:Conditional Postinstall Script有条件的安装后脚本
【发布时间】:2014-01-19 04:44:37
【问题描述】:

我正在为 OS X 10.6 - OS X 10.9 创建一个 mpkg。我想创建一个安装后脚本来检查操作系统版本并根据结果运行命令

我的伪代码是:

if the OS version is equal to or less than 10.6.8 then
--command A--
else
--command B--
fi
exit 0

如果您能提供任何帮助,我将不胜感激。

【问题讨论】:

标签: macos installation packagemaker


【解决方案1】:

您可以使用sw_vers -productVersion 获取操作系统版本——这将打印类似“10.8.5”的内容。但是,这可能并不容易进行比较。当 Apple 发布 Mavericks 的继任者时,它的编号可能是 10.10,而“10.10”在文本上小于“10.6.8”(因为“1”this previous question),但这相当混乱。

使用uname -r 检查达尔文版本可能更容易——它会打印类似“12.5.0”的内容,它实际上与操作系统版本相对应,但在nontrivial way 中:

  • Darwin 10.x = OS X 10.6.x(和 iOS 4)
  • Darwin 11.x = OS X 10.7.approxamatelyx(和 iOS 5)
  • 达尔文 12.x = OS X 10.8.approxamatelyx
  • Darwin 13.x = OS X 10.9.x(和 iOS 6)
  • 达尔文 14.x = iOS 7

...但这实际上更容易用于主要版本比较,因为您只需查看第一个数字即可获得主要版本:

darwin_version=$(uname -r)
if (( ${darwin_version%%.*} < 11 )); then  # %%.* removes the first period and everything following that
    # do OS X 10.6 stuff
else
    # do OS X 10.7-10.9 stuff
fi

【讨论】:

  • 感谢您的帮助。我只需要主要版本,比如 10.6,我不需要次要部分。我会看看这对我有什么影响。
猜你喜欢
  • 2014-08-07
  • 2016-06-04
  • 2019-09-04
  • 2020-01-24
  • 2015-02-11
  • 1970-01-01
  • 2017-08-02
  • 2016-12-29
  • 1970-01-01
相关资源
最近更新 更多