Skip to content

Instantly share code, notes, and snippets.

@fredcamps
Last active May 25, 2024 02:22
Show Gist options
  • Save fredcamps/8de606797a145c60034c9b99b84c64b0 to your computer and use it in GitHub Desktop.
Save fredcamps/8de606797a145c60034c9b99b84c64b0 to your computer and use it in GitHub Desktop.
My development environment installation
#!/bin/bash
sudo apt-get update
# kernel
sudo apt-get install -y linux-lowlatency linux-tools-lowlatency grub-customizer
# extra packages management
sudo rm -rf /etc/apt/preferences.d/nosnap.pref
sudo apt-get install -y snapd snapcraft
# common development libraries dependencies
sudo apt-get install -y bison libxml2-dev libbz2-dev libmcrypt-dev \
libreadline-dev libxslt1-dev libicu-dev libdbus-1-dev libssl-dev
# common build tools
sudo apt-get install -y autoconf automake build-essential cmake ctags global libtool libtool-bin
# network tools
sudo apt-get install -y openvpn-systemd-resolved openvpn libnss-resolve
# network tools kde
sudo apt-get install -y network-manager-openvpn
# network tool gnome
# sudo apt-get install -y network-manager-openvpn-gnome
# nordvpn
sudo bash -c 'cd /etc/openvpn/ && wget https://downloads.nordcdn.com/configs/archives/servers/ovpn.zip && rm -rf ovpn.zip'
# Linuxbrew
git clone https://github.com/Homebrew/brew ~/.linuxbrew/Homebrew
mkdir -p ~/.linuxbrew/bin && ln -sf ~/.linuxbrew/Homebrew/bin/brew ~/.linuxbrew/bin
#!/bin/bash
VAGRANT_VERSION="2.2.7"
# docker
if [ ! -f "$(which docker)" ]; then
echo "<< installing docker"
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# linux mint
sudo su -c "echo \"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(. /etc/os-release; echo $UBUNTU_CODENAME) stable\" > \
/etc/apt/sources.list.d/docker-releases.list"
# ubuntu
# sudo su -c "echo \"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\" > \
# /etc/apt/sources.list.d/docker-releases.list"
sudo apt-get update ; sudo apt-get install docker-ce ;
sudo gpasswd -a "${USER}" docker
pipx install docker-compose
fish -c 'fisher add brgmnn/fish-docker-compose'
echo "<< installing docker [end]"
fi
# vagrant
if [ ! -f "$(which vagrant)" ]; then
echo "<< installing vagrant"
sudo apt-get install -y \
virtualbox virtualbox-ext-pack virtualbox-dkms virtualbox-guest-x11 virtualbox-guest-source virtualbox-guest-utils virtualbox-qt
wget "https://releases.hashicorp.com/vagrant/${VAGRANT_VERSION}/vagrant_${VAGRANT_VERSION}_$(uname -p).deb" && \
sudo dpkg -i "vagrant_${VAGRANT_VERSION}_$(uname -p).deb" && rm -rf "vagrant_${VAGRANT_VERSION}_$(uname -p).deb"
echo "<< installing vagrant [end]"
fi
#!/bin/bash
BACK_DIR="${pwd}"
ASDF_VERSION="0.14.0"
# All-in-One version manager
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch "v${ASDF_VERSION}"
echo -e "source \"$HOME/.asdf/asdf.fish\"" > ~/.config/fish/conf.d/asdf.fish
mkdir -p ~/.config/fish/completions; cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions
mkdir -p ~/.asdf/shims
asdf plugin add nodejs
asdf plugin add python
asdf plugin add rust
asdf plugin add ruby
asdf plugin add golang
asdf plugin add java
bash "${HOME}/.asdf/plugins/nodejs/bin/import-release-team-keyring"
brew install jq
# python
sudo apt-get install --reinstall python3-dev python3-pip python3-venv
python3 -m pip install --user pipx
pipx install virtualfish
pipx install jedi-language-server
asdf install python "$(asdf list all python | grep -v "[a-z]" | grep "^[0-9]" | sort | tail -n1)"
asdf global python "$(asdf list python | head -n1 | awk '{$1=$1};1')"
pip install --upgrade pip
pip install poetry ipython
# javascript
asdf install nodejs "$(asdf list all nodejs | tail -n1)"
asdf global nodejs "$(asdf list rust | tail -n1 | awk '{$1=$1};1')"
npm -i -g trepan-ni ts-node typescript javascript-typescript-langserver tsun
# rust
asdf install rust "$(asdf list all rust | tail -n1)"
asdf global rust "$(asdf list rust | tail -n1 | awk '{$1=$1};1')"
rustup update
rustup component add rls rust-analysis rust-src
curl -L https://github.com/rust-analyzer/rust-analyzer/releases/latest/download/rust-analyzer-linux -o ~/.local/bin/rust-analyzer
chmod +x ~/.local/bin/rust-analyzer
# java
asdf install java "$(asdf list all java | grep "openjdk-[0-9][0-9]" | grep -v openj9 | sort | tail -n1)"
asdf global java "$(asdf list java | tail -n1 | awk '{$1=$1};1')"
# ruby
asdf install ruby "$(asdf list all ruby | grep -v [a-z] | sort | tail -n1)"
asdf global ruby "$(asdf list ruby | tail -n1 | awk '{$1=$1};1')"
# golang
asdf install golang "$(asdf list all golang | grep -v [a-z] | tail -n1)"
asdf global golang "$(asdf list golang | tail -n1 | awk '{$1=$1};1')"
# c/cpp
echo "<< installing clang"
sudo apt-get install -y libclang-9-dev clangd-9 clang-9 clang-tidy-9 cde
brew install conan
conan remote add conan-center https://conan.bintray.com
conan remote add bincrafters https://api.bintray.com/conan/bincrafters/public-conan
conan remote add conan-community https://api.bintray.com/conan/conan-community/conan
echo "<< installing clang [end]"
#!/bin/bash
# shell
sudo apt-get install shellcheck
if [ ! -f "$(which fish)" ]; then
echo "<< installing fish"
sudo apt-get install -y fish
curl -L https://get.oh-my.fish | fish
fish -c 'omf install asdf'
fish -c 'omf install colored-man-pages'
fish -c 'omf install foreign-env'
fish -c 'omf install grc'
fish -c 'omf install license'
fish -c 'omf install linuxbrew'
fish -c 'omf install https://github.com/laughedelic/brew-completions'
fish -c 'omf install notify'
fish -c 'omf install sudope'
fish -c 'omf install taktoa'
fish -c 'omf install z'
wget https://gitlab.com/kyb/fish_ssh_agent/raw/master/functions/fish_ssh_agent.fish -P ~/.config/fish/functions/
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
fish -c 'fisher install franciscolourenco/done'
fish -c 'fisher install edc/bass'
wget http://kassiopeia.juls.savba.sk/~garabik/software/grc/grc_1.11.3-1_all.deb && sudo dpkg -i grc_1.11.3-1_all.deb && rm -rf grc_1.11.3-1_all.deb
echo "<< installing fish [end]"
fi
#!/bin/bash
# keylock indicator
sudo add-apt-repository ppa:tsbarnes/indicator-keylock
sudo apt-get update
sudo apt-get install -y indicator-keylock
# unzip
sudo apt-get install -y unzip
# git flow
sudo apt-get install -y git-flow
fish -c 'omf install git-flow'
# aws client
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "/tmp/awscliv2.zip"
unzip /tmp/awscliv2.zip && sudo ./aws/install && rm -rf ./aws
fish -c 'omf install aws'
# markdown support
sudo apt-get install -y markdown
# system activity monitor
pipx install glances
# terminal tools
sudo apt-get install -y tmux tree xclip silversearcher-ag
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
snap install --classic ripgrep
pipx install doitlive
# clipboard history for gnome and derivatives
sudo apt-get install -y libgpaste-dev
# world_clock/timer/alarm app
sudo apt-get install gnome-clocks
# emacs
sudo add-apt-repository ppa:kelleyk/emacs && sudo apt-get update
# sudo apt-get build-dep --no-install-recommends emacs
sudo apt-get install -y emacs
# autoload env vars from .envrc
sudo apt-get install -y direnv
# brave browser
curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add -
echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main" | sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt update
sudo apt install brave-browser
# install android emulator
sudo add-apt-repository ppa:morphis/anbox-support
sudo apt-get update
sudo apt-get install -y anbox-modules-dkms
snap install --beta --devmode anbox
sudo modprobe ashmem_linux
sudo modprobe binder_linux
sudo apt-get install -y lzip
wget https://raw.githubusercontent.com/geeks-r-us/anbox-playstore-installer/master/install-playstore.sh
chmod +x install-playstore.sh
sudo /snap/anbox/current/bin/anbox-bridge.sh restart
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment