/ubuntu-post-install

Effortless and Simple Post Install Script for Ubuntu, Linux Mint, Debian & their derivatives

Primary LanguageShellGNU General Public License v3.0GPL-3.0

Ubuntu / Debian Post Installation Script

Effortless way to setup your fresh Ubuntu, Linux Mint and Debian installation.

build release docs netlify version license dl

Bash

How to use this

1. Get the script

Using latest stable version (Recommended)

wget https://github.com/tprasadtp/ubuntu-post-install/releases/latest/download/after-effects -O after-effects
wget https://github.com/tprasadtp/ubuntu-post-install/releases/latest/download/sha256sums.txt -O sha256sums.txt
sha256sum -c sha256sums.txt

Using latest master branch

wget https://raw.githubusercontent.com/tprasadtp/ubuntu-post-install/master/after-effects -o after-effects

2. Setup your YAML configuration file

Setup YAML file to suit your needs. Change PPAs, add or delete packages to list, tweak flags etc. Please see Configuration & Tasks.

Configuration-Page Tasks-Page

3. Run the script

Run the script as root.

Sample configuration can be found in config directory.

  chmod +x after-effects
  sudo ./after-effects --config-file <path-to-your-config>

See in Action

inaction

FAQ & Documentation

See /docs or visit docs

Supported Distributions

Ubuntu Kubuntu Lubuntu Xubuntu Ubuntu-Mate Ubuntu-Budgie Ubuntu-Studio Linux-Mint Debian Elementary-OS

I have not tested the script on the distros listed below. Because they use Ubuntu as their base, It should work fine. But no promises.

Kde-Neon Pop-OS Bodhi-Linux Peppermint-OS

For a complete list of supported distributions click here.

Features

Also handles adding several tweaks and fixes necessary to add repositories and PPAs, supports completely non-interactive mode, so that you can let it run while you have moaar ☕

Supported External repositories

Name Key Packages
Docker docker docker-ce, containerd.io, docker-ce-cli
GitHub - CLI github gh
Google - Bazel bazel bazel
Google - Chrome chrome google-chrome-stable, google-chrome-beta
Google - Cloud SDK googlecloud google-cloud-sdk, kubectl, google-cloud-sdk-minikube
Google - gVisor gvisor runsc
Hashicorp hashicorp terraform, consul, nomad, vault, boundary, waypoint
Mendeley desktop mendeley mendeleydesktop
Microsoft - Azure CLI azurecli azure-cli
Microsoft - Edge edge microsoft-edge-dev
Microsoft - Skype skype skypeforlinux
Microsoft - Teams teams teams, teams-insiders
Microsoft - VSCode vscode code, code-insiders, code-exploration
Podman (via OBS) podman podman, podman-plugins, cri-o-runc, cri-tools, buildah, crun
ROS ros
ROS2 ros2
Signal signal signal-desktop
Spotify Client spotify spotify-client
Sublime Text Editor sublimetext sublime-text
Wine HQ winehq winehq-stable, winehq-staging
Ubuntu - Universe ubuntu_universe
Ubuntu - Multiverse ubuntu_multiverse
Ubuntu - Restricted ubuntu_restricted
Debian - contrib debian_contrib
Debian - non-free debian_nonfree

Support for adding multiverse, universe, restricted(on Ubuntu), contrib and non-free (on Debian) is considered beta. Use with caution!

Issues & Help

  • Please check FAQ & known issues.
  • Please include the log file and terminal output while opening an issue.

Contributing & Forks

See Contributing and forks

Alternatives

  • snwh/ubuntu-post-install: Has few features like setting up dotfiles, but has limited config options and requires shell to be interactive. Only few external repositories are supported.
  • Ansible : Requires python on your system. Much more deteministic and better idempotency. There are plenty of roles and collections available on ansible-galaxy. But it adds more complexity and you have to write your own playbooks.

Analytics