繁体   English   中英

用于rxtx的PackageMaker安装脚本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM