dotfiles/centos.sh
MorganGeek 3a3fc30b8c fix technical debt + fine tune functions and hooks
- linting/fixing/formating
- utility for suggesting aliases now accepts parameters to change output
  size
- add helper to checkci
- add verify committer script to avoid committer with wrong git identify
2020-07-12 16:22:17 +02:00

270 lines
9.4 KiB
Bash

#!/usr/bin/env bash
#cask "iterm2"
curl -L https://sw.kovidgoyal.net/kitty/installer.sh | sh /dev/stdin
yum -y install https://zoom.us/client/latest/zoom_x86_64.rpm
# Install Development Tools
sudo yum group -y install "Development Tools"
# Visual Studio Code
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
## Update package cache
yum check-update
yum install dnf -y
dnf check-update
sudo dnf install -y code
# Enable EPEL repository
sudo yum -y install epel-release
# PGAdmin
yum -y install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
yum -y install pgadmin4
# Network tools
yum -y install net-tools lsof iproute nmap
# Mindmap Editor
yum -y install https://www.xmind.net/xmind/downloads/XMind-ZEN-for-Linux-64bit.rpm
# VideoLAN
sudo yum -y install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
yum -y install vlc
# Browser
yum -y install firefox
# Fonts
# clone
git clone https://github.com/powerline/fonts.git --depth=1
# install
cd fonts || exit
./install.sh
# clean-up a bit
cd .. || exit
rm -rf fonts
# Install ZSH
sudo yum -y install zsh
curl https://raw.githubusercontent.com/git-ftp/git-ftp/master/git-ftp >/bin/git-ftp
# Install git-ftp
chmod 755 /bin/git-ftp
# Install Golang
yum install golang golang-godoc golang-vet golang-src golang-pkg-linux-amd64 -y
echo "export GOPATH=\"$HOME/go\"" >>~/.zshrc
echo "export PATH=\"$GOPATH/bin:$PATH\"" >>~/.zshrc
. "$HOME/.zshrc"
# Install Hugo
mkdir "$HOME/src"
cd "$HOME/src" || exit
git clone https://github.com/gohugoio/hugo.git
cd hugo || exit
go install --tags extended
cd "$HOME" || exit
# Inet utils
yum -y install telnet ftp rsh traceroute
# FTP UI
yum -y install filezilla
~/.scripts/sdkmandeps.sh
# Install Plantuml
curl -L http://sourceforge.net/projects/plantuml/files/plantuml.jar/download -o /usr/local/bin/plantuml.jar &&
echo 'java -jar /usr/local/bin/plantuml.jar $@' >/usr/local/bin/plantuml &&
chmod +x /usr/local/bin/plantuml
# Using pyenv to be able to install specific python versions https://stackoverflow.com/questions/49794432/how-to-setup-a-pipenv-python-3-6-project-if-os-python-version-is-3-5
curl https://pyenv.run | bash
echo "export PYENV_ROOT=\"$HOME/.pyenv\"" >>~/.zshrc
echo "export PATH=\"$PYENV_ROOT/bin:$PATH\"" >>~/.zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >>~/.zshrc
source ~/.zshrc
yum -y install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel
# Install Python 3
pyenv install 3.7.3
pyenv global 3.7.3
ln -snf /root/.pyenv/versions/3.7.3/bin/python /usr/bin/python3.7
# ripgrep
sudo yum-config-manager --add-repo=https://copr.fedorainfracloud.org/coprs/carlwgeorge/ripgrep/repo/epel-7/carlwgeorge-ripgrep-epel-7.repo
sudo yum -y install ripgrep
# chezmoi : dotfiles manager
curl -sfL https://git.io/chezmoi | sh && ln -snf "$(pwd)/bin/chezmoi" /usr/local/bin/chezmoi
yum -y install tmux
yum -y install nodejs
# Fasd (pronounced similar to "fast") is a command-line productivity booster. https://github.com/clvv/fasd
sudo yum -y install fasd
# Simplistic interactive filtering tool https://github.com/peco/peco
go get -u -v github.com/peco/peco/cmd/peco
go get -u -v github.com/jessfraz/dockfmt
go get -u -v github.com/dmlittle/scenery
go get -u -v github.com/camptocamp/terraboard
# Tig is an ncurses-based text-mode interface for git.
yum -y install tig
pip install mackup
# Lynx is a fully featured World-Wide Web browser for terminal users. https://invisible-island.net/lynx/
yum -y install lynx
yum -y install colordiff
# Proxy server that works as a poor man's VPN
yum -y install sshuttle
yum -y install ansible
# Prepare lsd install
yum -y install cargo
# Next gen ls command https://github.com/Peltoche/lsd
cargo install lsd
echo 'export PATH="/root/.cargo/bin:$PATH"' >>~/.zshrc
source ~/.zshrc
# Prepare swipl install
yum -y install epel-release
yum groupinstall -y "Development Tools"
yum -y install ninja-build libunwind freetype-devel gmp-devel java-1.8.0-openjdk-devel jpackage-utils libICE-devel libjpeg-turbo-devel libSM-devel libX11-devel libXaw-devel libXext-devel libXft-devel libXinerama-devel libXmu-devel libXpm-devel libXrender-devel libXt-devel ncurses-devel openssl-devel pkgconfig readline-devel libedit-devel unixODBC-devel zlib-devel uuid-devel libarchive-devel libyaml-devel
## Prepare cmake3 install
#pyenv install 3.6.0
#ln -snf /root/.pyenv/versions/3.6.0/bin/python /usr/bin/python3.6
#yum -y install python36 # because pyenv installs python in a way that do not help installing cmake3
yum -y install cmake3 && ln -snf /usr/bin/cmake3 /usr/bin/cmake
git clone --depth 1 https://github.com/SWI-Prolog/swipl.git && cd swipl && git submodule update --init && mkdir build && cd build
cmake3 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -G Ninja ..
ninja-build install
# Now SWI-Prolog is ready, let's install logtalk
yum -y install https://logtalk.org/files/logtalk-3.28.0-1.noarch.rpm
# Logtalk should be available at /usr/local/share/ , for instance you can launch logtalk with swipl integration, using /usr/local/share/logtalk-3.28.0-stable/integration/swilgt.sh
# Prepare terraform install
yum -y install jq wget
tf_current_version=$(curl -s https://checkpoint-api.hashicorp.com/v1/check/terraform | jq -r -M '.current_version')
wget $(echo "https://releases.hashicorp.com/terraform/${tf_current_version}/terraform_${tf_current_version}_linux_amd64.zip")
unzip "terraform_${tf_current_version}_linux_amd64.zip"
sudo mv -v terraform /usr/local/bin/
rm -f "terraform_${tf_current_version}_linux_amd64.zip"
yum -y install htop
yum -y install moreutils
yum -y install asciidoc
git clone https://github.com/alexanderepstein/Bash-Snippets
cd Bash-Snippets
git checkout v1.22.1
./install.sh all
rm -rf Bash-Snippets
cd "$HOME"
# Install googler https://github.com/jarun/googler#installation
sudo curl -o /usr/local/bin/googler https://raw.githubusercontent.com/jarun/googler/v3.9/googler && sudo chmod +x /usr/local/bin/googler
# Install BAT (cat with more power)
wget https://github.com/sharkdp/bat/releases/download/v0.11.0/bat-v0.11.0-x86_64-unknown-linux-musl.tar.gz &&
tar -xzvf bat-v0.11.0-x86_64-unknown-linux-musl.tar.gz &&
mv bat-v0.11.0-x86_64-unknown-linux-musl/bat /usr/local/bin/ &&
rm -rf bat-v0.11.0-x86_64-unknown-linux-musl*
# Install fselect
cargo install fselect
# surfraw
git clone --depth 1 https://gitlab.com/surfraw/Surfraw.git &&
cd Surfraw &&
./prebuild &&
./configure &&
make && make install &&
cd .. &&
rm -rf Surfraw
# Dictionary
yum -y install dictd
# Add prettyping
yum -y install prettyping
# Glances + nmon for monitoring
yum -y install nmon glances
# Install Fuzzy finder
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
yes | ~/.fzf/install
#exec "$SHELL"
# Install diff-so-fancy
curl https://raw.githubusercontent.com/so-fancy/diff-so-fancy/master/third_party/build_fatpack/diff-so-fancy >/usr/local/bin/diff-so-fancy && chmod +x /usr/local/bin/diff-so-fancy
# Install nice disk usage
yum -y install ncdu
# Install tldr alternative to help
curl https://raw.githubusercontent.com/raylee/tldr/master/tldr >/usr/local/bin/tldr && chmod +x /usr/local/bin/tldr
# Add pandoc
yum -y install pandoc
# Add shellcheck
yum -y install ShellCheck
# Add spell checker + english dictionary
yum -y install aspell aspell-en
# Add neofetch repository
curl -o /etc/yum.repos.d/konimex-neofetch-epel-7.repo https://copr.fedorainfracloud.org/coprs/konimex/neofetch/repo/epel-7/konimex-neofetch-epel-7.repo
# Install neofetch to display system info nicely
yum -y install neofetch
cargo install nu
cat <<EOF >/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubectl
# Install the harbottle-main repo
sudo yum -y install https://harbottle.gitlab.io/harbottle-main/7/x86_64/harbottle-main-release.rpm
yum -y install kubectx
# Install packer
packer_version=1.4.5
curl -L -o /tmp/packer.zip https://releases.hashicorp.com/packer/${packer_version}/packer_${packer_version}_linux_amd64.zip
cd /usr/local/bin && unzip -o /tmp/packer.zip && rm -f /tmp/packer.zip
yum -y install weechat tflint
curl -sSLO https://github.com/pinterest/ktlint/releases/download/0.35.0/ktlint && chmod a+x ktlint
# you can also download ktlint manually from https://github.com/pinterest/ktlint/releases
# another option is "brew install ktlint"
# verify PGP signature (optional but recommended)
curl -sS https://keybase.io/pinterestandroid/pgp_keys.asc | gpg --import
curl -sSLO https://github.com/pinterest/ktlint/releases/download/0.35.0/ktlint.asc
gpg --verify ktlint.asc
git clone https://github.com/getzola/zola.git
cd zola
cargo build --Release
yum install -y https://github.com/vmware/octant/releases/download/v0.9.1/octant_0.9.1_Linux-64bit.rpm && yum clean all
yum -y install bc
git clone https://github.com/fcambus/ansiweather.git
git clone https://github.com/datawire/telepresence.git && cd telepresence
env PREFIX=/usr/local ./install.sh
wget https://github.com/instrumenta/kubeval/releases/latest/download/kubeval-linux-amd64.tar.gz
tar xf kubeval-linux-amd64.tar.gz
sudo cp kubeval /usr/local/bin