Removing leftover packages from Fedora Kinoite

I’m trying out immutable Fedora for the first time. I installed Kinoite recently. I normally use XFCE, so I had to install a few additional applications to get what I’m used to. So I installed evince, it pulled in quite a few TeXLive packages, I didn’t bother at the moment. System updates were taking a lot of time, then I learned layered packages can slow down the update process. So I uninstalled evince. Normally I would do dnf history undo <txid>, however I don’t think rpm-ostree has a history command. So I simply did rpm-ostree remove evince{,-{dvi,djvu,previewer}}.

At the time I couldn’t tell, but now I notice while evince has been removed, the texlive-* packages are still hanging around, and I can’t seem to uninstall them.

$ rpm -qa texlive\* | wc -l
70
$ sudo rpm-ostree uninstall -n $(rpm -qa texlive\* --queryformat='%{name} ')
error: Package/capability 'texlive-base' is not currently requested
$ sudo rpm-ostree override remove -n $(rpm -qa texlive\* --queryformat='%{name} ')
error: Package "texlive-base" not found
$ sudo rpm-ostree remove -n $(rpm -qa texlive\* --queryformat='%{name} ')
error: Package/capability 'texlive-base' is not currently requested
$ rpm -q texlive-base
texlive-base-20260301-111.fc44.x86_64

Can someone help me understand what’s going on? My usual Fedora debugging intuition seems to not apply on immutable Fedora.

Dependent packages should be removed when uninstalling the layered package, unless specifically installed (layered). What is the output of rpm-ostree status?

This is what I get. Does this mean some other package is pulling in texlive-*?

$ sudo rpm-ostree status --verbose 
Place your finger on the fingerprint reader
State: idle
AutomaticUpdates: check; rpm-ostreed-automatic.timer: last run 16h ago
Deployments:
● fedora:fedora/44/x86_64/kinoite (index: 0)
                  Version: 44.20260616.0 (2026-06-16T00:33:04Z)
               BaseCommit: b896600018e7275874ed0cd0f420f541415a1d7921c816eb27846b5f8fa8791b
                           ├─ repo-0 (2026-04-22T13:34:32Z)
                           ├─ repo-1 (2026-06-16T00:16:34Z)
                           └─ repo-2 (2026-06-16T00:18:10Z)
                   Commit: 51b5ec4d900bed9bb8d08eb90177d6e938d1b260bb3d35b9441b9f0c8e63394b
                           ├─ copr:copr.fedorainfracloud.org:phracek:PyCharm (2026-06-09T13:40:30Z)
                           ├─ copr:copr.fedorainfracloud.org:wezfurlong:wezterm-nightly (2026-06-16T07:59:47Z)
                           ├─ fedora (2026-04-22T13:34:32Z)
                           ├─ fedora-cisco-openh264 (2026-03-24T10:37:04Z)
                           ├─ rpmfusion-free (2026-04-24T08:33:46Z)
                           ├─ rpmfusion-free-updates (2026-06-12T10:11:21Z)
                           ├─ rpmfusion-nonfree (2026-04-24T08:55:20Z)
                           ├─ rpmfusion-nonfree-nvidia-driver (2026-05-09T15:54:29Z)
                           ├─ rpmfusion-nonfree-steam (2026-04-19T13:29:30Z)
                           ├─ rpmfusion-nonfree-updates (2026-06-09T10:28:24Z)
                           ├─ tailscale-stable (2026-06-12T09:56:02Z)
                           ├─ updates (2026-06-16T00:55:06Z)
                           └─ updates-archive (2026-06-12T01:53:21Z)
                   Staged: no
                StateRoot: fedora
             GPGSignature: 1 signature
                           Signature made Tue 16 Jun 2026 02:34:39 CEST using RSA key ID DBFCF71C6D9F90A6
                           Good signature from "Fedora <fedora-44-primary@fedoraproject.org>"
      RemovedBasePackages: libavdevice-free libavfilter-free libavformat-free ffmpeg-free libswresample-free libavutil-free libswscale-free libavcodec-free 8.1.1-1.fc44
                           noopenh264 2.6.0-4.fc44
          LayeredPackages: airnef atop audacious audacious-plugins bat black btop cgdb cmake conky corectrl dav1d ddrescue emacs fdupes ffmpeg ffmpegthumbnailer fira-code-fonts fzf
                           git-filter-repo git-lfs git-secrets git-subtree gphoto2 gstreamer1-plugin-openh264 hatch htop inxi iotop jc kitty levien-inconsolata-fonts libva-intel-driver
                           libva-utils libvpl-tools litecli lshw-gui mediainfo meld mozilla-openh264 mplayer ncdu neovim nethogs NetworkManager-tui ninja-build nmap oathtool openssl-devel
                           piper pipx powertop pv python3-btchip python3-devel python3-flake8 python3-ipython python3-more-itertools python3-rich python3-virtualenvwrapper qphotorec ripgrep
                           rpmfusion-free-release rpmfusion-nonfree-release smem solaar sysstat tailscale testdisk tig transmission-qt ugrep usbip uv valgrind-gdb vdpauinfo vgrep visidata vlc
                           wezterm wireshark wireshark-cli x264 x265 xclip xorg-x11-drv-intel xorg-x11-drv-wacom xorg-x11-drv-wacom-serial-support zig

  fedora:fedora/44/x86_64/kinoite (index: 1)
                  Version: 44.20260613.0 (2026-06-13T00:44:47Z)
               BaseCommit: d20c893517e19ae64c5d2345963dbce3e97088e4c1bc6a0cc8158c71d3884f21
                           ├─ repo-0 (2026-04-22T13:34:32Z)
                           ├─ repo-1 (2026-06-13T00:17:21Z)
                           └─ repo-2 (2026-06-13T00:19:26Z)
                   Commit: 3d943c7f91dd63de7e15c2bfe9bffdfdaea3ecd4648db87f5f7345facb49ec92
                           ├─ copr:copr.fedorainfracloud.org:phracek:PyCharm (2026-06-09T13:40:30Z)
                           ├─ copr:copr.fedorainfracloud.org:wezfurlong:wezterm-nightly (2026-06-13T06:42:51Z)
                           ├─ fedora (2026-04-22T13:34:32Z)
                           ├─ fedora-cisco-openh264 (2026-03-24T10:37:04Z)
                           ├─ rpmfusion-free (2026-04-24T08:33:46Z)
                           ├─ rpmfusion-free-updates (2026-06-12T10:11:21Z)
                           ├─ rpmfusion-nonfree (2026-04-24T08:55:20Z)
                           ├─ rpmfusion-nonfree-nvidia-driver (2026-05-09T15:54:29Z)
                           ├─ rpmfusion-nonfree-steam (2026-04-19T13:29:30Z)
                           ├─ rpmfusion-nonfree-updates (2026-06-09T10:28:24Z)
                           ├─ tailscale-stable (2026-06-12T09:56:02Z)
                           ├─ updates (2026-06-13T01:06:03Z)
                           └─ updates-archive (2026-06-12T01:53:21Z)
                StateRoot: fedora
             GPGSignature: 1 signature
                           Signature made Sat 13 Jun 2026 02:45:44 CEST using RSA key ID DBFCF71C6D9F90A6
                           Good signature from "Fedora <fedora-44-primary@fedoraproject.org>"
      RemovedBasePackages: libavdevice-free libavfilter-free libavformat-free ffmpeg-free libswresample-free libavutil-free libswscale-free libavcodec-free 8.1.1-1.fc44
                           noopenh264 2.6.0-4.fc44
          LayeredPackages: airnef atop audacious audacious-plugins bat black btop cgdb cmake conky corectrl dav1d ddrescue emacs fdupes ffmpeg ffmpegthumbnailer fira-code-fonts fzf
                           git-filter-repo git-lfs git-secrets git-subtree gphoto2 gstreamer1-plugin-openh264 hatch htop inxi iotop jc kitty levien-inconsolata-fonts libva-intel-driver
                           libva-utils libvpl-tools litecli lshw-gui mediainfo meld mozilla-openh264 mplayer ncdu neovim nethogs NetworkManager-tui ninja-build nmap oathtool openssl-devel
                           piper pipx powertop pv python3-btchip python3-devel python3-flake8 python3-ipython python3-more-itertools python3-rich python3-virtualenvwrapper qphotorec ripgrep
                           rpmfusion-free-release rpmfusion-nonfree-release smem solaar sysstat tailscale testdisk tig transmission-qt ugrep usbip uv valgrind-gdb vdpauinfo vgrep visidata vlc
                           wezterm wireshark wireshark-cli x264 x265 xclip xorg-x11-drv-intel xorg-x11-drv-wacom xorg-x11-drv-wacom-serial-support zig

AvailableUpdate:
       Upgraded: wezterm 20260616_094232_b1cc82bb-0 -> 20260616_160535_95ffc532-0
                 wezterm-common 20260616_094232_b1cc82bb-0 -> 20260616_160535_95ffc532-0
                 wezterm-gui 20260616_094232_b1cc82bb-0 -> 20260616_160535_95ffc532-0
                 wezterm-mux-server 20260616_094232_b1cc82bb-0 -> 20260616_160535_95ffc532-0

Most certainly. You have quite a long list of layered packages. (At least) One of those requires textlive-* packages.

The culprit is package visidata:

$ dnf install --assumeno visidata | grep -Ei 'texlive|dependencies'
Updating and loading repositories:
Repositories loaded.
Installing dependencies:
 texlive-base                  aarch64 12:20260301-111.fc44             updates     21.3 MiB
 texlive-cm                    noarch  12:svn57963-11.fc44              updates      1.0 MiB
 texlive-etex                  noarch  12:svn77830-11.fc44              updates    519.4 KiB
 texlive-graphics-def          noarch  12:svn76719-11.fc44              updates     99.7 KiB
 texlive-gsftopk               aarch64 12:svn52851-111.fc44             updates     78.9 KiB
 texlive-hyph-utf8             noarch  12:svn78069-11.fc44              updates    388.3 KiB
 texlive-hyphen-base           noarch  12:svn78076-11.fc44              updates     83.0 KiB
 texlive-knuth-lib             noarch  12:svn57963-11.fc44              updates     99.9 KiB
 texlive-kpathsea              aarch64 12:svn77861-111.fc44             updates      2.3 MiB
 texlive-lib                   aarch64 12:20260301-111.fc44             updates      1.2 MiB
 texlive-luatex                aarch64 12:svn78218-111.fc44             updates      9.2 MiB
 texlive-plain                 noarch  12:svn75712-11.fc44              updates    109.4 KiB
 texlive-tex-ini-files         noarch  12:svn78524-11.fc44              updates     13.8 KiB
 texlive-texlive-scripts       noarch  12:svn78361-111.fc44             updates    340.4 KiB
 texlive-texlive.infra         noarch  12:svn78313-111.fc44             updates      1.0 MiB
 texlive-unicode-data          noarch  12:svn76413-11.fc44              updates      3.4 MiB
Installing weak dependencies:
 texlive-dvipng                aarch64 12:svn77830-111.fc44             updates    459.7 KiB

Thanks! That worked, didn’t realise that package had a TL dependency!

I’m finding immutable Fedora quite difficult to maintain and remain useful. I do a lot of different kinds of tasks on my computer, the base set of packages is quite inadequate for me. If my choice is between layer lots of packages and expect slow updates and/or debug dependency issues (like this one), or use containers for everything, it becomes quite unusable for me. I guess I’ll give it a few more weeks before giving up.

On the upside, lack of an XFCE image led me to KDE, and I’m liking it a lot so far. So even if I switch back to regular Fedora, I might keep using KDE :slight_smile:

I find atomic desktops a great concept. There might be use cases though, where traditional desktops might be more suitable. You might not need to go that route though, and take advantage of the reliability and rollback options that atomic desktops provide.

I’m on Silverblue, and have switched a couple of releases ago from manual CLI updates back to the (default) automatic updates via GNOME Software, and now I don’t even notice when updates take place and how long they take. I just reboot at least once a week in order to be on the newest deployment.

I usually combine installing packages as follows:

  • layer packages for CLI apps or packages that need tighter integration with the system
  • use containers for testing purposes only, or when it’s not important to be on the latest version of some CLI app
  • all the other GUI apps as Flatpaks.

I noticed that you install GUI apps (e.g. Evince, VLC) on top of the base install as layered packages. Going with some of these as Flatpaks would ease the system updates. And if you go with multimedia apps from Flathub, you don’t even need to layer multimedia codecs and/or remove base packages.

Thanks for your suggestions. I’ll try it your way

Sometimes I need to use ffmpeg on the terminal :frowning: I even have some custom scripts so that I don’t need to remember all the options :stuck_out_tongue: But maybe this is one of the cases that fits this advice:

Thanks again :slight_smile:

If you were interested, one thing you could do is re-use the Flathub ffmpeg. I have a flatpak manifest with these contents:

app-id: zzz.me.ffmpeg
runtime: org.freedesktop.Platform
runtime-version: '25.08'
sdk: org.freedesktop.Sdk
command: ffmpeg-wrapper.sh
finish-args:
  - --filesystem=host
modules:
  - name: ffmpeg-wrapper
    buildsystem: simple
    build-commands:
      - install -D -m 755 ffmpeg-wrapper.sh /app/bin/ffmpeg-wrapper.sh
    sources:
      - type: script
        dest-filename: ffmpeg-wrapper.sh
        commands:
          - exec ffmpeg "$@"

To install it:

flatpak install flathub org.flatpak.Builder
flatpak run org.flatpak.Builder --user --install --force-clean build-dir ./zzz.me.ffmpeg.yaml

So rather than using a command like ffmpeg blah blah blah, it would instead be flatpak run zzz.me.ffmpeg blah blah blah.

Of course it would be annoying to type that out every time, so you could either use a shell alias or a wrapper script so that ffmpeg automatically expands to flatpak run zzz.me.ffmpeg.

Thanks for this really nice tip!

Unfortunately for me, I hit another snag when I needed virtualisation[1]. I think I’ll stop using Kinoite. Immutable distributions are not for me.


  1. I was following this writeup: How to Use Virt Manager on Fedora Atomic, Silverblue, and Kinoite - Easy VM Setup Guide | Zihad Labs. ↩︎