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.

Hello, I have a similar issue:
System: WSL2, Ubuntu 24.04.3 LTS

TL;DR: I’m missing libxml2.so.16

I upgraded from Ubuntu 22… to Ubuntu 24.04.3 LTS today (in order to upgrade the R language from 4.0 to 4.5).
After that I had to reinstall R and all my required R packages. during this some packages all failed with the common error:

unable to load shared object ‘/home//R/x86_64-pc-linux-gnu-library/4.5/00LOCK-igraph/00new/igraph/libs/igraph.so’:
libxml2.so.16: cannot open shared object file: No such file or directory

I then found this post and tried sudo ldconfig -p | grep libxml2 which gives:

libxml2.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libxml2.so.2
libxml2.so (libc6,x86-64) => /lib/x86_64-linux-gnu/libxml2.so

When I tried to make the symlink with:
sudo ln -s /lib/x86_64-linux-gnu/libxml2.so.2 /lib/x86_64-linux-gnu/libxml2.so.16

Now just get a different Error for my R package installation:

unable to load shared object ‘/home//R/x86_64-pc-linux-gnu-library/4.5/00LOCK-xml2/00new/xml2/libs/xml2.so’:
/home//R/x86_64-pc-linux-gnu-library/4.5/00LOCK-xml2/00new/xml2/libs/xml2.so: undefined symbol: xmlNewInputFromMemory

I hope this is enough information on the problem, otherwise I of course will add more

best regards,
Max

In my case (without disclosing the title of the affected application):

/opt/⋯/⋯/⋯: error while loading shared libraries: libxml2.so.2: cannot open shared object file: No such file or directory
grahamperrin@mowa219-gjp4 ~ [127]> sudo ldconfig -p | grep libxml2
        libxml2.so.16 (libc6,x86-64) => /lib/x86_64-linux-gnu/libxml2.so.16
        libxml2.so.16 (libc6) => /lib/i386-linux-gnu/libxml2.so.16
grahamperrin@mowa219-gjp4 ~> file /lib/x86_64-linux-gnu/libxml2.so.16
/lib/x86_64-linux-gnu/libxml2.so.16: symbolic link to libxml2.so.16.0.5
grahamperrin@mowa219-gjp4 ~> file /lib/x86_64-linux-gnu/libxml2.so.16.0.5
/lib/x86_64-linux-gnu/libxml2.so.16.0.5: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=d3ed6bb8b6922e8cc74801d7087de9e405d1d04c, stripped
grahamperrin@mowa219-gjp4 ~> sudo ln -s /lib/x86_64-linux-gnu/libxml2.so.16.0.5 /lib/x86_64-linux-gnu/libxml2.so.2
grahamperrin@mowa219-gjp4 ~> grahamperrin@mowa219-gjp4 ~> lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 25.10
Release:        25.10
Codename:       questing
grahamperrin@mowa219-gjp4 ~> date ; uptime
Mon Dec 22 11:11:21 GMT 2025
 11:11:21 up  1:01,  2 users,  load average: 4.97, 4.84, 4.32
grahamperrin@mowa219-gjp4 ~> 

Creation of the symbolic link did have the required effect.

1 Like

@shruteek: :folded_hands: Thx for the hint, with the creation of an symlink I was able to start the Omnissa Horizon Client on an fresh Vanilla Ubuntu 25.10! :+1: