dev-setup icon indicating copy to clipboard operation
dev-setup copied to clipboard

sudo timeouts during installs

Open seanknox opened this issue 9 years ago • 4 comments

Hi there,

Having run dev-setup on a few machines now (thanks! loving it so far) I've noticed that installs require typing the sudo password at various points, making unattended installs impossible.

A solution we used in Boxen for this problem was to ask for the user's sudo password at the beginning (using sudo -p) and periodically call sudo -p to prevent timeout or prompt the user again. Happy to put up a PR if you're interested.

seanknox avatar Feb 04 '16 00:02 seanknox

Hi Sean,

Great to hear from you again! Appreciate your continued help with keeping dev-setup updated.

It's been awhile since I've done a clean install, although I think I recall on my runs the following was sufficient for an unattended install:

# Ask for the administrator password upfront.
sudo -v

# Keep-alive: update existing `sudo` time stamp until the script has finished.
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &

It seems this isn't working for all cases and we need additional keep alives?


On a perhaps related note, there are a couple scripts aws.sh and pydata.sh that specifically do not pip install with sudo which might be causing this issue:

# Removed user's cached credentials
# This script might be run with .dots, which uses elevated privileges
sudo -K

If this is the culprit, maybe these two scripts should be run at the end of .dots.

-Donne

donnemartin avatar Feb 04 '16 09:02 donnemartin

Hey Donne,

I encountered password prompts in at least three places running ./dots all:

  • During installation of bash_completion:
==> ./configure --prefix=/usr/local/Cellar/bash-completion2/2.1_2 --sysconfdir=/usr/local/etc
==> make install
==> Caveats
Add the following to your ~/.bash_profile:
  if [ -f $(brew --prefix)/share/bash-completion/bash_completion ]; then
    . $(brew --prefix)/share/bash-completion/bash_completion
  fi

  Homebrew's own bash completion script has been linked into
    /usr/local/share/bash-completion/completions
  bash-completion will automatically source it when you invoke `brew`.

  Any completion scripts in /usr/local/etc/bash_completion.d
  will continue to be sourced as well.
==> Summary
🍺  /usr/local/Cellar/bash-completion2/2.1_2: 387 files, 764.6K, built in 54 seconds
Adding the newly installed shell to the list of allowed shells
Password:
  • Installation of Alfred via brew cask
  • Data store setup

seanknox avatar Feb 04 '16 19:02 seanknox

Ok, thanks for the additional info.

Happy to put up a PR if you're interested.

Sure, that would be great!

donnemartin avatar Feb 05 '16 12:02 donnemartin

Update on this?

josephmilla avatar Apr 03 '17 00:04 josephmilla