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
Was this helpful?