DEV Community

Bruno Haible
Bruno Haible

Posted on

Ubuntu / Kubuntu 26.04 without snap programs

Some important applications, such as Firefox, Thunderbird, Chromium, VLC, come as "snaps" in Ubuntu. This is a packaging format, like Flatpak or AppImage, that contains an entire application for a Linux operating system.

These three packaging formats have different uses: While some distros bet on Flatpak, Ubuntu is unique in betting on Snap. AppImage is more for app vendors that want to publish their app without favouring any particular Linux distro.

My experience with snaps is entirely negative: It is all related to the fact that it messes around with the file system.

1) On my disk, I have a /data partition for storing things outside $HOME. Snaps don't work with this:

  • When I create an HTML file under data, for instance as part of some build process, firefox /data/..../file.html tells me that it cannot access the file. Likewise for Chromium. I have to use another browser, such as konqueror or falkon in order to view an HTML file on my disk!
  • I have a symlink $HOME/Videos -> /data/Videos. When a video file is in this directory, vlc cannot open it when I pass the file name on the command line, and I cannot pick the file from vlc's file chooser either. I have to move the video file into $HOME/ in order to view it!
  • I have a symlink $HOME/Downloads -> /data/Downloads. Even through I specified to Firefox that it should save downloads in this directory, it never did: it stored them sometimes under $HOME/snap/firefox/common/ and sometimes under /run/user/1000/doc/by-app/snap.firefox/ in a directory where the file magically appears and magically disappears.

2) The snaps have a file chooser (file selector box) that is different from the native one (KDE's file selector). This is disturbing for the user. Additionally, this file chooser presents the home folder under different names: Home and I18N_something.

3) The browser's data files (bookmarks, session store, etc.) are no longer under $HOME/.mozilla/firefox/, they are under $HOME/snap/firefox/common/.mozilla/firefox/.

The worst thing is that these bugs don't get fixed over the years. You wait for two years, for the next Ubuntu LTS release, and they are still present.

And then there's the fact that Snaps, like Flatpak and AppImage, consume more memory because there are multiple copies of the shared libraries of the GUI toolkit in memory: one copy for the packages that use the distro's native packaging format, and another copy for the packages in snaps. Whereas one of the reasons to use Linux (as opposed to other operating systems) is that it's memory efficient.

Therefore, I don't want to use this garbage any more.

First, remove snaps that contain user programs:

# snap list
# snap remove firefox thunderbird
Enter fullscreen mode Exit fullscreen mode

Then, install a fallback browser, just as a backup, for the day when Firefox breaks due to an automatic upgrade.

# apt install falkon
Enter fullscreen mode Exit fullscreen mode

Prepare for installing Flatpaks. I did not end up installing Flatpaks in the end, but it's a better fallback that nothing at all or Snaps.

# apt install flatpak
# flatpak remote-add flathub https://dl.flathub.org/repo/flathub.flatpakrepo

Enter fullscreen mode Exit fullscreen mode

Prepare for installing Debian 13 packages.

# apt install binutils
Download package from https://packages.debian.org/trixie/debian-archive-keyring.
# ar x debian-archive-keyring_2025.1_all.deb
# tar xf data.tar.xz
# mv -i usr/share/keyrings/debian-archive-* /usr/share/keyrings/
Create file /etc/apt/sources.list.d/z-debian.sources:
-----------------------------------------------------------
### Debian 13
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates trixie-backports
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

## Debian security updates. Aside from URIs and Suites,
## this should mirror your choices in the previous section.
Types: deb
URIs: http://security.debian.org/debian-security
Suites: trixie-security
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
-----------------------------------------------------------
# apt update
Enter fullscreen mode Exit fullscreen mode

Install firefox (from the Debian repositories).

# apt remove firefox
# apt install firefox-esr
Enter fullscreen mode Exit fullscreen mode

Install Chromium (from the Debian repositories).

# apt install chromium
Enter fullscreen mode Exit fullscreen mode

Hide the Debian 13 packages again:

# mv /etc/apt/sources.list.d/z-debian.sources /etc/apt/sources.list.d/z-debian.sources.mine
# apt update
Enter fullscreen mode Exit fullscreen mode

That's it. It wasn't that hard, after all.

Top comments (0)