-
-
Save thangchung/1a14eab158cf938dcce498c17bd55d28 to your computer and use it in GitHub Desktop.
Dev box setup for Ubuntu 20.04
This file contains 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
sudo apt update | |
sudo apt install -y build-essential curl make git vim hub libssl-dev graphviz jq cmake clang pkg-config p7zip terminator gnome-tweaks fonts-firacode protobuf-compiler | |
# intune | |
sudo apt install libpam-pwquality | |
sudo nano /etc/pam.d/common-password | |
# password requisite pam_pwquality.so retry=3 dcredit=-1 ocredit=-1 ucredit=-1 lcredit=-1 minlen=12 | |
curl -sSl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc | |
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb | |
sudo dpkg -i packages-microsoft-prod.deb | |
sudo apt update | |
sudo apt install intune-portal | |
# install oh-my-zsh | |
sudo apt install -y zsh | |
chsh -s $(which zsh) | |
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" | |
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions | |
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting | |
# rustup | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh | |
source "$HOME/.cargo/env" | |
# extra tools for rust | |
apt-get install -y lcov plantuml | |
cargo install cargo-tarpaulin --version '^0.20' | |
cargo install cargo-tree | |
cargo install cargo-watch | |
cargo install cargo-criterion | |
cargo install sccache | |
cargo install bindgen | |
cargo install cbindgen | |
echo '[build]' >> ~/.cargo/config.toml | |
echo 'rustc-wrapper = "'/home/$USER/.cargo/bin/sccache'"' >> ~/.cargo/config.toml | |
# golang | |
sudo snap install --classic go | |
echo 'export GOPATH=$HOME/go' >> ~/.zshrc | |
echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> ~/.zshrc | |
# docker | |
sudo apt-get remove docker docker-engine docker.io | |
sudo apt-get update | |
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common | |
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - | |
sudo apt-key fingerprint 0EBFCD88 | |
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ | |
xenial \ | |
stable" | |
sudo apt-get update | |
sudo apt-get install -y docker-ce | |
sudo usermod -aG docker $USER | |
# java | |
sudo apt install -y openjdk-14-jdk | |
# node.js | |
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash - | |
sudo apt-get install -y nodejs | |
sudo npm install -g yo | |
# dotnet | |
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb | |
sudo dpkg -i packages-microsoft-prod.deb | |
sudo apt-get update | |
sudo apt-get install -y apt-transport-https | |
sudo apt-get update | |
sudo apt-get install -y dotnet-sdk-3.1 | |
# powershell | |
sudo snap install powershell --classic | |
# VS Code | |
sudo snap install --classic code | |
code --install-extension shan.code-settings-sync | |
jq '. + { "sync.gist": "cb398ab6b6a97e18213e0cb94400a97e" }' ~/.config/Code/User/settings.json > ~/.config/vscsettings.tmp && mv ~/.config/vscsettings.tmp ~/.config/Code/User/settings.json | |
# .zshrc | |
echo alias up=\'cd ..\' >> ~/.zshrc | |
echo alias up2=\'cd ../..\' >> ~/.zshrc | |
echo alias up3=\'cd ../../..\' >> ~/.zshrc | |
echo alias up4=\'cd ../../../..\' >> ~/.zshrc | |
echo alias up5=\'cd ../../../../..\' >> ~/.zshrc | |
echo alias please=\'sudo\' >> ~/.zshrc | |
echo alias gitl=\'git log --graph --oneline --all\' >> ~/.zshrc | |
echo alias xclip=\'xclip -selection c\' >> ~/.zshrc | |
# keybase + pass + docker cred manager | |
curl --remote-name https://prerelease.keybase.io/keybase_amd64.deb | |
sudo apt install -y ./keybase_amd64.deb | |
sudo apt install -y pass | |
wget https://github.com/docker/docker-credential-helpers/releases/download/v0.6.3/docker-credential-pass-v0.6.3-amd64.tar.gz | |
tar -xvf docker-credential-pass-v0.6.3-amd64.tar.gz | |
sudo mv docker-credential-pass /usr/bin/ | |
sudo chmod +x /usr/bin/docker-credential-pass | |
jq '. + { "credsStore": "pass" }' ~/.docker/config.json > ~/.docker/config.tmp && mv ~/.docker/config.tmp ~/.docker/config.json | |
# then http://blog.alltherunning.com/2018/02/12/pass-keybase-multi-gpg.html to restore PGP keys. | |
# git config | |
git config --global user.email "<email>" | |
git config --global user.name "Vadim Kovalyov" | |
git config --global user.signingKey <keyid> | |
git config --global commit.gpgSign true | |
# kubectl | |
sudo apt-get update | |
sudo apt-get install -y apt-transport-https ca-certificates curl | |
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 | |
# kind | |
go install sigs.k8s.io/kind@v0.14.0 | |
kind create cluster |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment