Wine is an incredible piece of technology that has been enabling users to run Windows apps on Linux for years. Thanks to contributions by Valve through the Proton project, Wine has evolved massively in recent years, and a lot of games are now playable on Linux this way, with a lot of apps also being functional this way.
But while Wine is great in itself, Bottles is really how you should be running Windows apps on Linux. It’s more reliable, cleaner, and it can properly support more apps.
Wine is complicated
Newer isn’t always better
As you can probably imagine, running Windows apps on Linux isn’t easy, and thus Wine is truly impressive based on the fact that it works at all. Translating Windows calls to POSIX calls that Linux can understand in real-time is an impressive feat, and considering so many apps have custom UI frameworks and everything, it’s nearly impossible to ensure all of them work.
As Wine keeps evolving, it can improve support for a lot of apps, but this is a complex piece of technology, and apps themselves can vary wildly in their design, which means in some cases, a newer version of Wine may actually be worse for running a specific app. Some things may stop working altogether, or new glitches may be introduced. There’s a lot more that can go wrong compared to just running a native Linux version of an app.
If you just install Wine using your distro’s package manager, that’s the version of Wine that will be used for all your apps, and while some may perform better with newer versions of Wine, others might not. Having a single Wine install as the central point of failure for your Windows apps can cause problems, and that’s where Bottles comes in.
Wine has been translating Windows games to Linux since 1993, but Proton is what made it effortless
Wine is the foundation that makes gaming on Linux possible.
Bottles is a container for Wine
The name doesn’t lie
The idea behind Bottles is that specific versions of Wine can often be better for compatibility with specific apps, so the ideal solution is to have each app use a version of Wine that works the best for that specific app. Instead of using a system-wide Wine installation, Bottles creates containers for each app you want to run, and each of these containers can run its own version of Wine, with its own Windows file system, and its own dependencies.
Bottles lets you choose from a wide range of Wine versions to run a specific app, as well as enable all kinds of tricks and features that may help run that specific app. Bottles itself offers a series of installers available out of the box, so you can run apps like FL Studio, Ableton Live, Evernote, and numerous games and game launchers on Linux with confidence and a relatively easy setup process.
For others, you may have to look around based on the program you want to run. For example, a while back I was trying to run Clip Studio Paint on Linux, and I found this GitHub page with detailed instructions on how to install the app using Bottles, which involved setting custom runners and features to make the app work correctly. The official Wine website also has a database of apps and settings you might want to try for a wide range of Windows apps.
11 Linux apps Windows refugees need to know about
Scared of ditching Windows? These Linux apps make things so much easier
Because all of these things are defined for each bottle, you can have multiple Wine setups with separate file systems and dependencies installed, and they don’t affect each other in any way. Every bottle is fully self-contained so that things like Wine Gecko have to be setup separately as well. However, you can add more than one app to a single bottle, so if you have multiple apps that need to work together and they all function under the same Wine settings, you can keep them within the same Wine container.
Recent versions of Bottles also come with Eagle, a tool that scans your Windows apps for all kinds of information, from graphics to audio and required runtimes, and it analyzes everything to determine the best Wine setup to run that particular app. For many apps, this can greatly speed up the process of ensuring compatibility with your Linux system, so you don’t have to spend time hunting down solutions or trying things yourself over and over. This is still considered a beta, though, so your results may not always be ideal.
You can experiment, too
Easy backup and restore
Something else that’s great about Bottles is that you don’t have to worry about updates or changes breaking your containers. You can easily back up your bottles before making any changes and roll back to a previous version if anything goes wrong.
Everything is also isolated from your main system, so if you want to get rid of a specific app or all the Wine files related to it, you can just delete the respective folder in the Bottles directory, and your system is back to being completely clean. Properly disposing of Wine apps can sometimes be challenging, so this makes it easier to keep your system clean, no matter how much experimenting you need to do.
How I use Btrfs snapshots to make my Linux system practically bulletproof
Say goodbye to the fear of system-breaking updates with this game-changing Linux feature.
Bottles is the best way to use Wine
If you’re running Windows apps on Linux through Wine, Bottles is easily the way to do it. You can tailor the Wine configuration for each specific app you need to run, isolate different configurations so they don’t interfere with each other, and easily create snapshots so you can always go back to a functional state. There’s next to no downside to this approach, so if you have any apps requiring Wine, I can’t recommend anything else as your first step.
- OS
-
Linux
- Platform(s)
-
Flatpak







