1

在我Packages.apppreinstall脚本中,我能够从 brew 的修改版本安装 brew,该版本install.sh删除了sudo检查:

#!/bin/bash
##preinstall

if brew ls --versions wget > /dev/null; then
  # The package is installed
  osascript -e 'tell app "Finder" to display dialog "The package is installed"'
else
  # The package is not installed
  osascript -e 'tell app "Finder" to display dialog "The package is not installed"'
    
  /usr/bin/su root -c ./brew-install.sh

fi

exit 0

这是我从 brew's中删除install.sh以使其正常工作的行:

if [[ "${EUID:-${UID}}" == "0" ]]; then

我不知道究竟"${EUID:-${UID}}"是什么。

这是我迄今为止尝试过的,而不是使用su root

# /bin/bash -c ./brew-install.sh

# sudo dseditgroup -o edit -a $USER -t user admin
# sudo /usr/bin/su $USER -c ./brew-install.sh

# /usr/bin/su ladmin -c ./brew-install.sh

# nohup /usr/bin/su $USER -c /bin/bash -c ./brew-install.sh &

尤其是试图从这里添加$USERadmin组:https ://apple.stackexchange.com/a/76096/261453


有什么想法/解决方案吗?

4

1 回答 1

0

您可以使用 brew 的“untar install”选项在没有 root 的情况下安装 Brew: 为什么 brew 安装需要 sudo 访问权限?

在此处查看 Brew 文档: https ://docs.brew.sh/Installation#untar-anywhere

如果 Brew由于某些root原因仍处于阻塞状态,您可以修改Library/Homebrew/bin/brew.sh以删除root检查,然后从postinstallrm现有brew.sh和替换 if 为您在Packages.appScript 的 Addition Resources 中添加的副本:

Packages.app 脚本添加资源

于 2021-03-26T16:13:20.207 回答