Last active
January 3, 2026 09:16
-
-
Save ackkerman/90d3d7acf82b18354ea688b7b1dae67f to your computer and use it in GitHub Desktop.
python, nodejs, go
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env bash | |
| set -euo pipefail | |
| echo "π Start Ubuntu dev environment setup (pyenv + nvm)" | |
| ####################################### | |
| # dev essentials | |
| ####################################### | |
| sudo apt update | |
| sudo apt upgrade -y | |
| sudo apt install -y \ | |
| build-essential \ | |
| curl \ | |
| git \ | |
| wget \ | |
| unzip \ | |
| ca-certificates \ | |
| gnupg \ | |
| lsb-release \ | |
| make \ | |
| llvm \ | |
| xz-utils \ | |
| tk-dev \ | |
| libssl-dev \ | |
| zlib1g-dev \ | |
| libbz2-dev \ | |
| libreadline-dev \ | |
| libsqlite3-dev \ | |
| libncursesw5-dev \ | |
| libffi-dev \ | |
| liblzma-dev | |
| ####################################### | |
| # pyenv | |
| ####################################### | |
| echo "π Installing pyenv" | |
| if [ ! -d "$HOME/.pyenv" ]; then | |
| curl https://pyenv.run | bash | |
| fi | |
| # shell setup | |
| if ! grep -q 'pyenv init' ~/.bashrc; then | |
| cat << 'EOF' >> ~/.bashrc | |
| # pyenv | |
| export PYENV_ROOT="$HOME/.pyenv" | |
| export PATH="$PYENV_ROOT/bin:$PATH" | |
| eval "$(pyenv init --path)" | |
| eval "$(pyenv init -)" | |
| EOF | |
| fi | |
| export PYENV_ROOT="$HOME/.pyenv" | |
| export PATH="$PYENV_ROOT/bin:$PATH" | |
| eval "$(pyenv init --path)" | |
| eval "$(pyenv init -)" | |
| ####################################### | |
| # python install | |
| ####################################### | |
| PYTHON_VERSION="3.12.2" | |
| if ! pyenv versions | grep -q "$PYTHON_VERSION"; then | |
| pyenv install "$PYTHON_VERSION" | |
| fi | |
| pyenv global "$PYTHON_VERSION" | |
| python -m pip install --upgrade pip setuptools wheel | |
| ####################################### | |
| # playwright (python) | |
| ####################################### | |
| echo "π Installing Playwright (Python)" | |
| pip install playwright | |
| python -m playwright install --with-deps | |
| ####################################### | |
| # nvm | |
| ####################################### | |
| echo "π’ Installing nvm" | |
| if [ ! -d "$HOME/.nvm" ]; then | |
| curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash | |
| fi | |
| # shell setup | |
| export NVM_DIR="$HOME/.nvm" | |
| # shellcheck disable=SC1090 | |
| [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" | |
| ####################################### | |
| # node install | |
| ####################################### | |
| NODE_VERSION="20" | |
| nvm install "$NODE_VERSION" | |
| nvm use "$NODE_VERSION" | |
| nvm alias default "$NODE_VERSION" | |
| ####################################### | |
| # pnpm | |
| ####################################### | |
| echo "π¦ Installing pnpm" | |
| corepack enable | |
| corepack prepare pnpm@latest --activate | |
| ####################################### | |
| # verification | |
| ####################################### | |
| echo "" | |
| echo "β Installation finished" | |
| echo "Versions:" | |
| python --version | |
| pip --version | |
| node --version | |
| npm --version | |
| pnpm --version |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment