Skip to content

Commit 30ac3e6

Browse files
authored
Changes so script runs as root in docker (#287)
1 parent 0e3440a commit 30ac3e6

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

scripts/setup_ubuntu.sh

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,17 @@ set -ux
1111

1212
# Set user account for which we're configuring the tools
1313
USER_ACCOUNT=$1
14+
USER_ACCOUNT_HOME=$(bash -c "cd ~$(printf %q "$USER_ACCOUNT") && pwd")
1415

1516
# Set package manager command for this distribution
1617
pac="apt"
1718

1819
# If we're not running as root, we want to prefix certain commands with sudo
1920
if [[ $(whoami) == 'root' ]]; then
21+
$pac update -y
22+
$pac install -y sudo
2023
sudo=''; else
24+
type -p sudo >/dev/null || (echo "Please have an administrator install sudo and add you to the sudo group before continuing." && exit 1)
2125
sudo='sudo'
2226
fi
2327

@@ -38,31 +42,31 @@ $sudo $pac install -y git
3842

3943
#### Python
4044
# Install tools needed to build python
41-
$sudo $pac install -y curl gcc bzip2 sqlite zlib1g-dev libreadline-dev libsqlite3-dev libssl-dev tk-dev libffi-dev xz-utils make build-essential libbz2-dev wget llvm libncursesw5-dev libxml2-dev libxmlsec1-dev liblzma-dev
45+
DEBIAN_FRONTEND=noninteractive $sudo $pac install -y curl gcc bzip2 sqlite zlib1g-dev libreadline-dev libsqlite3-dev libssl-dev tk-dev libffi-dev xz-utils make build-essential libbz2-dev wget llvm libncursesw5-dev libxml2-dev libxmlsec1-dev liblzma-dev
4246
# Install pyenv
43-
if [[ ! -d /home/$USER_ACCOUNT/.pyenv ]]; then
47+
if [[ ! -d $USER_ACCOUNT_HOME/.pyenv ]]; then
4448
sudo -u "$USER_ACCOUNT" -i <<'EOF'
4549
cd $HOME
4650
curl https://pyenv.run | bash
4751
EOF
4852
# Remove initialization lines from .bashrc if they are already there, so we don't duplicate them
4953
# shellcheck disable=SC2016
50-
sed -i '/export PYENV_ROOT="$HOME\/.pyenv"/d' /home/"$USER_ACCOUNT"/.bashrc
54+
sed -i '/export PYENV_ROOT="$HOME\/.pyenv"/d' "$USER_ACCOUNT_HOME"/.bashrc
5155
# shellcheck disable=SC2016
52-
sed -i '/command -v pyenv >\/dev\/null || export PATH="$PYENV_ROOT\/bin:$PATH"/d' /home/"$USER_ACCOUNT"/.bashrc
56+
sed -i '/command -v pyenv >\/dev\/null || export PATH="$PYENV_ROOT\/bin:$PATH"/d' "$USER_ACCOUNT_HOME"/.bashrc
5357
# shellcheck disable=SC2016
54-
sed -i '/eval "$(pyenv init -)"/d' /home/"$USER_ACCOUNT"/.bashrc
58+
sed -i '/eval "$(pyenv init -)"/d' "$USER_ACCOUNT_HOME"/.bashrc
5559
# shellcheck disable=SC2016
56-
sed -i '/eval "$(pyenv virtualenv-init -)"/d' /home/"$USER_ACCOUNT"/.bashrc
60+
sed -i '/eval "$(pyenv virtualenv-init -)"/d' "$USER_ACCOUNT_HOME"/.bashrc
5761
# Add initialization lines to .bashrc
5862
# shellcheck disable=SC2016
59-
sed -i '1ieval "$(pyenv virtualenv-init -)"' /home/"$USER_ACCOUNT"/.bashrc
63+
sed -i '1ieval "$(pyenv virtualenv-init -)"' "$USER_ACCOUNT_HOME"/.bashrc
6064
# shellcheck disable=SC2016
61-
sed -i '1ieval "$(pyenv init -)"' /home/"$USER_ACCOUNT"/.bashrc
65+
sed -i '1ieval "$(pyenv init -)"' "$USER_ACCOUNT_HOME"/.bashrc
6266
# shellcheck disable=SC2016
63-
sed -i '1icommand -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' /home/"$USER_ACCOUNT"/.bashrc
67+
sed -i '1icommand -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' "$USER_ACCOUNT_HOME"/.bashrc
6468
# shellcheck disable=SC2016
65-
sed -i '1iexport PYENV_ROOT="$HOME/.pyenv"' /home/"$USER_ACCOUNT"/.bashrc
69+
sed -i '1iexport PYENV_ROOT="$HOME/.pyenv"' "$USER_ACCOUNT_HOME"/.bashrc
6670
# install python
6771
sudo -u "$USER_ACCOUNT" -i <<'EOF'
6872
pyenv install 3.8.15

0 commit comments

Comments
 (0)