make脚本

将下面的make.sh脚本保存到dockutil目录中:

#!/bin/bash

pkgName="installDockutil"
pkgVersion="1.0"
projectHome="$(dirname $0)"

if [ "$EUID" -ne 0 ];then echo "Please run as root"; exit; fi

if [ -d "$projectHome" ]; then
	cd "$projectHome"
	/bin/chmod -R a+x "$projectHome/root/bin/dockutil"
	/usr/sbin/chown root:admin "$projectHome/root/bin/dockutil"
	/bin/chmod -R a+x "$projectHome/scripts"
	/usr/bin/pkgbuild --root root --scripts scripts \
		--install-location "/usr/local" \
		--identifier "lts.ApplePai.$pkgName" \
		--version $pkgVersion  --ownership recommended \
		--quiet "$pkgName-$pkgVersion.pkg"
	exit 0
else
	echo "Error: Cannot find project folder ($projectHome)."
	exit -1
fi

这个改进版本与之前比较又有了一些变化,添加了一些新元素:

  • 4行:添加了安装包版本参数pkgVersion

  • 11-13行:添加了改变程序所有者和添加可执行文件权限的命令,这样可以避免因人为失误造成错误的可能,使得程序自动处理更多可能的状况而更加强壮

  • 15行:增加了--install-location 选项用于指定安装的目录路径的根目录,也就是说在 --root 中所定义的负载目录中内容是相对与 --install-location 的目录。根据前面—root的定义,我们可以得到dockutil会被安装到/usr/local/bin目录中。这就回答了前面提出的疑问

  • 17行:增加了-version参数,有利于版本控制

  • 18行:生成的pkg文件的文件名也包含了版本信息

运行make.sh后,dockutil下的目录和文件列表如下:

Last updated