Tools for Linux Distro Hoppers
Tags: linux, virtualmachine, container
Published: 2024-03-27 14:56:11

Linux is one of the most popular operating systems (technically, Linux is just the Kernel) and has many types (distribution/distro). It may be unclear to choose which one to use, from beginner-friendly distro to those used for special needs.
Linux users who use Linux as a daily driver usually have tried a lot of distros before sticking to one.

## Distro Hoppers
Distro Hoppers is a term for users who often change distros regularly. The reason can vary: try new challenges, different features and different purposes of the distro. Distro hopping is sometimes considered bad because it requires much time and offers little benefit.
![Use linux](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kx1v9hq6rgdk5n7dkfxh.png)



This article will discuss tools and advice for Distro Hoppers.

## Virtual Machine: Virtualbox / KVM
![Virtualbox In Action](https://i.ibb.co/yP4Qzvf/image.png)
The virtual Machine application is useful for trying the Linux distro before you even consider installing it or burning it on your flash disk. It is important to have a taste before installing it so you're not wasting so much time if you don't like the distro in the first place. 

## Backups
![Storage Providers](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d2lmnwgnnk85qmj4kezd.png)

Backup is important to prevent data loss after installing a new Linux distribution. There are several ways.
- Using backup tools, e.g. [rsync](https://en.wikipedia.org/wiki/Rsync), [Timeshift](https://community.linuxmint.com/software/view/timeshift), etc. 
- Separate partition for data, or separate partition for `/home` directory. With this approach, you must mount that partition after installing the new distribution.
- Save all data to the cloud. Several [providers](https://linuxstans.com/best-cloud-storage-linux/) are out there, e.g., pCloud and MEGA. Just remember only to use a provider that has a Linux Client app.

I recommend the last approach because saving important data on a local computer is not good practice.

## USB Bootable: Ventoy
![Ventoy In Action](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3qr76swp2gktbzb45pfi.png)
[Ventoy](https://www.ventoy.net) is an open-source tool to create a bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI files. Using Ventoy, we can create live USB for multiple distros in one flash disk. This is a revolutionary feature compared to other tools, e.g., Etcher, Rufus, etc, that can only create one live USB at a time.
This tool is so important. Don't call yourself a distro hopper if you don't know this tool. 

## Package Manager: Flatpak

![Flatpak](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ezlg4eoyem8x1x1oyqot.png)

Hopping from one distro to another with a different package manager might require some time to adapt. Using a package manager that can be installed on most distro is one way to help you get to work faster. [Flatpak](https://flatpak.org/) is one of them; other alternative are [Snap](https://snapcraft.io/), [Nix](https://nixos.org/) or [Homebrew](https://brew.sh/). Flatpak is a good starter, and if you have a bunch of free time, I suggest trying Nix.

## Development: Docker with DevContainer
If you are using Linux, I think it's safe to assume that your job is somewhat related to programming. Setting up a development environment for a Software Engineer can be a hurdle. The development environment might require installing many tools, e.g., programming language, database, monitoring tools, etc. 
Docker with DevContainer is one of the fastest solutions to create a development environment faster, even after hopping from several distros.

![DevContainer](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rn5jj2m29i33xwlv239v.png)
[Docker](https://www.docker.com/) is a containerization tool that ships your app with all the necessary dependencies. Using [DevContainer](https://containers.dev/overview)  makes developing software inside a container possible. Several editors, e.g., Visual Studio Code and JetBrains, already support DevContainer. If you use other editors like VIM or Helix, you might develop software directly inside the container or need to find another workaround. But if you are too lazy to configure VIM like me, use VSCode. 

## Honorable Mentions
#### Distrobox
[Distrobox](https://github.com/89luca89/distrobox) is a tool that enables us to try Linux distro CLI, including their package manager. This requires a containerization tool (e.g., Docker). In Windows, this can be achieved using WSL (Windows Subsystem for Linux)
![Distrobox In Action](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qlycaydkulld709ggp00.png)
#### EasyBCD
[EasyBCD](https://neosmart.net/EasyBCD/) is a Windows app that can modify the Bootloader if you dual-boot with Windows. I use this tool to remove Linux Grub when distro hopping.
![EasyBCD](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jzz7ip8miny4azrx2ejy.png)

## Conclusion
Distro Hopping is not always bad, especially if you want to learn something new. Do this responsibly so it doesn't bother your work or your time with family. Utilize the tools above to minimize the time wasted, or even better if there is a separate computer just for that. 

OK, that's all for now. I hope you gain some insight and become better Distro Hoppers.

Thank you.