[英]PackageMaker install script for rxtx
我正在使用PackageMaker为我的应用程序创建安装程序。 在安装过程中,我需要运行bash脚本来正确安装rxtx,rxtx是用于串行端口通信的JNI库。 该库需要在目录“ / var / lock”中放置用户“ root”和组“ uucp”。 安装脚本还需要将当前用户添加到“ uucp”组中,以便lib能够写入/ var / lock。
现在,当我运行应用程序安装程序时,预安装脚本将以root身份运行。 因此,“ whoami”返回root,而不是实际运行安装程序的用户。 结果是rxtx无法在/ var / lock中创建锁定文件,因为没有将实际用户添加为“ uucp”的成员。
我的脚本由安装程序运行时,如何获得用户。 还是最好将/ var / lock的权限设置为其他组? 欢迎任何建议!
#!/bin/sh curruser=`whoami` logger "Setting permissions for /var/lock for user $curruser!" if [ ! -d /var/lock ] then logger "Creating /var/lock!" sudo mkdir /var/lock fi sudo chgrp uucp /var/lock sudo chmod 775 /var/lock # MacOSX 10.5 and later use dscl if [ `sudo dscl . -read /Groups/uucp GroupMembership | grep $curruser | wc -l` = "0" ] then logger "Add user $curruser to /Groups/uucp!" sudo dscl . -append /Groups/uucp GroupMembership $curruser # to revert use: # sudo dscl . -delete /Groups/uucp GroupMembership $curruser else logger "User already member of group uucp!" fi
代替
curruser=`whoami`
我现在正在使用
curruser=`users`
这使我获得了当前已登录用户的列表,从而部分解决了该问题。 剩下的问题是:
如果在安装时确实有两个或多个用户登录到Mac,我的脚本将无法将用户添加到uucp组。
如果Mac上的另一个用户想要运行我的应用程序,它将再次失败,因为该用户未添加到uucp组中。
也许有人对这些问题有暗示?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.