PSA: Ubuntu 25.10 features a libxml2 version with API breaking changes

Hello, I noticed that Ubuntu 25.10 ships a libxml2 version with a upstream breaking change(libxml2.so.2 → libxml2.so.16) that renders external apps that don’t ships the old version broken(e.g. the DEB distribution from LibreOffice upstream project):

$ libreoffice25.8 
/opt/libreoffice25.8/program/javaldx: error while loading shared libraries: libxml2.so.2: cannot open shared object file: No such file or directory
/opt/libreoffice25.8/program/soffice.bin: error while loading shared libraries: libxml2.so.2: cannot open shared object file: No such file or directory

See Releases · GNOME / libxml2 · GitLab for more info regarding the breaking change.

If you haven’t upgrade to 25.10 yet and are using pre-built software that may depend on libxml2(note that due to various reasons they might not bundle that library in their distribution), this might be the reason to stay at your current version or downgrade to 24.04 LTS.

We might need to add an entry in the 25.10 release notes as well.

Hi, I am also encountering this issue after upgrading to Ubuntu 25.10 on an ASUS Zenbook S14 running Gnome on Wayland. When I attempt to launch the Cisco SecureClient AnyConnect VPN from the command line (gtk-launch com.cisco.secureclient.gui), I get error while loading shared libraries: libxml2.so.2: cannot open shared object file: No such file or directory. Is there any temporary symlink fix we can use? It seems Arch users faced a similar issue in May: https://forum.manjaro.org/t/something-about-missing-libxml2-so-2/177504/4

Edit: There is a temporary fix, but I am not confident this is clean.

  1. Locate where your libxml2.so.2 file is supposed to be with: sudo ldconfig -p | grep libxml2. One of the output lines should say: libxml2.so.16 (libc6,x86-64) => /PATH/libxml2.so.16. Note the path in that line.
  2. Create a symlink for that file like so: sudo ln -s /PATH/libxml2.so.16 /PATH/libxml2.so.2
    This should immediately take effect, without restarting Gnome or your computer.

No that does not work for me, I got undefined symbol: __xmlParserVersion after creating that symlink.

I managed to solve the problem by manually extracting libxml2.so.2 from the Plucky repository (libxml2_2.12.7+dfsg+really2.9.14-0.4_amd64.deb) in another library location on my system (mainly used for manually compiling packages for testing or other purposes). Then after running ldconfig everything worked as expected.

This is (in my regard) merely a workaround, not a permanent solution.