Skip to main content

I'm looking for advice on getting homebrew on new employee machines automatically. We have a work flow we would like to keep to as few clicks as possible.

I am trying to get the process of pulling down XCode CLI, installing homebrew, adding cask, and then installing third party apps for new employee machines.

I have the XCode CLI component down but having problems with installing homebrew and adding cask. Curious if anyone has a working script to make this happen. I am deploying this process through self service.

@sdamiano Unfortunately, with /usr falling under SIP, the script will not work. After found out it broke, we started using @emily 's method since our developers are local admins.

It lets us script out the deployment of xcode cli tools, homebrew, jetbrains apps, and docker with 1 click and 1 password.


Hi @emily .

Have you tried your code on Mojave?

Thank you in advance.


@richies113 I've tested it on a couple 10.14 machines and it's worked fine (Thanks @emily )


Ya 10.14 makes this difficult. Has anyone gotten homebrew to install automatically after enrollment?


Hi everyone, here is a script that works on Mojave - I have implemented into our workflow at work, so its production-ready.

This will pull the latest CLI and install homebrew!

All credit goes to route 1337 - link to his github

#!/bin/sh
#
# Script Name: installHomebrew.sh
# Function: Deploy Homebrew (brew.sh) to the first user added to a new Mac during the post-DEP enrollment SplashBuddy run
# Requirements: DEP, SplashBuddy
#
# Copyright 2018, Route 1337, LLC, All Rights Reserved.
#
# Maintainers:
# - Matthew Ahrenstein: matthew@route1337.com
#
# Contributors:
# - "Dakr-xv": https://github.com/Dakr-xv
#
# See LICENSE
#

# Apple approved way to get the currently logged in user (Thanks to Froger from macadmins.org and https://developer.apple.com/library/content/qa/qa1133/_index.html)
ConsoleUser="$(/usr/bin/python -c 'from SystemConfiguration import SCDynamicStoreCopyConsoleUser; import sys; username = (SCDynamicStoreCopyConsoleUser(None, None, None) or [None])[0]; username = [username,""][username in [u"loginwindow", None, u""]]; sys.stdout.write(username + "
");')"

# Check to see if we have XCode already
checkForXcode=$( pkgutil --pkgs | grep com.apple.pkg.CLTools_Executables | wc -l | awk '{ print $1 }' )

# If XCode is missing we will install the Command Line tools only as that's all Homebrew needs
if [[ "$checkForXcode" != 1 ]];
then
    osx_vers=$(sw_vers -productVersion | awk -F "." '{print $2}')
    # This temporary file prompts the 'softwareupdate' utility to list the Command Line Tools
    touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
    # Verify softwareupdate installs only the latest XCode (Original code from https://github.com/rtrouton/rtrouton_scripts)
    cmd_line_tools=$(softwareupdate -l | awk '/* Command Line Tools/ { $1=$1;print }' | grep "$osx_vers" | sed 's/^[[ 	]]*//;s/[[ 	]]*$//;s/*//' | cut -c 2-)
    if (( $(grep -c . <<<"$cmd_line_tools") > 1 )); then
       cmd_line_tools_output="$cmd_line_tools"
       cmd_line_tools=$(printf "$cmd_line_tools_output" | tail -1)
    fi
    softwareupdate -i "$cmd_line_tools"
    rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
    /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools
fi

# Test if Homebrew is installed and install it if it is not
if test ! "$(sudo -u $ConsoleUser which brew)"; then
  # Jamf will have to execute all of the directory creation functions Homebrew normally does so we can bypass the need for sudo
  /bin/chmod u+rwx /usr/local/bin
  /bin/chmod g+rwx /usr/local/bin
  /bin/mkdir -p /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew /usr/local/Frameworks
  /bin/chmod 755 /usr/local/share/zsh /usr/local/share/zsh/site-functions
  /bin/chmod g+rwx /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew /usr/local/Frameworks
  /bin/chmod 755 /usr/local/share/zsh /usr/local/share/zsh/site-functions
  /usr/sbin/chown $ConsoleUser /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew /usr/local/Frameworks
  /usr/bin/chgrp admin /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew /usr/local/Frameworks
  /bin/mkdir -p /Users/$ConsoleUser/Library/Caches/Homebrew
  /bin/chmod g+rwx /Users/$ConsoleUser/Library/Caches/Homebrew
  /usr/sbin/chown $ConsoleUser /Users/$ConsoleUser/Library/Caches/Homebrew
  /bin/mkdir -p /Library/Caches/Homebrew
  /bin/chmod g+rwx /Library/Caches/Homebrew
  /usr/sbin/chown $ConsoleUser /Library/Caches/Homebrew


  # Install Homebrew as the currently logged in user
  sudo -H -u $ConsoleUser ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"  </dev/null
# If Homebrew is already installed then just echo that it is already installed
else
  echo "Homebrew is already installed"
fi

This is ready to use with DEP and any onboarding splash screen app you use, such as Splashbuddy. Also, does work as a Self Service policy!

Enjoy!


hi,

@igreznik 's script worked well.
If your users are non-admins, you have to make them temporary admins to be able to install things or else you will get the following error:

Downloading Command Line Tools (macOS Mojave version 10.14) for Xcode Downloaded Command Line Tools (macOS Mojave version 10.14) for Xcode Installing Command Line Tools (macOS Mojave version 10.14) for Xcode Done with Command Line Tools (macOS Mojave version 10.14) for Xcode Done. This script requires the user yourusernamehere to be an Administrator. Error running script: return code was 1.

Add user to admingroup

sudo dseditgroup -o edit -a $ConsoleUser -t user admin

Remove him afterwards

sudo dseditgroup -o edit -d $ConsoleUser -t user admin

Not the beautiful way to do it, but nobody will notice... :-)


I've been running @igreznik script , with the "add/remove local user to admin group" fix and it has been working well, but recently I get the following error on execution:

Script result: ==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
==> The following existing directories will be made group writable:
/usr/local/lib/pkgconfig
==> The following existing directories will have their owner set to neilpalmer:
/usr/local/lib/pkgconfig
==> The following existing directories will have their group set to admin:
/usr/local/lib/pkgconfig
==> /usr/bin/sudo /bin/chmod u+rwx /usr/local/lib/pkgconfig

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

sudo: no tty present and no askpass program specified
Failed during: /usr/bin/sudo /bin/chmod u+rwx /usr/local/lib/pkgconfig

Is it possible that something changed in the Homebrew ruby script on github?


@michaelherrick I am running into the same thing ... anyone crack this nut?


This has been working great for me and Is updated to work the Catalina. The only drawback I have run into is because it is not using the ruby install it doesn't set path variables. But for what I use it for doesn't matter

#!/bin/sh

ConsoleUser="$(/usr/bin/python -c 'from SystemConfiguration import SCDynamicStoreCopyConsoleUser; import sys; username = (SCDynamicStoreCopyConsoleUser(None, None, None) or [None])[0]; username = [username,""][username in [u"loginwindow", None, u""]]; sys.stdout.write(username + "
");')"
tempAdminStatus=false


#Check to See if user is an admin or not. Makes the a temporary admin and set tempAdminStatus for removal later
if groups $ConsoleUser | grep -q -w admin;
then
    echo "User is an admin"
else
    echo "User is not an admin"
    echo "Setting as temp admin"
    tempAdminStatus=true
    dscl . -append /Groups/admin GroupMembership $ConsoleUser
fi


# If XCode is missing we will install the Command Line tools only as that's all Homebrew needs
# Check to see if we have XCode already
# Installing the Xcode command line tools on 10.7.x or higher (Original code from https://github.com/rtrouton/rtrouton_scripts)

checkForXcode=$( pkgutil --pkgs | grep com.apple.pkg.CLTools_Executables | wc -l | awk '{ print $1 }')

# If XCode is missing we will install the Command Line tools only as that's all Homebrew needs

if [[ "$checkForXcode" != 1 ]]; then
    echo "Command Line tools are not installed. Will attempt to install."
    macos_vers=$(sw_vers -productVersion | awk -F "." '{print $2}')
    cmd_line_tools_temp_file="/tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress"

    # Installing the latest Xcode command line tools on 10.9.x or higher

    if [[ "$macos_vers" -ge 9 ]]; then

      # Create the placeholder file which is checked by the softwareupdate tool 
      # before allowing the installation of the Xcode command line tools.

      touch "$cmd_line_tools_temp_file"

      # Identify the correct update in the Software Update feed with "Command Line Tools" in the name for the OS version in question.

      if [[ "$macos_vers" -ge 15 ]]; then
        cmd_line_tools=$(softwareupdate -l | awk '/* Label: Command Line Tools/ { $1=$1;print }' | sed 's/^[[ 	]]*//;s/[[ 	]]*$//;s/*//' | cut -c 9-)   
      elif [[ "$macos_vers" -gt 9 ]] && [[ "$macos_vers" -le 14 ]]; then
        cmd_line_tools=$(softwareupdate -l | awk '/* Command Line Tools/ { $1=$1;print }' | grep "$macos_vers" | sed 's/^[[ 	]]*//;s/[[ 	]]*$//;s/*//' | cut -c 2-)
      elif [[ "$macos_vers" -eq 9 ]]; then
        cmd_line_tools=$(softwareupdate -l | awk '/* Command Line Tools/ { $1=$1;print }' | grep "Mavericks" | sed 's/^[[ 	]]*//;s/[[ 	]]*$//;s/*//' | cut -c 2-)
      fi

      # Check to see if the softwareupdate tool has returned more than one Xcode
      # command line tool installation option. If it has, use the last one listed
      # as that should be the latest Xcode command line tool installer.

      if (( $(grep -c . <<<"$cmd_line_tools") > 1 )); then
        cmd_line_tools_output="$cmd_line_tools"
        cmd_line_tools=$(printf "$cmd_line_tools_output" | tail -1)
      fi

      #Install the command line tools

      softwareupdate -i "$cmd_line_tools" --verbose

      # Remove the temp file

      if [[ -f "$cmd_line_tools_temp_file" ]]; then
        rm "$cmd_line_tools_temp_file"
      fi
    fi
    xcode-select -s /Library/Developer/CommandLineTools   
else
  echo "Command Lines Tools are already installed"
fi


# Test if Homebrew is installed and install it if it is not
if test ! -f /usr/local/Homebrew/bin/brew ; then
  # Jamf will have to execute all of the directory creation functions Homebrew normally does so we can bypass the need for sudo
  echo "Creating folder structure for brew and setting correct permissions."
  /bin/chmod u+rwx /usr/local/bin
  /bin/chmod g+rwx /usr/local/bin
  /bin/mkdir -p /usr/local/Homebrew /usr/local/Homebrew/bin /usr/local/Homebrew/etc /usr/local/Homebrew/include /usr/local/Homebrew/lib /usr/local/Homebrew/sbin /usr/local/Homebrew/share /usr/local/Homebrew/var /usr/local/Homebrew/opt /usr/local/Homebrew/share/zsh /usr/local/Homebrew/share/zsh/site-functions /usr/local/Homebrew/var/homebrew /usr/local/Homebrew/var/homebrew/linked /usr/local/Homebrew/Cellar /usr/local/Homebrew/Caskroom /usr/local/Homebrew/Frameworks
  /bin/chmod 755 /usr/local/Homebrew/share/zsh /usr/local/Homebrew/share/zsh/site-functions
  /bin/chmod g+rwx /usr/local/Homebrew/bin /usr/local/Homebrew/etc /usr/local/Homebrew/include /usr/local/Homebrew/lib /usr/local/Homebrew/sbin /usr/local/Homebrew/share /usr/local/Homebrew/var /usr/local/Homebrew/opt /usr/local/Homebrew/share/zsh /usr/local/Homebrew/share/zsh/site-functions /usr/local/Homebrew/var/homebrew /usr/local/Homebrew/var/homebrew/linked /usr/local/Homebrew/Cellar /usr/local/Homebrew/Caskroom /usr/local/Homebrew /usr/local/Homebrew/Frameworks
  /bin/chmod 755 /usr/local/Homebrew/share/zsh /usr/local/Homebrew/share/zsh/site-functions
  /usr/sbin/chown $ConsoleUser /usr/local/Homebrew/bin /usr/local/Homebrew/etc /usr/local/Homebrew/include /usr/local/Homebrew/lib /usr/local/Homebrew/sbin /usr/local/Homebrew/share /usr/local/Homebrew/var /usr/local/Homebrew/opt /usr/local/Homebrew/share/zsh /usr/local/Homebrew/share/zsh/site-functions /usr/local/Homebrew/var/homebrew /usr/local/Homebrew/var/homebrew/linked /usr/local/Homebrew/Cellar /usr/local/Homebrew/Caskroom /usr/local/Homebrew /usr/local/Homebrew/Frameworks
  /usr/bin/chgrp admin /usr/local/Homebrew/bin /usr/local/Homebrew/etc /usr/local/Homebrew/include /usr/local/Homebrew/lib /usr/local/Homebrew/sbin /usr/local/Homebrew/share /usr/local/Homebrew/var /usr/local/Homebrew/opt /usr/local/Homebrew/share/zsh /usr/local/Homebrew/share/zsh/site-functions /usr/local/Homebrew/var/homebrew /usr/local/Homebrew/var/homebrew/linked /usr/local/Homebrew/Cellar /usr/local/Homebrew/Caskroom /usr/local/Homebrew /usr/local/Homebrew/Frameworks
  /bin/mkdir -p /Users/$ConsoleUser/Library/Caches/Homebrew
  /bin/chmod g+rwx /Users/$ConsoleUser/Library/Caches/Homebrew
  /usr/sbin/chown $ConsoleUser /Users/$ConsoleUser/Library/Caches/Homebrew
  /bin/mkdir -p /Library/Caches/Homebrew
  /bin/chmod g+rwx /Library/Caches/Homebrew
  /usr/sbin/chown $ConsoleUser /Library/Caches/Homebrew

  # Install Homebrew as the currently logged in user
  echo "Starting Homebrew install"
  su $ConsoleUser -c "curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C /usr/local/Homebrew"
# If Homebrew is already installed then just echo that it is already installed
else
  echo "Homebrew is already installed"
fi


# Checks tempAdminStatus and removes admin rights if needed. 
if [ "$tempAdminStatus" = true ] ; then
  dscl . -delete /Groups/admin GroupMembership $ConsoleUser
  echo "Admin rights removed"
fi

is this via self service?

how you do you guys code in the license acceptance?

IIRC xcodebuild -license accept needs to be added to allow the installation of the build.

also, via the script for the ruby caller, it requires user interaction in terminal before continuing.

#!/bin/sh

osascript <<'EOF'
tell application "Terminal"
    activate
    do script ("yes '' | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"") in window 1
end tell
EOF


sudo xcodebuild -license accept

if sudo xcodebuild -license accept; then
    printf 'sudo xcodebuild -license accept succeeded
'
else
    printf 'sudo xcodebuild -license accept failed
'
fi


exit 0

this is what i use, but i am an admin on my machine and i run the script via sh in terminal, not in self service.

i had a user test for me that isnt an admin and gets this error

Script result: osascript 45:180: execution error: Terminal got an error: Can’t get window 1. (-1728) sudo xcodebuild -license accept xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance sudo xcodebuild -license accept xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance printf 'sudo xcodebuild -license accept failed ' sudo xcodebuild -license accept failed + exit 0

any help would be appreciated.


Blessed Saviors
Thank you


@emily Have you found a way to get around this message? I'm not sure what PPPC Configuration Profile I need to deploy to suppress it.


@rocket-beeswax It tells you, you need to grant the jamf app (/usr/local/jamf/bin/jamf) access to terminal.app via PPPC profile


I've been using the first script posted by @dmarcnw to install during enrollment on Catalina, but I noticed the error below every time I try to use brew.

Error: /usr/local is not writable. You should change the
ownership and permissions of /usr/local back to your
user account:
  sudo chown -R $(whoami) /usr/local

Anybody got any idea how to correct this?


@rmgmedia, I added the below and didn't get the error

Change ownership to user

/usr/sbin/chown -R $ConsoleUser /usr/local/*


@mattsvensson Can you post the entire script here?


@rmgmedia I've updated the script for Catalina and done some tidying up. It's now posted on Github at https://github.com/Honestpuck/homebrew.sh .


@honestpuck thank you!


@honestpuck Thank you so much.


Thanks @honestpuck


I've tested the script by @honestpuck, I'm getting some errors and it takes about 30 minutes to complete.

Has anyone else experienced this?

Script result: Fri Apr 3 00:27:57 PDT 2020 - Homebrew Installation
Fri Apr 3 00:27:57 PDT 2020 - Checking for Xcode Command Line Tools installation
Fri Apr 3 00:27:57 PDT 2020 - Installing Xcode Command Tools
Software Update Tool

Downloading Command Line Tools for Xcode
Error downloading Command Line Tools for Xcode: The operation couldn’t be completed. (PKDownloadError error 8.)
Done.

Error downloading updates.
xcode-select: error: invalid developer directory '/Library/Developer/CommandLineTools'
Fri Apr 3 00:28:27 PDT 2020 - Installing Homebrew % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 128 100 128 0 0 418 0 --:--:-- --:--:-- --:--:-- 416

0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
100 1153k 0 1153k 0 0 509k 0 --:--:-- 0:00:02 --:--:-- 1152k
100 1745k 0 1745k 0 0 727k 0 --:--:-- 0:00:02 --:--:-- 1532k
Initialized empty Git repository in /usr/local/Homebrew/.git/
Updating Homebrew...
From https://github.com/Homebrew/brew [new branch] dependabot/bundler/Library/Homebrew/tzinfo-1.2.7 -> origin/dependabot/bundler/Library/Homebrew/tzinfo-1.2.7 [new branch] dependabot/bundler/docs/tzinfo-1.2.7 -> origin/dependabot/bundler/docs/tzinfo-1.2.7 [new branch] master -> origin/master [new tag] 0.1 -> 0.1 [new tag] 0.2 -> 0.2 [new tag] 0.3 -> 0.3 [new tag] 0.4 -> 0.4 [new tag] 0.5 -> 0.5 [new tag] 0.6 -> 0.6 [new tag] 0.7 -> 0.7 [new tag] 0.7.1 -> 0.7.1 [new tag] 0.8 -> 0.8 [new tag] 0.8.1 -> 0.8.1 [new tag] 0.9 -> 0.9 [new tag] 0.9.1 -> 0.9.1 [new tag] 0.9.2 -> 0.9.2 [new tag] 0.9.3 -> 0.9.3 [new tag] 0.9.4 -> 0.9.4 [new tag] 0.9.5 -> 0.9.5 [new tag] 0.9.8 -> 0.9.8 [new tag] 0.9.9 -> 0.9.9 [new tag] 1.0.0 -> 1.0.0 [new tag] 1.0.1 -> 1.0.1 [new tag] 1.0.2 -> 1.0.2 [new tag] 1.0.3 -> 1.0.3 [new tag] 1.0.4 -> 1.0.4 [new tag] 1.0.5 -> 1.0.5 [new tag] 1.0.6 -> 1.0.6 [new tag] 1.0.7 -> 1.0.7 [new tag] 1.0.8 -> 1.0.8 [new tag] 1.0.9 -> 1.0.9 [new tag] 1.1.0 -> 1.1.0 [new tag] 1.1.1 -> 1.1.1 [new tag] 1.1.10 -> 1.1.10 [new tag] 1.1.11 -> 1.1.11 [new tag] 1.1.12 -> 1.1.12 [new tag] 1.1.13 -> 1.1.13 [new tag] 1.1.2 -> 1.1.2 [new tag] 1.1.3 -> 1.1.3 [new tag] 1.1.4 -> 1.1.4 [new tag] 1.1.5 -> 1.1.5 [new tag] 1.1.6 -> 1.1.6 [new tag] 1.1.7 -> 1.1.7 [new tag] 1.1.8 -> 1.1.8 [new tag] 1.1.9 -> 1.1.9 [new tag] 1.2.0 -> 1.2.0 [new tag] 1.2.1 -> 1.2.1 [new tag] 1.2.2 -> 1.2.2 [new tag] 1.2.3 -> 1.2.3 [new tag] 1.2.4 -> 1.2.4 [new tag] 1.2.5 -> 1.2.5 [new tag] 1.2.6 -> 1.2.6 [new tag] 1.3.0 -> 1.3.0 [new tag] 1.3.1 -> 1.3.1 [new tag] 1.3.2 -> 1.3.2 [new tag] 1.3.3 -> 1.3.3 [new tag] 1.3.4 -> 1.3.4 [new tag] 1.3.5 -> 1.3.5 [new tag] 1.3.6 -> 1.3.6 [new tag] 1.3.7 -> 1.3.7 [new tag] 1.3.8 -> 1.3.8 [new tag] 1.3.9 -> 1.3.9 [new tag] 1.4.0 -> 1.4.0 [new tag] 1.4.1 -> 1.4.1 [new tag] 1.4.2 -> 1.4.2 [new tag] 1.4.3 -> 1.4.3 [new tag] 1.5.0 -> 1.5.0 [new tag] 1.5.1 -> 1.5.1 [new tag] 1.5.10 -> 1.5.10 [new tag] 1.5.11 -> 1.5.11 [new tag] 1.5.12 -> 1.5.12 [new tag] 1.5.13 -> 1.5.13 [new tag] 1.5.14 -> 1.5.14 [new tag] 1.5.2 -> 1.5.2 [new tag] 1.5.3 -> 1.5.3 [new tag] 1.5.4 -> 1.5.4 [new tag] 1.5.5 -> 1.5.5 [new tag] 1.5.6 -> 1.5.6 [new tag] 1.5.7 -> 1.5.7 [new tag] 1.5.8 -> 1.5.8 [new tag] 1.5.9 -> 1.5.9 [new tag] 1.6.0 -> 1.6.0 [new tag] 1.6.1 -> 1.6.1 [new tag] 1.6.10 -> 1.6.10 [new tag] 1.6.11 -> 1.6.11 [new tag] 1.6.12 -> 1.6.12 [new tag] 1.6.13 -> 1.6.13 [new tag] 1.6.14 -> 1.6.14 [new tag] 1.6.15 -> 1.6.15 [new tag] 1.6.16 -> 1.6.16 [new tag] 1.6.17 -> 1.6.17 [new tag] 1.6.2 -> 1.6.2 [new tag] 1.6.3 -> 1.6.3 [new tag] 1.6.4 -> 1.6.4 [new tag] 1.6.5 -> 1.6.5 [new tag] 1.6.6 -> 1.6.6 [new tag] 1.6.7 -> 1.6.7 [new tag] 1.6.8 -> 1.6.8 [new tag] 1.6.9 -> 1.6.9 [new tag] 1.7.0 -> 1.7.0 [new tag] 1.7.1 -> 1.7.1 [new tag] 1.7.2 -> 1.7.2 [new tag] 1.7.3 -> 1.7.3 [new tag] 1.7.4 -> 1.7.4 [new tag] 1.7.5 -> 1.7.5 [new tag] 1.7.6 -> 1.7.6 [new tag] 1.7.7 -> 1.7.7 [new tag] 1.8.0 -> 1.8.0 [new tag] 1.8.1 -> 1.8.1 [new tag] 1.8.2 -> 1.8.2 [new tag] 1.8.3 -> 1.8.3 [new tag] 1.8.4 -> 1.8.4 [new tag] 1.8.5 -> 1.8.5 [new tag] 1.8.6 -> 1.8.6 [new tag] 1.9.0 -> 1.9.0 [new tag] 1.9.1 -> 1.9.1 [new tag] 1.9.2 -> 1.9.2 [new tag] 1.9.3 -> 1.9.3 [new tag] 2.0.0 -> 2.0.0 [new tag] 2.0.1 -> 2.0.1 [new tag] 2.0.2 -> 2.0.2 [new tag] 2.0.3 -> 2.0.3 [new tag] 2.0.4 -> 2.0.4 [new tag] 2.0.5 -> 2.0.5 [new tag] 2.0.6 -> 2.0.6 [new tag] 2.1.0 -> 2.1.0 [new tag] 2.1.1 -> 2.1.1 [new tag] 2.1.10 -> 2.1.10 [new tag] 2.1.11 -> 2.1.11 [new tag] 2.1.12 -> 2.1.12 [new tag] 2.1.13 -> 2.1.13 [new tag] 2.1.14 -> 2.1.14 [new tag] 2.1.15 -> 2.1.15 [new tag] 2.1.16 -> 2.1.16 [new tag] 2.1.2 -> 2.1.2 [new tag] 2.1.3 -> 2.1.3 [new tag] 2.1.4 -> 2.1.4 [new tag] 2.1.5 -> 2.1.5 [new tag] 2.1.6 -> 2.1.6 [new tag] 2.1.7 -> 2.1.7 [new tag] 2.1.8 -> 2.1.8 [new tag] 2.1.9 -> 2.1.9 [new tag] 2.2.0 -> 2.2.0 [new tag] 2.2.1 -> 2.2.1 [new tag] 2.2.10 -> 2.2.10 [new tag] 2.2.11 -> 2.2.11 [new tag] 2.2.2 -> 2.2.2 [new tag] 2.2.3 -> 2.2.3 [new tag] 2.2.4 -> 2.2.4 [new tag] 2.2.5 -> 2.2.5 [new tag] 2.2.6 -> 2.2.6 [new tag] 2.2.7 -> 2.2.7 [new tag] 2.2.8 -> 2.2.8 [new tag] 2.2.9 -> 2.2.9
HEAD is now at d1f183311 Merge pull request #7256 from MikeMcQuaid/binary-urls-audit
==> Tapping homebrew/core
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core'...
fatal: unable to access 'https://github.com/Homebrew/homebrew-core/': LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
Error: Failure while executing; git clone https://github.com/Homebrew/homebrew-core /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core exited with 128.
Error: Failure while executing; /usr/local/bin/brew tap homebrew/core exited with 1.
export PATH="/usr/local/opt/openssl/bin:$PATH"
Fri Apr 3 01:00:04 PDT 2020 - Updating Homebrew
Already up-to-date.
Fri Apr 3 01:00:10 PDT 2020 - Installation complete

OK


It looks like an error accessing Github, nothing wrong with the script. Are you under a proxy? Any other networking issues that might cause you to not be able to access it?

SSL_ERROR_SYSCALL

Some I/O error occurred. The OpenSSL error queue may contain more information on the error. If the error queue is empty (i.e. ERR_get_error() returns 0), ret can be used to find out more about the error: If ret == 0, an EOF was observed that violates the protocol. If ret == -1, the underlying BIO reported an I/O error (for socket I/O on Unix systems, consult errno for details).


We use Zscaler for proxy at my work so I have this at the beginning of the install script. It checks for the bash/zsh profiles and then creates them in the users home directory. This lets all the traffic through Terminal pass through the Zscaler app so if your company uses something different for proxy then you would just replace the 'localhost:9000' on my example with your proxy. Good luck!! :)

#!/bin/bash

#Create .bash_profile and .zshrc in users profile directory
log "Creating .bash_profile and .zshrc in users profile directory"

if [[ -f ~/.zshrc ]] ; then
    log ".zshrc already exists"
    echo "" >> ~/.zshrc
else
    log "Creating .zshrc"
    touch ~/.zshrc
fi

if [[ -f ~/.bash_profile ]] ; then
    log ".bash_profile already exists"
    echo "" >> ~/.bash_profile
else
    log "Creating .bash_profile"
    touch ~/.bash_profile
fi

#Adding proxy settings to files
log "Adding proxy settings for terminal profiles"

echo "#Proxy settings" >> ~/.zshrc
echo export http_proxy=http://localhost:9000 >> ~/.zshrc
echo export https_proxy=http://localhost:9000 >> ~/.zshrc
echo export no_proxy=localhost,127.0.0.1 >> ~/.zshrc

echo "#Proxy settings" >> ~/.bash_profile
echo export http_proxy=http://localhost:9000 >> ~/.bash_profile
echo export https_proxy=http://localhost:9000 >> ~/.bash_profile
echo export no_proxy=localhost,127.0.0.1 >> ~/.bash_profile

We are not using a proxy of any kind of my work machines.


Shameless plug for AutoBrew ;)

https://github.com/kennyb-222/AutoBrew