Last active
April 5, 2023 21:51
-
-
Save rapgru/e11298478a0c23d6a0b7b97a79d9543e to your computer and use it in GitHub Desktop.
WSL Ubuntu 18.04 LTS Provisioning Script
This file contains hidden or 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
#!/bin/bash | |
echo "Provisioning WSL Ubuntu 1804" | |
# This script needs to be repeatable ! | |
WindowsHome="{{home_folder}}" | |
function addCdAlias() { | |
name="$1" | |
path="$2" | |
if [[ $(grep -c "alias $name" "$HOME/.profile") -eq 0 ]]; then | |
echo "alias $name='cd $path'" >> "$HOME/.profile" | |
fi | |
} | |
function addAlias() { | |
name="$1" | |
command="$2" | |
if [[ $(grep -c "alias $name" "$HOME/.profile") -eq 0 ]]; then | |
echo "alias $name='$command'" >> "$HOME/.profile" | |
fi | |
} | |
function setGitConfig() { | |
key="$1" | |
val="$2" | |
if [[ $(git config "$key") != "$val" ]]; then | |
echo "Setting git $key to $val" | |
git config --global "$key" "$val" | |
fi | |
} | |
function addPath() { | |
path="$1" | |
if [[ $(grep -c "export PATH="'"$PATH:'"$path"'"' "$HOME/.profile") -eq 0 ]]; then | |
echo "export PATH="'"$PATH:'"$path"'"' >> "$HOME/.profile" | |
fi | |
} | |
export DEBIAN_FRONTEND=noninteractive | |
export DEBIAN_PRIORITY=critical | |
sudo -E apt-get -qy update | |
sudo -E apt-get -qy -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" upgrade | |
sudo -E apt-get -qy autoclean | |
# Git config | |
setGitConfig "user.name" "Raphael Gruber" | |
setGitConfig "user.email" "[email protected]" | |
setGitConfig "credential.helper" "store" | |
setGitConfig "core.editor" "vim" | |
sudo apt-get -qy install texlive-full texlive-lang-german texlive-latex-extra openjdk-8-jre | |
sudo apt-get -qy install shellcheck | |
addCdAlias "h4" "$WindowsHome/OneDrive/Dokumente/IT-HTL/4_Klasse" | |
addCdAlias "dg" "$WindowsHome/OneDrive/Dokumente/IT-HTL/4_Klasse/Datagate/dg" | |
addCdAlias "doc" "$WindowsHome/OneDrive/Dokumente" | |
if [[ ! -d "$HOME/latex/latex-templates" ]]; then | |
git clone "https://github.com/rapgru/latex-templates.git" "$HOME/latex/latex-templates" | |
chmod +x "$HOME/latex/latex-templates/newtex.sh" | |
fi | |
addAlias "newtex" "$HOME/latex/latex-templates/newtex.sh" | |
addAlias "vagrant" "vagrant.exe" | |
sudo apt-get -qy install apache2 | |
sudo apt-get -qy install mysql-server | |
sudo apt-get -qy install php libapache2-mod-php php-mysql php-mcrypt php-mbstring php-dom | |
sudo service mysql start | |
# may fail if user already exists | |
sudo mysql -u root -e "CREATE USER 'rgruber'@'%' IDENTIFIED BY 'default';" | |
sudo mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO 'rgruber'@'%';" | |
sudo service mysql stop | |
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" | |
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" | |
php composer-setup.php | |
php -r "unlink('composer-setup.php');" | |
mv composer.phar /usr/local/bin/composer | |
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash | |
source ~/.bashrc | |
nvm install 12.18.0 | |
npm install -g @vue/cli | |
# haskell stack | |
curl -sSL https://get.haskellstack.org/ | sh | |
source ~/.bashrc | |
# hie (new vs code extension installs language server itself) | |
# sudo apt-get -qy install libicu-dev libtinfo-dev libgmp-dev | |
# ( | |
# mkdir $HOME/haskell-ide-engine | |
# cd $HOME/haskell-ide-engine | |
# git clone https://github.com/haskell/haskell-ide-engine --recursive | |
# cd haskell-ide-engine | |
# stack install.hs hie | |
# echo 'export PATH=$PATH:'"$HOME"'/.local/bin' >> "$HOME/.profile" | |
# ) | |
sudo apt-get -qy install alex | |
# sagemath | |
curl -o ~/sage.tar.bz2 http://ftp.rediris.es/mirror/sagemath/linux/64bit/sage-9.1-Ubuntu_18.04-x86_64.tar.bz2 | |
mkdir ~/sage | |
tar -xjf ~/sage.tar.bz2 -C ~/sage | |
sudo apt-get -qy install pandoc | |
addPath "$HOME/sage/SageMath" | |
# update locate database | |
sudo updatedb | |
# After installation run: | |
# sudo mysql_secure_installation | |
# sudo mysql -u root -e "ALTER USER 'rgruber'@'%' IDENTIFIED BY '<other password>'" | |
# After OneDrive synt run: | |
# sudo updatedb |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment