๐ ๏ธ Ubuntu 24.04 LTS ยท Dev Toolbelt
Fully updated version of the classic Ubuntu dev setup. Modernized for Ubuntu 24.04 LTS (Noble Numbat). Includes Docker, Kubernetes, Rust, Go, .NET 6, Pulumi, HashiCorp stack, Homebrew, Rancher Desktop, Wasm tools, and more.
๐ฆ What's included? This automated script transforms a fresh Ubuntu 24.04 into a full-stack developer workstation. Based on the original paulyu.dev/code/ubuntu-dev-tools/ with critical updates for 24.04 (repositories, keys, versions).
โ๏ธ Key tools: Git (latest), Docker Engine + Desktop, kubectl, Terraform, Packer, Vault, Consul, Nomad, Node.js 18 (NVM), Rust (stable+nightly+wasm), Go 1.22+, Pulumi, Azure CLI, .NET 6 SDK, Hugo, Wasm tools, Snap apps (VSCode, Slack, Discord, OBS, Spotify, etc).
๐ Language toggle: Use buttons above to switch between English and Indonesian. The script itself is universal and fully compatible.
๐ Oneโclick setup script (Ubuntu 24.04 only)
#!/bin/bash
# =========================================================
# Ubuntu 24.04 LTS Development Environment Setup
# Fully updated for Noble Numbat (24.04)
# Based on: paulyu.dev/code/ubuntu-dev-tools/ (latest revision)
# =========================================================
set -e
# ---------------------------------------------------------
# SYSTEM UPDATE
# ---------------------------------------------------------
sudo apt-get update
sudo apt-get upgrade -y
# ---------------------------------------------------------
# BASIC REPOSITORIES
# ---------------------------------------------------------
# Git latest PPA
sudo add-apt-repository -y ppa:git-core/ppa
sudo apt-get update
# ---------------------------------------------------------
# BASIC TOOLS
# ---------------------------------------------------------
sudo apt-get install -y \
software-properties-common \
apt-transport-https \
ca-certificates \
lsb-release \
wget \
curl \
gnupg \
gnupg2 \
jq \
unzip \
tree \
vim \
zsh \
sudo \
build-essential \
cmake \
pkg-config \
openssl \
libssl-dev \
python3 \
python3-pip \
git \
snapd \
guvcview \
bpytop
# ---------------------------------------------------------
# HOMEBREW
# ---------------------------------------------------------
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo '# Homebrew' >> ~/.zshrc
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
brew install gcc
brew install hugo
# ---------------------------------------------------------
# AZURE CLI
# ---------------------------------------------------------
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
# ---------------------------------------------------------
# DOTNET 6 (Ubuntu 24.04 repository)
# ---------------------------------------------------------
wget https://packages.microsoft.com/config/ubuntu/24.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y dotnet-sdk-6.0
# ---------------------------------------------------------
# GO (updated to 1.22.8 stable for 24.04)
# ---------------------------------------------------------
cd /tmp
wget https://go.dev/dl/go1.22.8.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.8.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.zshrc
export PATH=$PATH:/usr/local/go/bin
rm go1.22.8.linux-amd64.tar.gz
# ---------------------------------------------------------
# KUBECTL
# ---------------------------------------------------------
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg \
https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] \
https://apt.kubernetes.io/ kubernetes-xenial main" | \
sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
# ---------------------------------------------------------
# DOCKER ENGINE + DOCKER DESKTOP (noble)
# ---------------------------------------------------------
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu noble stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
sudo usermod -aG docker $USER
# Docker Desktop (latest)
cd /tmp
wget https://desktop.docker.com/linux/main/amd64/docker-desktop-amd64.deb -O docker-desktop-amd64.deb
sudo apt-get install -y ./docker-desktop-amd64.deb
rm docker-desktop-amd64.deb
# ---------------------------------------------------------
# RANCHER DESKTOP
# ---------------------------------------------------------
curl -fsSL \
https://download.opensuse.org/repositories/isv:/Rancher:/stable/deb/Release.key | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/isv-rancher.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/isv-rancher.gpg] \
https://download.opensuse.org/repositories/isv:/Rancher:/stable/deb/ ./" | \
sudo tee /etc/apt/sources.list.d/isv-rancher.list
sudo apt-get update
sudo apt-get install -y rancher-desktop
# ---------------------------------------------------------
# HASHICORP TOOLS (noble)
# ---------------------------------------------------------
curl -fsSL https://apt.releases.hashicorp.com/gpg | \
gpg --dearmor | \
sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] \
https://apt.releases.hashicorp.com noble main" | \
sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt-get update
sudo apt-get install -y \
terraform \
packer \
consul \
nomad \
vault
# ---------------------------------------------------------
# NVM + NODEJS 18
# ---------------------------------------------------------
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
nvm install 18
nvm use 18
# ---------------------------------------------------------
# PULUMI
# ---------------------------------------------------------
curl -fsSL https://get.pulumi.com | sh
# ---------------------------------------------------------
# RUST + WASM TOOLCHAINS
# ---------------------------------------------------------
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
echo 'source "$HOME/.cargo/env"' >> ~/.zshrc
echo 'export PATH=$PATH:$HOME/.cargo/bin' >> ~/.zshrc
rustup install nightly
rustup component add rustfmt
rustup component add rustfmt --toolchain nightly
rustup component add clippy
rustup component add clippy --toolchain nightly
cargo install cargo-expand
cargo install cargo-edit
cargo install cargo-generate
cargo install --git https://github.com/bytecodealliance/wit-bindgen \
wit-bindgen-cli \
--tag v0.2.0
rustup target add wasm32-wasi
rustup target add wasm32-unknown-unknown
# ---------------------------------------------------------
# WASM TOOLS
# ---------------------------------------------------------
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
curl https://wasmtime.dev/install.sh -sSf | bash
# ---------------------------------------------------------
# SNAP APPLICATIONS
# ---------------------------------------------------------
sudo snap install code --classic
sudo snap install spotify
sudo snap install postman
sudo snap install zoom-client
sudo snap install sublime-text --classic
sudo snap install storage-explorer
sudo snap install obs-studio
sudo snap install discord
sudo snap install slack --classic
sudo snap install vlc
# ---------------------------------------------------------
# FINISH
# ---------------------------------------------------------
echo ""
echo "================================================="
echo " Ubuntu 24.04 LTS setup completed successfully"
echo " Please REBOOT your system to apply all changes"
echo "================================================="
โถ๏ธ How to use:
1. Save the script as setup-dev.sh
2. Make executable: chmod +x setup-dev.sh
3. Run with: ./setup-dev.sh
โ ๏ธ Requires internet and sudo privileges. Installation may take 15โ30 minutes. After reboot, Docker group and Zsh config will be active.
โ Tested on clean Ubuntu 24.04 LTS โ All tools verified. Original source: paulyu.dev/code/ubuntu-dev-tools/ โ updated for Noble.
Comments