viber was installed using the .rpm file provided on viber.com.
Running zypper search gave this result.
computer:~ # zypper search libxml2
Loading repository data...
Reading installed packages...
S | Name | Summary | Type
---+---------------------+------------------------------------------------------------+--------
i | libxml2-16 | A Library to Manipulate XML Files | package
| libxml2-16-32bit | A Library to Manipulate XML Files | package
| libxml2-devel | Development files for libxml2, an XML manipulation library | package
| libxml2-devel-32bit | Development files for libxml2, an XML manipulation library | package
| libxml2-doc | Documentation for libxml, an XML manipulation library | package
i | libxml2-tools | Tools using libxml | package
| perl-Alien-Libxml2 | Install the C libxml2 library on your system | package
| python311-libxml2 | Python Bindings for libxml2-python | package
| python312-libxml2 | Python Bindings for libxml2-python | package
| python313-libxml2 | Python Bindings for libxml2-python | package
That’s strange. I had a look on my system earlier, but didn’t look to see where it was installed from, and it seems that it was installed sometime previously and is no longer in the repos.
libxml2-devel includes /usr/lib64/libxml2.so, but doesn’t link it to the library indicated. You can try installing that and manually create the link and see if that works (ie, link libxml2.so.2 to libxml2.so in /usr/lib64.)
It seems that installling libxml2-devel showed the way to make viber work manually.
computer:/usr/lib64 # ls -al libxml2*
lrwxrwxrwx 1 root root 17 Aug 27 16:33 libxml2.so -> libxml2.so.16.0.5
lrwxrwxrwx 1 root root 17 Aug 27 16:33 libxml2.so.16 -> libxml2.so.16.0.5
-rwxr-xr-x 1 root root 1362992 Aug 27 16:33 libxml2.so.16.0.5
lrwxrwxrwx 1 root root 17 Oct 16 00:43 libxml2.so.2 -> libxml2.so.16.0.5
The installation of libxml2-devel created the first symlink: libxml2.so -> libxml2.so.16.0.5
Seeing this, I created the last symlink libxml2.so.2 -> libxml2.so.16.0.5 manually and viber worked just fine.
I think I can uninstall libxml2-devel now (although I’m not sure it’s necessary) since it doesn’t seem to be needed. It just showed that the only thing needed was the manual creation of the last symlink.
Do you agree with all that or am I missing something?
You can try it and see - the libxml2.so,.16.0.5 library comes from the libxml2-16 package, rather than the -devel package - so if it stays after removing the -devel package, then you should be good. Otherwise, you could just recreate that symlink - but having the -devel package should help maintain it as libxml2 is updated.
The -devel package is pretty small, so probably wouldn’t hurt just to leave it installed.
S | Name | Type | Version | Arch | Repository
---+---------------+---------+----------------------+--------+-------------------------------------------------------------
i | libxml2-2 | package | 2.10.3-150500.5.32.1 | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
i | libxml2-tools | package | 2.10.3-150500.5.32.1 | x86_64 | Update repository with updates from SUSE Linux Enterprise 15
Leap 15.6 is the previous version, so libxml2-2 is still there. It seems it was on Tumbleweed too until two days ago. The latest updates probably replaced it with the new version and that caused viber to crash on my system.
Different SO name means two libraries are incompatible. Whether your specific application is using the incompatible parts only the developers of your application may answer. But be prepared to any surprises which you cannot even report anymore because you are now in explicitly unsupported configuration.
Then do not use Tumbleweed. Use distribution that gives you stable environment that external software providers can rely on.