The beauty of Linux is that it gives you a minimal base on top of which you can build a customized system exactly how you like. However, that also means going through the painstakingly long process of installing all your apps and packages one at a time. Thankfully, there’s a better way—a few actually—that allows you to install everything you need in a single shot.
Using the terminal
The fastest method, with one annoying catch
The simplest way to bulk-install apps on Ubuntu is to just chain all the package names you want into a single APT install command and run it. Instead of installing apps one by one, you hand Ubuntu a shopping list, and it goes and fetches everything in one shot. Here’s what that looks like in practice:
sudo apt install vlc gimp libreoffice obs-studio firefox thunderbird neofetch htop
Run that and Ubuntu will download and install every app on that list sequentially—no babysitting required. And of course, you can make the list as long as you need.
That said, there’s one notable limitation—package names have to be exact. APT doesn’t do fuzzy matching. If you type obs instead of obs-studio, the command will hit an error and stop. You can add the –ignore-missing flag to prevent the whole command from aborting on a bad name, but it just skips the problematic package. You still have to track down the correct name and run it again separately.
Furthermore, not all the packages you want will be available in the APT repository. You might need to use Flatpaks or Snaps to access certain apps. Technically, you can use the && operator to chain an APT install command with a Snap install command (or Flatpak)—but at that point, it’s better to write a bash script instead.
Using a bash script
The most powerful option—if you’re willing to get a bit technical
The bash script method requires the most upfront work, but it’s also the most powerful option on this list. Basically, you write a shell script once that covers every single app you need—across APT, Flatpak, and Snap—and save it somewhere accessible, like Google Drive or Nextcloud. Then, every time you do a fresh Ubuntu install, you just pull that script and run it. One command, everything installed, exactly the way you want it.
Here’s what a basic version of that script looks like. I’ve left comments in the bash script to help you understand how it works:
#!/bin/bash
# Track any packages that fail to install
failed=()
# Keep sudo session alive for the duration of the script
sudo -v || exit 1
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
# Helper: checks if an APT package is already installed
is_installed() { dpkg -l "$1" 2>/dev/null | grep -q "^ii"; }
# Helper: installs APT packages one by one, skips if already installed, logs failures
apt_install() {
for pkg in "$@"; do
if is_installed "$pkg"; then
echo "[-] $pkg (already installed, skipping)"
continue
fi
if ! sudo apt-get -o DPkg::Lock::Timeout=60 install -y "$pkg"; then
# Attempt to fix broken dependencies and retry once
echo "[!] Attempting to fix dependencies for $pkg..."
sudo apt-get -o DPkg::Lock::Timeout=60 --fix-broken install -y
sudo apt-get -o DPkg::Lock::Timeout=60 install -y "$pkg" || failed+=("$pkg (apt)")
fi
done
}
# Helper: installs Flatpak packages one by one and logs failures
flatpak_install() {
for pkg in "$@"; do
flatpak install -y flathub "$pkg" || failed+=("$pkg (flatpak)")
done
}
# Update package list before installing anything
sudo apt-get -o DPkg::Lock::Timeout=60 update
# Install APT packages (includes Flatpak and GNOME Software integration)
apt_install vlc gimp obs-studio thunderbird fastfetch htop flatpak gnome-software-plugin-flatpak
# Add Flathub remote (skips if already added)
flatpak remote-add --if-not-exists flathub <https://dl.flathub.org/repo/flathub.flatpakrepo>
# Install Flatpak apps
flatpak_install com.spotify.Client com.discordapp.Discord
# Install snapd if not already present (e.g. on minimal Ubuntu installs)
if ! command -v snap &> /dev/null; then
sudo apt-get -o DPkg::Lock::Timeout=60 install -y snapd || failed+=("snapd (apt)")
fi
# Install Snap apps
sudo snap install code --classic || failed+=("code (snap)")
# Print install summary
echo ""
echo "===== Install Summary ====="
if [ ${#failed[@]} -eq 0 ]; then
echo "All packages installed successfully!"
else
echo "The following packages could not be installed:"
for pkg in "${failed[@]}"; do
echo " - $pkg"
done
fi
echo ""
echo "Note: A system restart is required for Flatpak apps to appear in your application launcher."
You can check this guide to learn how to use and run a bash script. The above script will use APT to install VLC, GIMP, OBS Studio, Thunderbird, fastfetch, and htop, along with the Flatpak package manager. Then it’ll install Spotify and Discord using Flatpak and finally VS Code using Snap. You can paste this bash script into Claude or Gemini along with the list of apps you want to install and from which sources, and it’ll update the script accordingly.
ChatGPT Helped Me Get Better at Using Linux, Here’s How
From explaining Linux commands to automating tasks, ChatGPT can handle them all.
The real strength of using the bash script method is that it’s a true one-shot installation method for all your apps. Whereas the main trade-off comes in the form of setup complexity, especially if you’re a non-technical user. This will essentially feel like coding.
Using TuxMate
The no-terminal option that still gets the job done (with a few caveats)
If interfacing with the terminal—let alone running a bash script—feels too technically overwhelming, then you can go with TuxMate. It’s a web-based tool that lets you pick your apps from a visual catalog, and then builds the correct install command for you automatically. You can think of it as the Linux equivalent of Ninite on Windows.
To use it, head over to TuxMate, select Ubuntu (or whichever distro you’re using) from the distro dropdown, and start browsing the catalog. Apps are organized into 16 categories, from browsers and communication apps to AI and CLI tools. Select the ones you want and TuxMate will automatically generate a terminal command to install all those apps. It can also generate a bash script to install those packages, if that’s what you prefer.
The main limitation of using TuxMate is the catalog itself. It has 200+ apps which cover all the essentials—but if you want some niche and underrated software, there’s a good chance it won’t be listed there. As a result, you’ll be forced to handle those installs separately.
Furthermore, like before, not all apps will be available in the APT repository. TuxMate does support Flatpaks and Snaps, but you can’t use it to generate a single command or bash script that installs all the apps. As such, it won’t really be a “one-shot” install for all your apps.
Here’s How I Batch Install All My Old Apps When Switching Linux Distros
Save yourself some time by using these simple commands.
Your next fresh install just got a lot shorter
Setting up a fresh Ubuntu install doesn’t have to be a drawn-out affair. Now that you know how to bulk install apps, a fresh Ubuntu install goes from a half-day project to something you can knock out before your coffee gets cold.
8/10
- Operating System
-
Kubuntu 24.04 LTS
- CPU
-
Intel Core Ultra 9 275HX (2.7GHz up to 5.4GHz)
This laptop is purpose-built for developers and professionals who want a Kubuntu Linux-powered portable workstation and gaming platform. It features an Intel processor capable of hitting 5.4GHz and both integrated graphics and a dedicated NVIDIA 5070 Ti GPU for when you need extra power for machine learning or games.



