This document guides new developers through installing essential tools for Java development, DevOps tasks, and everyday productivity.
sudo apt update && sudo apt upgrade -ysudo apt install -y curl wget git unzip zip htop tree tmux jqsudo apt install -y git
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli.gpg] \
https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list
sudo apt update && sudo apt install -y ghcurl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java 21.0.3-tem
sdk install maven
sdk install gradlesudo apt install -y docker.io docker-compose
sudo systemctl enable --now docker
sudo usermod -aG docker $USERLogout and login again to use Docker without
sudo.
docker run hello-worldBy default, Docker uses the
172.17.0.0/16subnet for its bridge network. If your company VPN or internal network also uses this range, you may lose access to internal services or experience routing issues.β Solution: Change Dockerβs default subnet by creating/editing
/etc/docker/daemon.json:{ "bip": "172.50.0.1/16" }Then restart Docker:
sudo systemctl restart dockerYou can confirm the change with:
ifconfig docker0π£ Ask your IT team for a safe subnet to use before making this change.
kubectl (CLI):
sudo apt install -y apt-transport-https ca-certificates curl
sudo curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key \
| sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] \
https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' \
| sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
sudo apt install -y kubectlMinikube (local K8s cluster):
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube startcurl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /usr/share/keyrings/ms.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ms.gpg] \
https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list
sudo apt update && sudo apt install -y codesudo snap install intellij-idea-community --classicDownload Cursor AppImage from cursor.sh:
sudo apt install -y libfuse2
mkdir -p ~/Applications
mv ~/Downloads/cursor*.AppImage ~/Applications/cursor.AppImage
chmod +x ~/Applications/cursor.AppImageAlias (optional):
echo "alias cursor='~/Applications/cursor.AppImage --no-sandbox'" >> ~/.bashrc
source ~/.bashrcsudo bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
sudo systemctl enable --now v2rayEdit config:
/usr/local/etc/v2ray/config.json
Restart:
sudo systemctl restart v2raysudo apt install -y zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
chsh -s $(which zsh)git --version
gh --version
docker --version
docker-compose --version
kubectl version --client
minikube version
java -version
mvn -version
gradle -version
code --version
zsh --version
v2ray --version