From 01a1e291e43b53d633eb678d829e7c88384c8b84 Mon Sep 17 00:00:00 2001 From: andwati <56686898+andwati@users.noreply.github.com> Date: Wed, 28 May 2025 14:25:02 +0300 Subject: [PATCH] revamp --- .bashrc | 138 +++++++++++++++++++++++++++++++++++++++++ .gitconfig | 55 +---------------- install.sh | 0 scripts/debian.sh | 20 ------ scripts/deps.sh | 12 ---- scripts/mirrors.sh | 146 ++++++++++++++++++++++++++++++++++++++++++++ scripts/services.sh | 2 + scripts/ubuntu.sh | 137 ----------------------------------------- 8 files changed, 289 insertions(+), 221 deletions(-) create mode 100644 .bashrc mode change 100644 => 100755 .gitconfig create mode 100644 install.sh delete mode 100644 scripts/debian.sh delete mode 100644 scripts/deps.sh create mode 100644 scripts/mirrors.sh create mode 100644 scripts/services.sh diff --git a/.bashrc b/.bashrc new file mode 100644 index 0000000..6690912 --- /dev/null +++ b/.bashrc @@ -0,0 +1,138 @@ +# ~/.bashrc: executed by bash(1) for non-login shells. +# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) +# for examples + +# If not running interactively, don't do anything +case $- in + *i*) ;; + *) return;; +esac + +# don't put duplicate lines or lines starting with space in the history. +# See bash(1) for more options +HISTCONTROL=ignoreboth + +# append to the history file, don't overwrite it +shopt -s histappend + +# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) +HISTSIZE=1000 +HISTFILESIZE=2000 + +# check the window size after each command and, if necessary, +# update the values of LINES and COLUMNS. +shopt -s checkwinsize + +# If set, the pattern "**" used in a pathname expansion context will +# match all files and zero or more directories and subdirectories. +#shopt -s globstar + +# make less more friendly for non-text input files, see lesspipe(1) +[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color|*-256color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +#force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + +if [ "$color_prompt" = yes ]; then + PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' +else + PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' +fi +unset color_prompt force_color_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*) + PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" + ;; +*) + ;; +esac + +# enable color support of ls and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + alias ls='ls --color=auto' + #alias dir='dir --color=auto' + #alias vdir='vdir --color=auto' + + alias grep='grep --color=auto' + alias fgrep='fgrep --color=auto' + alias egrep='egrep --color=auto' +fi + +# colored GCC warnings and errors +#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' + +# some more ls aliases +alias ll='ls -alF' +alias la='ls -A' +alias l='ls -CF' + +# Add an "alert" alias for long running commands. Use like so: +# sleep 10; alert +alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' + +# Alias definitions. +# You may want to put all your additions into a separate file like +# ~/.bash_aliases, instead of adding them here directly. +# See /usr/share/doc/bash-doc/examples in the bash-doc package. + +if [ -f ~/.bash_aliases ]; then + . ~/.bash_aliases +fi + +# enable programmable completion features (you don't need to enable +# this, if it's already enabled in /etc/bash.bashrc and /etc/profile +# sources /etc/bash.bashrc). +if ! shopt -oq posix; then + if [ -f /usr/share/bash-completion/bash_completion ]; then + . /usr/share/bash-completion/bash_completion + elif [ -f /etc/bash_completion ]; then + . /etc/bash_completion + fi +fi +. "$HOME/.cargo/env" +export PYENV_ROOT="$HOME/.pyenv" +[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH" +eval "$(pyenv init - bash)" + +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion +# Install Ruby Gems to ~/gems +export GEM_HOME="$HOME/gems" +export PATH="$HOME/gems/bin:$PATH" + +# Created by `pipx` on 2025-05-26 21:05:32 +export PATH="$PATH:/home/ian/.local/bin" + +export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64 +export PATH=$JAVA_HOME/bin:$PATH + +# Android SDK environment variables +export ANDROID_HOME=$HOME/Android/Sdk +export PATH=$ANDROID_HOME/platform-tools:$ANDROID_HOME/cmdline-tools/latest/bin:$PATH diff --git a/.gitconfig b/.gitconfig old mode 100644 new mode 100755 index 52c9c49..6d693b5 --- a/.gitconfig +++ b/.gitconfig @@ -1,54 +1,5 @@ -[core] - editor = nvim - fsmonitor = true - pager = delta - -[init] - defaultBranch = main - [user] name = andwati - email = andwatiian@gmail.com - -[github] - user = andwati - -[filter "lfs"] - clean = git-lfs clean -- %f - smudge = git-lfs smudge -- %f - process = git-lfs filter-process - required = true - -[branch] - autosetuprebase = always - -[push] - default = tracking - autoSetupRemote = true - -[pull] - ff = only -[alias] - yolo = "!f() { curl -s https://whatthecommit.com/index.txt | xargs git commit -m; }; f" - -[merge] - conflictstyle = zdiff3 - -[rebase] - autosquash = true - -[diff] - algorithm = histogram - -[interactive] - diffFilter = delta --color-only - -[help] - autocorrect = prompt - -[fetch] - writeCommitGraph = true - -[delta] - navigate = true # use n and N to move between diff sections - dark = true # or light = true, or omit for auto-detection + email = 56686898+andwati@users.noreply.github.com +[init] + defaultBranch = main diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..e69de29 diff --git a/scripts/debian.sh b/scripts/debian.sh deleted file mode 100644 index 5f04b76..0000000 --- a/scripts/debian.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# fail on errors -set -e - -# this fixes .ssh and .gnupg directory permissions -find ~/.gnupg -type d -exec chmod 700 {} \; -find ~/.gnupg -type f -exec chmod 600 {} \; -chmod 600 ~/.ssh/* && chmod 700 ~/.ssh && chmod 644 ~/.ssh/*.pub - -sudo apt install qbittorrent git vlc - -# onedrive for linux -echo 'deb http://download.opensuse.org/repositories/home:/obs_mhogomchungu/Debian_12/ /' | sudo tee /etc/apt/sources.list.d/home:obs_mhogomchungu.list -curl -fsSL https://download.opensuse.org/repositories/home:obs_mhogomchungu/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_obs_mhogomchungu.gpg > /dev/null -sudo apt update -sudo apt install media-downloader - -systemctl enable onedrive@ian.service -systemctl start onedrive@ian.service diff --git a/scripts/deps.sh b/scripts/deps.sh deleted file mode 100644 index 9da947d..0000000 --- a/scripts/deps.sh +++ /dev/null @@ -1,12 +0,0 @@ -sudo pacman -Syu - - -sudo pacman -Sy --needed base-devel gcc clang llvm rustup libxau libxi libxss libxtst libxcursor libxcomposite libxdamage libxfixes libxrandr libxrender mesa-libgl alsa-lib libglvnd - -sudo pacman -Sy --needed grub efibootmgr networkmanager network-manager-applet dialog wpa_supplicant mtools dosfstools base-devel avahi xdg-user-dirs xdg-utils gvfs gvfs-smb nfs-utils inetutils dnsutils bluez bluez-utils cups hplip alsa-utils bash-completion openssh rsync virt-manager qemu bridge-utils dnsmasq vde2 openbsd-netcat ipset sof-firmware nss-mdns acpid os-prober ntfs-3g docker minikube kubectl zig zls qbittorrent git python-pip python-pipx python-pipenv python-poetry firefox go tor torbrowser-launcher gimp kdenlive vlc postgresql - - -rustup toolchain add stable - - -yay -S --needed google-chrome nvm deno zola bun-bin pnpm obsidian freedownloadmanager signal-desktop onedrive-abraunegg spotify visual-studio-code-bin github-cli postman-bin media-downloader mongodb-bin mongodb-compass wps-office wps-office-mime wps-office-fonts ttf-wps-fonts diff --git a/scripts/mirrors.sh b/scripts/mirrors.sh new file mode 100644 index 0000000..13134aa --- /dev/null +++ b/scripts/mirrors.sh @@ -0,0 +1,146 @@ +#!/bin/bash + +# fail on errors +set -e + +sudo apt update && sudo apt upgrade -y +sudo apt dist-upgrade -y +sudo apt autoremove -y +sudo apt autoclean -y + +# this fixes .ssh and .gnupg directory permissions +find ~/.gnupg -type d -exec chmod 700 {} \; +find ~/.gnupg -type f -exec chmod 600 {} \; +chmod 600 ~/.ssh/* && chmod 700 ~/.ssh && chmod 644 ~/.ssh/*.pub + +# keys and mirrors +curl -sS https://download.spotify.com/debian/pubkey_C85668DF69375001.gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg +echo "deb https://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list + + +# install +sudo apt install build-essential zsh git qbittorrent curl wget vlc kdenlive gimp tor torbrowser-launcher golang build-essential libssl-dev zlib1g-dev \ +libbz2-dev libreadline-dev libsqlite3-dev curl git \ +libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev nmap firefox python3 python3-pip pipx pipenv python3-poetry python3-virtualenv \ +ffmpeg ffmpegthumbnailer imagemagick libavcodec-extra libav-tools ssh mpv thunderbird inkscape git + +# spotify +sudo apt-get update && sudo apt-get install spotify-client + +# gh cli +(type -p wget >/dev/null || (sudo apt update && sudo apt-get install wget -y)) \ + && sudo mkdir -p -m 755 /etc/apt/keyrings \ + && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \ + && cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ + && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ + && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ + && sudo apt update \ + && sudo apt install gh -y + + +# mise +sudo apt update -y && sudo apt install -y gpg sudo wget curl +sudo install -dm 755 /etc/apt/keyrings +wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg 1> /dev/null +echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=amd64] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list +sudo apt update +sudo apt install -y mise + +# pyenv +curl -fsSL https://pyenv.run | bash + + + +echo 'deb http://download.opensuse.org/repositories/home:/obs_mhogomchungu/xUbuntu_24.04/ /' | sudo tee /etc/apt/sources.list.d/home:obs_mhogomchungu.list +curl -fsSL https://download.opensuse.org/repositories/home:obs_mhogomchungu/xUbuntu_24.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_obs_mhogomchungu.gpg > /dev/null +sudo apt update +sudo apt install media-downloader + +# postgresql +sudo apt install postgresql postgresql-doc + + +# firefox from mozilla.org +sudo install -d -m 0755 /etc/apt/keyrings + +wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null + +gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); if($0 == "35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3") print "\nThe key fingerprint matches ("$0").\n"; else print "\nVerification failed: the fingerprint ("$0") does not match the expected one.\n"}' + +echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null + +echo ' +Package: * +Pin: origin packages.mozilla.org +Pin-Priority: 1000 +' | sudo tee /etc/apt/preferences.d/mozilla + +sudo apt-get update && sudo apt-get install firefox + + + +curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb +sudo dpkg -i minikube_latest_amd64.deb + +wget https://repo.protonvpn.com/debian/dists/stable/main/binary-all/protonvpn-stable-release_1.0.8_all.deb + +sudo dpkg -i ./protonvpn-stable-release_1.0.8_all.deb && sudo apt update + +sudo apt install proton-vpn-gnome-desktop + +## 0nedrive + +sudo apt-get update +sudo apt-get upgrade -y +sudo apt-get dist-upgrade -y +sudo apt-get autoremove -y +sudo apt-get autoclean -y + +wget -qO - https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/xUbuntu_24.04/Release.key | gpg --dearmor | sudo tee /usr/share/keyrings/obs-onedrive.gpg > /dev/null +echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/obs-onedrive.gpg] https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/xUbuntu_24.04/ ./" | sudo tee /etc/apt/sources.list.d/onedrive.list + +sudo apt-get update + +sudo apt install --no-install-recommends --no-install-suggests onedrive + +# docker + + +for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done + +# Add Docker's official GPG key: +sudo apt-get update +sudo apt-get install ca-certificates curl +sudo install -m 0755 -d /etc/apt/keyrings +sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc +sudo chmod a+r /etc/apt/keyrings/docker.asc + +# Add the repository to Apt sources: +echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ + sudo tee /etc/apt/sources.list.d/docker.list > /dev/null +sudo apt-get update + +sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin +# Add your user to the docker group +sudo groupadd docker || true +sudo usermod -aG docker $USER + + +curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash + +sudo apt-get update + +sudo apt-get install apt-transport-https ca-certificates gnupg curl + +curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg + +echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list + +sudo apt-get update && sudo apt-get install google-cloud-cli + +wget -O - https://apt.corretto.aws/corretto.key | sudo gpg --dearmor -o /usr/share/keyrings/corretto-keyring.gpg && \ +echo "deb [signed-by=/usr/share/keyrings/corretto-keyring.gpg] https://apt.corretto.aws stable main" | sudo tee /etc/apt/sources.list.d/corretto.list + +sudo apt-get update; sudo apt-get install -y java-21-amazon-corretto-jdk \ No newline at end of file diff --git a/scripts/services.sh b/scripts/services.sh new file mode 100644 index 0000000..57477a1 --- /dev/null +++ b/scripts/services.sh @@ -0,0 +1,2 @@ +systemctl enable onedrive@ian.service +systemctl start onedrive@ian.service \ No newline at end of file diff --git a/scripts/ubuntu.sh b/scripts/ubuntu.sh index b3a840a..5fc3440 100644 --- a/scripts/ubuntu.sh +++ b/scripts/ubuntu.sh @@ -1,141 +1,4 @@ -sudo apt update && sudo apt upgrade -y -find ~/.gnupg -type d -exec chmod 700 {} \; -find ~/.gnupg -type f -exec chmod 600 {} \; - - -sudo apt install build-essential zsh git qbittorrent curl wget vlc kdenlive gimp tor torbrowser-launcher golang build-essential libssl-dev zlib1g-dev \ -libbz2-dev libreadline-dev libsqlite3-dev curl git \ -libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev - -curl -fsSL https://pyenv.run | bash - -sudo apt update -y && sudo apt install -y gpg sudo wget curl -sudo install -dm 755 /etc/apt/keyrings -wget -qO - https://mise.jdx.dev/gpg-key.pub | gpg --dearmor | sudo tee /etc/apt/keyrings/mise-archive-keyring.gpg 1> /dev/null -echo "deb [signed-by=/etc/apt/keyrings/mise-archive-keyring.gpg arch=amd64] https://mise.jdx.dev/deb stable main" | sudo tee /etc/apt/sources.list.d/mise.list -sudo apt update -sudo apt install -y mise - -echo 'eval "$(mise activate bash)"' >> ~/.zshrc - -# if you installed zsh with `apt-get` for example, this will work: -sudo mkdir -p /usr/local/share/zsh/site-functions -sudo mise completion zsh > /usr/local/share/zsh/site-functions/_mise - -echo 'deb http://download.opensuse.org/repositories/home:/obs_mhogomchungu/xUbuntu_24.04/ /' | sudo tee /etc/apt/sources.list.d/home:obs_mhogomchungu.list -curl -fsSL https://download.opensuse.org/repositories/home:obs_mhogomchungu/xUbuntu_24.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_obs_mhogomchungu.gpg > /dev/null -sudo apt update -sudo apt install media-downloader - -curl -sS https://download.spotify.com/debian/pubkey_C85668DF69375001.gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/spotify.gpg -echo "deb https://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list - -sudo apt-get update && sudo apt-get install spotify-client - -(type -p wget >/dev/null || (sudo apt update && sudo apt-get install wget -y)) \ - && sudo mkdir -p -m 755 /etc/apt/keyrings \ - && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg \ - && cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \ - && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ - && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \ - && sudo apt update \ - && sudo apt install gh -y - -sudo apt install postgresql postgresql-doc - -sudo install -d -m 0755 /etc/apt/keyrings - -wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null - -gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); if($0 == "35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3") print "\nThe key fingerprint matches ("$0").\n"; else print "\nVerification failed: the fingerprint ("$0") does not match the expected one.\n"}' - -echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee -a /etc/apt/sources.list.d/mozilla.list > /dev/null - -echo ' -Package: * -Pin: origin packages.mozilla.org -Pin-Priority: 1000 -' | sudo tee /etc/apt/preferences.d/mozilla - -sudo apt-get update && sudo apt-get install firefox - - -curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb -sudo dpkg -i minikube_latest_amd64.deb - -wget https://repo.protonvpn.com/debian/dists/stable/main/binary-all/protonvpn-stable-release_1.0.8_all.deb - -sudo dpkg -i ./protonvpn-stable-release_1.0.8_all.deb && sudo apt update - -sudo apt install proton-vpn-gnome-desktop - -sudo apt install libayatana-appindicator3-1 gir1.2-ayatanaappindicator3-0.1 gnome-shell-extension-appindicator - - -sudo apt-get update -sudo apt-get upgrade -y -sudo apt-get dist-upgrade -y -sudo apt-get autoremove -y -sudo apt-get autoclean -y - -wget -qO - https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/xUbuntu_24.04/Release.key | gpg --dearmor | sudo tee /usr/share/keyrings/obs-onedrive.gpg > /dev/null -echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/obs-onedrive.gpg] https://download.opensuse.org/repositories/home:/npreining:/debian-ubuntu-onedrive/xUbuntu_24.04/ ./" | sudo tee /etc/apt/sources.list.d/onedrive.list - -sudo apt-get update - -sudo apt install --no-install-recommends --no-install-suggests onedrive - -chmod 600 ~/.ssh/* && chmod 700 ~/.ssh && chmod 644 ~/.ssh/*.pub - -systemctl enable onedrive@ian.service -systemctl start onedrive@ian.service - -for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done - -# Add Docker's official GPG key: -sudo apt-get update -sudo apt-get install ca-certificates curl -sudo install -m 0755 -d /etc/apt/keyrings -sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc -sudo chmod a+r /etc/apt/keyrings/docker.asc - -# Add the repository to Apt sources: -echo \ - "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ - $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ - sudo tee /etc/apt/sources.list.d/docker.list > /dev/null -sudo apt-get update - -sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin - -sudo docker run hello-world - -sudo usermod -aG docker $USER - -newgrp docker - -docker run hello-world - -sudo systemctl enable docker.service -sudo systemctl enable containerd.service - -curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash - -sudo apt-get update - -sudo apt-get install apt-transport-https ca-certificates gnupg curl - -curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg - -echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list - -sudo apt-get update && sudo apt-get install google-cloud-cli - -wget -O - https://apt.corretto.aws/corretto.key | sudo gpg --dearmor -o /usr/share/keyrings/corretto-keyring.gpg && \ -echo "deb [signed-by=/usr/share/keyrings/corretto-keyring.gpg] https://apt.corretto.aws stable main" | sudo tee /etc/apt/sources.list.d/corretto.list - -sudo apt-get update; sudo apt-get install -y java-17-amazon-corretto-jdk