
Fedora 45 is out, and one of the first things people do on a fresh install is get a proper office suite running. Fedora Workstation doesn’t always include one. Spins, Server installs and minimal builds usually don’t either. Someone opens a .docx from a client, the file manager has nothing to open it with, and the search for a fix starts.
The installation itself takes about a minute. The details around it decide whether the suite behaves well afterward. Which package set did you pull in? Does your language pack match your locale? Do documents from Microsoft Word keep their layout, or does every table shift by three pixels? Is the app sandboxed, or does it have full access to your home directory? On a laptop these questions are cosmetic. On a shared workstation, a terminal server or a document conversion box, they matter.
Fedora 45 reached general availability in early November 2026, after two delays from its original October 20 target. It ships with GNOME 51, KDE Plasma 6.8 and the Linux 7.2 kernel. The Fedora repositories carry the LibreOffice 26.8 series for this release. The package pages show 26.8.1.1 as the stable build and 26.8.2.2 in testing at the time of writing. Those version numbers will keep moving, so check what your own mirror serves.
This guide covers the two supported installation routes (RPM through DNF, and Flatpak), the choices that come after them, a headless setup for servers, and the failures that show up in practice.
Choosing an Install Method
RPM from Fedora repositories versus Flatpak
Fedora gives you two sensible paths. They differ in ways that affect daily use.
| Factor | DNF (RPM) | Flatpak (Flathub) |
|---|---|---|
| Integration with system fonts and themes | Native | Good, but through the sandbox |
| Update path | dnf upgrade with the rest of the OS |
flatpak update separately |
| Disk footprint | Smaller, shares system libraries | Larger, bundles a runtime |
| File access | Full user permissions | Restricted by portals and permissions |
| Headless and scripting use | Straightforward | Awkward, needs flatpak run |
| Version timing | Tied to Fedora’s package cycle | Can follow upstream sooner |
| Rollback | dnf history and downgrade |
flatpak update --commit= |
Use the RPM on workstations you control, and on any machine that does document conversion. The sandbox is the main reason to choose Flatpak: it is useful when a user opens untrusted documents all day, or when you want the newest upstream release without waiting for Fedora packaging.
Don’t install both on the same machine without a reason. Two copies of the suite create two profile directories, two sets of file associations and a long afternoon of wondering why a setting didn’t stick. Pick one.
A quick check before installing
Confirm the release and the state of your system first. A half-updated Fedora produces strange dependency errors that look like LibreOffice problems and aren’t.
cat /etc/fedora-release
sudo dnf upgrade --refresh
If a kernel or glibc update arrives, reboot before continuing. Skipping this step is the most common cause of “package conflicts” reports that vanish after a restart.
Then see whether the suite is already present. Some spins and the Workstation image include parts of it.
rpm -qa | grep -i libreoffice
No output means a clean slate.
Installing LibreOffice with DNF
The full suite in one command
Fedora 45 uses DNF5 as its package manager, and the syntax for ordinary installs is unchanged from older releases.
sudo dnf install libreoffice
That metapackage pulls in the main applications: Writer, Calc, Impress, Draw and Math, plus the core libraries and the English language support. Review the transaction summary before pressing y. The download is usually a few hundred megabytes once dependencies are counted.
Base (the database front end) is split out and needs Java. It is deliberately not part of the default install on many systems. If you want it, add it explicitly (the next section covers this).
Picking only what you need
Not every machine needs the whole suite. A kiosk, a lightweight VM or a container that only converts spreadsheets can do with far less. Fedora splits the suite into per-application subpackages, so you can install them individually:
sudo dnf install libreoffice-writer libreoffice-calc libreoffice-impress
Common subpackages worth knowing:
libreoffice-writerfor word processinglibreoffice-calcfor spreadsheetslibreoffice-impressfor presentationslibreoffice-drawfor diagrams and PDF editinglibreoffice-mathfor formula editinglibreoffice-basefor database work
To see what is available on your mirror:
dnf search libreoffice
The Fedora package pages confirm this split, listing separate entries such as libreoffice-writer and a long run of libreoffice-langpack-* packages. A smaller install trims attack surface, shortens update times and saves disk space on constrained systems. In a fleet of 200 thin clients, that adds up.
Adding Base and Java support
If users need the database component, or macros that rely on Java, install both:
sudo dnf install libreoffice-base java-latest-openjdk
You can check whether LibreOffice sees the runtime from Tools > Options > LibreOffice > Advanced. If the Java list is empty, restart the application after installing. If it is still empty, see the troubleshooting section.
Verifying the installation
Don’t assume. Check.
rpm -q libreoffice-core
libreoffice --version
The first command prints the exact RPM build. The second prints the application version. Mismatches between them usually mean an old Flatpak or a manually unpacked tarball is shadowing the system package earlier in your PATH. That does happen.
To confirm where the binary is coming from:
which -a libreoffice soffice
Then launch it from the terminal once, instead of the app grid. Terminal launch prints warnings that the GUI hides, and a first run is the best time to see them.
libreoffice --writer
Installing LibreOffice as a Flatpak
Setting up Flathub
Fedora Workstation ships with Flatpak support. Flathub may be enabled during first-boot setup, depending on how you configured third-party repositories. On Server or minimal installs, set it up yourself:
sudo dnf install flatpak
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Installing and running
flatpak install flathub org.libreoffice.LibreOffice
flatpak run org.libreoffice.LibreOffice
Updates come through Flatpak, not DNF:
flatpak update
Sandbox permissions that bite people
The sandbox is the whole point. It is also the source of the classic complaint: “LibreOffice can’t see my external drive” or “my network share doesn’t show in the file dialog.”
Inspect and adjust permissions with:
flatpak info --show-permissions org.libreoffice.LibreOffice
flatpak override --user --filesystem=/mnt/shared org.libreoffice.LibreOffice
Grant only the paths required. Handing it --filesystem=host removes most of the isolation you chose Flatpak for. On a shared box, a narrow override such as a single project directory is the sensible default.
To see what was overridden later:
flatpak override --user --show org.libreoffice.LibreOffice
Fonts are the other friction point. The Flatpak sees system fonts through a read-only path, but not everything shows up. If a custom font in ~/.local/share/fonts is missing, run fc-cache -f and restart the app.
After Installation: Settings That Matter
Language packs and spell checking
By default you get English. Indonesian, German, Brazilian Portuguese and dozens more ship as separate packages. Fedora’s naming is consistent: libreoffice-langpack- followed by the language code. The package pages list examples such as libreoffice-langpack-pt-BR, -hu, -tr and -te.
sudo dnf install libreoffice-langpack-id
sudo dnf install hunspell-id
The second line adds the spell-check dictionary. People often install the interface translation and then wonder why spell check still flags every word. The dictionary is a separate package, and the interface language doesn’t change the document language. For documents, set the language under Tools > Options > Language Settings > Languages.
To switch the UI language, go to Tools > Options > Language Settings > Languages > User interface, and restart. If the language isn’t in the dropdown, the langpack isn’t installed.
Fonts: the real compatibility story
Layout fidelity with Microsoft Office documents is mostly a font problem, not a LibreOffice problem. If a document uses Calibri and the machine lacks it, a substitute with different glyph widths takes over, and every line break shifts.
Install the metric-compatible families:
sudo dnf install google-carlito-fonts google-crosextra-caladea-fonts liberation-fonts
fc-cache -f
Carlito matches Calibri’s metrics, Caladea matches Cambria, and the Liberation set covers Arial, Times New Roman and Courier New. Metric compatibility means the page reflows the same way even though the letterforms differ slightly. For a client who sends forty-page contracts and checks the page count, this is the difference between a smooth exchange and an angry email.
Confirm what fontconfig resolves:
fc-match Calibri
fc-match Cambria
Both should return Carlito and Caladea respectively.
Setting default file associations
On GNOME, open Settings > Apps > Default Apps, or set associations from the shell. For example, to make .docx open in Writer:
xdg-mime default libreoffice-writer.desktop application/vnd.openxmlformats-officedocument.wordprocessingml.document
xdg-mime default libreoffice-calc.desktop application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
xdg-mime default libreoffice-impress.desktop application/vnd.openxmlformats-officedocument.presentationml.presentation
Verify with:
xdg-mime query default application/vnd.openxmlformats-officedocument.wordprocessingml.document
For a Flatpak install, the desktop file names differ, so check flatpak list and the exported entries under /var/lib/flatpak/exports/share/applications/.
Default save format and autosave
In an office with mixed software, saving in .docx and .xlsx by default saves a lot of friction. Set it under Tools > Options > Load/Save > General. Turn on “Save AutoRecovery information every” and set it to a short interval, say five minutes. On a laptop that sleeps unpredictably, that setting has rescued more work than any backup policy.
Running LibreOffice Headless on a Server
Why bother
Many production environments never open the GUI. They use LibreOffice as a converter: invoices to PDF, uploaded .docx files to previews, spreadsheets to CSV. A web application hands a file to a worker, the worker calls soffice, and a PDF comes back.
A minimal install is enough for this:
sudo dnf install libreoffice-writer libreoffice-calc libreoffice-impress
If you need only a single format family, install only that subpackage. Less code on the box is less to patch.
A basic conversion
soffice --headless --convert-to pdf --outdir /srv/out /srv/in/report.docx
Batch several files in one invocation, which saves startup time:
soffice --headless --convert-to pdf --outdir /srv/out /srv/in/*.docx
Concurrency, profiles and why conversions hang
This is where real-world experience matters. A single LibreOffice user profile is not safe for parallel instances. Launch two conversions at once with the same profile and one will silently do nothing, or hang while it waits on a lock. The logs are rarely helpful.
The fix is to give each worker its own profile directory:
soffice -env:UserInstallation=file:///tmp/lo_worker1 --headless --convert-to pdf --outdir /srv/out /srv/in/a.docx
For heavy traffic, run a small pool of long-lived listeners instead of paying the startup cost per request. A cold start of the suite can take one to three seconds on modest hardware. Under a traffic spike, say a month-end billing run with thousands of documents, that cost multiplies quickly. Queue the jobs, cap the number of concurrent workers, and add a timeout:
timeout 120 soffice -env:UserInstallation=file:///tmp/lo_w2 --headless --convert-to pdf --outdir /srv/out /srv/in/big.xlsx
A runaway conversion on a malformed spreadsheet can hold a CPU core and gigabytes of RAM until something kills it. A timeout is a cheap safeguard. A systemd unit with MemoryMax= and CPUQuota= is a better one.
Hardening the conversion service
Treat every uploaded document as hostile. Office files can carry macros, external links and malformed structures aimed at parsers.
- Run the worker as a dedicated unprivileged user with no login shell.
- Disable macro execution. In the profile, set the macro security level to Very High, or ship a locked-down
registrymodifications.xcu. - Use systemd sandboxing options such as
ProtectSystem=strict,PrivateTmp=yes,NoNewPrivileges=yesandReadWritePaths=limited to the working directories. - Block outbound network access for the unit with
IPAddressDeny=anywhere document links should never be fetched. - Keep SELinux in enforcing mode. Fedora ships it that way, and disabling it to quiet one denial is a poor trade.
A sample unit fragment:
[Service]
User=lo-worker
PrivateTmp=yes
ProtectSystem=strict
ProtectHome=yes
NoNewPrivileges=yes
ReadWritePaths=/srv/out /var/tmp/lo
MemoryMax=2G
CPUQuota=150%
IPAddressDeny=any
Test this with a real sample set before relying on it. Overly strict sandboxing can break font loading or temp-file creation, and you want to learn that in staging.
Updates, Rollbacks and Maintenance
Keeping the suite patched
With the RPM install, LibreOffice updates arrive with everything else:
sudo dnf upgrade --refresh
Check available updates without applying them:
dnf check-upgrade
Security fixes in document parsers are routine, so don’t let a conversion server sit unpatched for months. Enable automatic updates through dnf5-plugin-automatic or your configuration management tool, or schedule a weekly maintenance window. Choose whichever fits the machine’s role.
The upstream project also keeps maintenance releases flowing. The 26.2 series, for instance, just reached its final update with 26.2.7, which fixed 20 bugs. Fedora 45 itself tracks the 26.8 branch, so the maintenance cadence you see in DNF follows that line.
Rolling back a bad update
Occasionally, a new build introduces a regression in a feature you depend on. Fedora makes recovery manageable.
dnf history list
sudo dnf history undo <transaction-id>
Or downgrade a single package set:
sudo dnf downgrade 'libreoffice-*'
Downgrades only work if the older build is still available in the repositories or your local cache. Don’t count on it for long. For production, keep a local mirror or a snapshot (Btrfs snapshots are native on Fedora Workstation’s default layout) so you can revert on your own schedule.
Removing LibreOffice cleanly
sudo dnf remove 'libreoffice*'
sudo dnf autoremove
User settings live in your home directory, not in the package. To wipe them as well:
rm -rf ~/.config/libreoffice
Back up first if you have custom macros, templates or dictionaries. For a Flatpak, the equivalent is flatpak uninstall --delete-data org.libreoffice.LibreOffice.
Troubleshooting Common Problems
“Nothing provides…” or dependency conflicts
Usually a stale metadata cache or a partial upgrade.
sudo dnf clean all
sudo dnf upgrade --refresh
sudo dnf install libreoffice
If the conflict names a third-party repository package (RPM Fusion, Copr, or a vendor repo), disable that repo temporarily to test:
sudo dnf install libreoffice --disablerepo=<repo-id>
The application won’t start, or crashes at launch
Corrupt profiles cause more launch failures than broken installs. Try safe mode first:
libreoffice --safe-mode
It offers to reset the user profile in pieces. If that doesn’t help, rename the profile directory and let the app rebuild it:
mv ~/.config/libreoffice ~/.config/libreoffice.bak
Check the journal for crashes and graphics errors:
journalctl --user -b | grep -i soffice
If the crash happens right after the window appears, disable hardware acceleration by setting SAL_USE_VCLPLUGIN=gen for a test launch, or toggle Skia off from safe mode.
Missing menu items or “Java is required”
Install the runtime and restart:
sudo dnf install java-latest-openjdk
Then go to Tools > Options > LibreOffice > Advanced and select the JRE. Only Base and a handful of extensions truly need it, so don’t install Java just to quiet a warning you can ignore.
Documents look wrong compared to Word
Check fonts first, using fc-match as shown earlier. Next, look at compatibility options in Tools > Options > LibreOffice Writer > Compatibility. If the layout still differs, save the original as .docx again from Word with fonts embedded, or ask the sender for a PDF when exact pagination matters.
Flatpak cannot access files or drives
Review permissions with flatpak info --show-permissions and add the required path. If a document opens but won’t save to the target folder, the portal may be blocking write access, and an override fixes it.
Headless conversion produces no output
Work through the usual suspects in order:
- Another instance holds the same profile. Use a unique
-env:UserInstallationper worker. - The output directory doesn’t exist or isn’t writable by the service user.
- SELinux denied the write. Check
sudo ausearch -m avc -ts recent. - The process was killed for running out of memory. Check
journalctl -k | grep -i oom. - A zombie
soffice.binfrom a previous run is hanging around. Usepgrep -a sofficeand clean up.
SELinux denials
Don’t turn SELinux off. Read the denial, then decide.
sudo ausearch -m avc -ts recent
sudo sealert -a /var/log/audit/audit.log
Most issues come from custom paths. Label them properly with semanage fcontext and restorecon rather than loosening policy.
Spell check or language problems
Confirm both the langpack and the Hunspell dictionary are installed. Then check the document’s language attribute, which overrides the global setting. If you’re working with mixed-language text, set the character language per paragraph or style.