Returning to work on a server with 64-bit OpenSUSE 13.1 that I left idle for a couple of weeks, I am experiencing a weird issue: some of the shared libraries have now size 0 Kb. For example, trying to run Firefox returns:
XPCOMGlueLoad error for file /usr/lib64/firefox/liblgpllibs.so:/usr/lib64/firefox/liblgpllibs.so: file too short
What is worse is, I think the issue is affecting zypper and yast as well:
$ sudo zypper patch-check
zypper: error while loading shared libraries: /usr/lib64/libidn.so.11: file too short
And running yast2 seems to be useless, as selecting both “Online Update” and “Software Management” does nothing, I just come back to the main screen.
I checked on the problematic libraries, and they have size “0”
Short of reinstalling, it would also be possible to download the affected packages from the repos and re-install them with rpm directly.
If even rpm does not work, you could even just open them in a file archiving program (e.g. Ark, file-roller), extract the broken files and move/copy them to the corresponding directories. .rpm files are just CPIO archives, so you could also use the command line program cpio to extract them.
rpm and zypper also allow you to specify the root filesystem to use, so you could also use them from a livecd in the worst case…
Depending on your experience and the state of your system, it might indeed just easier to re-install, I would suggest to do an “Upgrade” to the same version to not loose any configuration or installed applications.
See https://en.opensuse.org/SDB:Offline_upgrade