One of the biggest problems with universal packages like Snap, Flatpak and AppImage is managing them. Most built-in package managers do not support all of these new formats.
Thankfully, I stumbled across an application that supports several universal package formats.
Bauh – a Manager for Your Multi-Package Needs
Originally named fpakman, bauh is designed to handle Flatpak, Snap, AppImage, and AUR packages. Creator vinifmor started the project in June 2019 with the intention of “giving a graphical interface to manage Flatpaks for Manjaro users.” Since then, he has expanded the application to add support for Debian-based systems.
When you first open bauh, it will scan your installed applications and check for updates. If there are any that need to be updated, they will be listed front and center. Once all the packages are updated, you will see a list of packages you have installed. You can deselect a package with updates to prevent it from being updated. You can also choose to install a previous version of the application.
aptitude
package installed. To do that, just run in the terminal: sudo apt install aptitude
.You can also search for applications. Bauh has detailed information for both installed and searched packages. If you are not interested in one (or more) of the packaging types, you can deselect them in the settings.
Installing bauh on your Linux distribution
Let’s see how to install bauh.
Arch-based distributions
If you have a recent installation of Manjaro, you should be all set. Bauh comes installed by default. If you have an older install of Manjaro (like I do) or a different Arch-based distro, you can install it from the AUR by typing this in terminal:
yay -S bauh
Recommended Read
Debian/Ubuntu-based distributions
If you have a Debian or Ubuntu-based Linux distribution, you can install bauh with pip. First, make sure to install pip on Ubuntu. Also, install several required dependencies using the command:
sudo apt-get install python3 python3-pip python3-yaml python3-dateutil python3-pyqt5 python3-packaging python3-requests
There are also several optional dependencies, which you can take a look at the official documentation.
And then use pip to install bauh:
sudo pip3 install bauh
However, if you want to install it manually in an isolated setup to avoid messing up your system’s libraries, you can do that as well.
Isolated Installation
For isolated installation of bauh, you have to first download the latest release. Once you download it, you can unzip using a graphical tool or the unzip command. Next, open up the folder in your terminal. You will need to use the following steps to complete the installation.
First, create a virtualenv in a folder called bauh_env:
python3 -m venv bauh_env
Now install the application code inside the env:
bauh_env/bin/pip install bauh
And launch the application:
bauh_env/bin/bauh
Once you finish installing bauh, you can fine-tune it by changing the environment setting and arguments.
For other distributions
bauh project provides an AppImage packaging for their application. So, you can download the AppImage from their releases page on GitHub.
There are a couple of dependencies you need to properly run the AppImage.
fuse
: the package name may vary from distribution (libfuse2 in Ubuntu).qt5dxcb-plugin
(or equivalent): the package name may vary from distribution (qt5dxcb-plugin in Ubuntu).
Recommended Read
Here is how you can run and manage AppImages in Linux.
Open the AppImage file, and the click on the bottom-right settings menu.
From the dropdown menu, select Install bauh to create a desktop entry for the application.
Managing applications with bauh
Once you have installed the application, you can use it for most of the usual package management purposes like installing packages, updating them, removing packages etc.
Installing applications
To install an application, first search for it using the search button. Press enter to start a search.
You will get a list of packages, that match the name, from all the sources you have configured.
Click on the “Install” button corresponding to a particular packaging format of your choice.
If it is either a snap or native deb package, you will be asked to enter the password. Enter it when prompted.
Install an AppImage File
If you have an AppImage file in hand, you can install it using bauh. First, open bauh and click on the hamburger menu on the bottom-right. From that, select “Install AppImage File”.
In the next window, select the AppImage file on your system by clicking on the field near “File”.
From the file chooser, select the AppImage file. It will automatically fill the other fields. You can select a category from the dropdown list. Now click on “Proceed”.
The app will be installed, and you can open it from the system menu.
Install a Web Application
Apps, like Facebook, ChatGPT, etc. are available to install on your system. Search for an app, and then install it as usual using the “Install” button.
On the next screen, it will show the installation details. You can set the permissions for the app here.
Verify the permissions and options and click on Continue. This will ask you to install the required dependencies. Check those and click on Continue.
It will download and install the selections.
Removing applications
On the home page of bauh app, all the installed apps will be listed. You can uninstall an app by clicking on the “Uninstall” button.
Downgrade an application
Applications installed as Snap or Flatpak format can be downgraded to a previous release using bauh.
First, you need to click on the menu button corresponding to the app that you want to downgrade and select “History”.
This will show a history of commit for that application, along with the available versions listed neatly.
Close this window, and from the same menu button, select “Downgrade”.
It will ask for a confirmation, and accept it. The app will be downgraded, and you will be prompted that there is an available update.
You can pause the auto-update to this app along with the system update, by using the “Ignore Updates” button.
You can revert this status anytime.
Bonus: Access Settings and theme the App
In order to manage the bauh app settings, click on the settings gear on the bottom-right of the app.
It provides a comprehensive tweaking of both apps, update policies and per source settings.
Similarly, you can change the appearance of bauh using the preinstalled themes. Click on the themes button and select the required appearance style.
The road ahead for bauh
Bauh has grown quite a bit in a few short months. It plans to continue to grow. The current road map includes:
- Support for other packaging technologies
- Separate modules for each packaging technology
- Memory and performance improvements
- Improve user experience
Final thoughts
Have you ever used bauh? What is your favorite tool to manage different package formats if there is one? Let us know in the comments below.
If you found this article interesting, please take a minute to share it on social media, Hacker News or Reddit.