Shell文件可以运行并且可以运行,但程序包不能运行

时间:2018-08-13 16:04:46

标签: shell package pkgbuild

我正在更新安装程序,以便它可以安装打印机队列,而无需用户先下载这些打印机的驱动程序。此安装程序是专门为Mac设计的。完整的安装程序利用软件包进行最终分发,但是我将一个软件包导入该程序时遇到了问题-该软件包旨在将打印机驱动程序安装到用户系统中(如果不存在的话)。

要创建此程序包,我首先使用以下sh脚本:

# configure Xerox
if ! [ -f "/Library/Printers/PPDs/Contents/Resources/Xerox AltaLink C8045.gz" ] && ! [ -f "/Library/Printers/PPDs/Contents/Resources/Xerox AltaLink C8045" ]; then
    # Download printer driver from Apple
    curl -O -L http://support.apple.com/downloads/DL1861/en_US/xeroxprinterdrivers4.1.dmg
    sudo hdiutil attach xeroxprinterdrivers4.1.dmg
    sudo installer -package /Volumes/Xerox\ Printer\ Drivers/XeroxPrinterDrivers.pkg -target /
    sudo hdiutil detach /Volumes/Xerox\ Printer\ Drivers/

fi

# configure HP
if ! [ -f "/Library/Printers/PPDs/Contents/Resources/HP LaserJet 4050 Series.gz" ] && ! [ -f "/Library/Printers/PPDs/Contents/Resources/HP LaserJet 4050 Series" ]; then
    # Download printer driver from Apple
    curl -O -L http://support.apple.com/downloads/DL1888/en_US/HewlettPackardPrinterDrivers5.1.dmg
    sudo hdiutil attach HewlettPackardPrinterDrivers5.1.dmg
    sudo installer -package /Volumes/HewlettPackard\ Printer\ Drivers/HewlettPackardPrinterDrivers.pkg -target /
    sudo hdiutil detach /Volumes/HewlettPackard\ Printer\ Drivers/
fi

从外壳程序运行时,此脚本可以完美运行。当缺少驱动程序时,我需要填充驱动程序;已经运行安装程序时,则不需要填充驱动程序。不幸的是,当我尝试将此脚本转换为程序包时,过程中的某些步骤中断了。在终端中,我一直在运行以下命令以将我的Shell脚本转换为包:

pkgbuild --nopayload --scripts /Users/me/Desktop/Drivers/Drivers --identifier a.specific.identifier.Drivers --version 1.0 Drivers.pkg

此命令可以正常运行并创建一个程序包。而且,当我在没有正确的PPD文件的情况下(在if语句检查条件下)在计算机上运行软件包时,它表示安装成功。但是,当我检查文件的位置(/ Library / Printers / PPDs / Contents / Resources)时,似乎没有安装任何驱动程序。

在这一点上,我对于可能导致此问题的原因非常困惑。我知道包装命令已与编写的所有其他脚本一起使用,但是-shell脚本本身可以工作-错误必须在包装中。我尝试过的一些事情:

  • 检查脚本是否有任何错误(它没有显示任何错误,并且似乎可以正常工作)。
  • 检查包装命令中是否有任何错误(我最初是调用脚本的直接路径。为了适应格式,我将其切换到包含脚本的文件夹(仅该脚本)的路径我的其他命令)。
  • 正在检查有趣的角色。在其他一些脚本中,我遇到了一个错误,即在从编辑器键入内容时,我得到的是弯引号而不是直引号,这显然弄乱了我的一些代码。我不确定为什么会发生这种情况,但似乎脚本中的所有引号都匹配。

我现在要检查什么有些茫然。我尝试使用pkgbuild或sh脚本->程序包转换来查找对类似问题的查询,但是我什么也找不到。我真的很感激任何人都可以提供的帮助或见解,因为我什至不知道从哪里寻找错误的根源。

0 个答案:

没有答案