1

Two nights ago I compiled Calamares. The next morning, when trying to run it, I got:

/usr/bin/calamares: error while loading shared libraries: libkpmcore.so.11: cannot open shared object file: No such file or directory

I see that my distro, Manjaro, has updated kpmcore to have libkpmcore.so.12.

And here's my newbie question: what's the best chance I have to prevent this on my own Calamares package?

Thanks for your help.

1 Answer 1

0

I don't know what is calamares or libkpmcore. But the problem appears because of trying to resolve a non existance library.

Unix library naming usually follows the convention lib{name}.so[.major[.minor[.patch]]] (enclosed in [] means optional).

The problem with this naming scheme is that if you link to lib{name}.so.0.1.0 for example, then update the library to 0.1.1, this file no longer exists as it got replaced with lib{name}.so.0.1.1.

To workaround this, libraries have symlinks that point to the actual shared library

lib{name}.so.0.1 -> lib{name}.so.0.1.0

So when the library gets updated to 0.1.1, programs using the previous version continue to work as the symlink still exists but point to the new version

lib{name}.so.0.1 -> lib{name}.so.0.1.1

In your case, you should link to the symlink, not the library.

New contributor
Ahmed Shaqanbi is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.