-
Notifications
You must be signed in to change notification settings - Fork 230
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
curl: /usr/local/lib/libcurl.so.4: no version information available (required by curl) #69
Comments
also, what's the proper way to replace a library for libcurl in linux using /usr/local/lib ? It looks like renaming to /usr/local/lib/libcurl.so.4 doesn't work, even after running ldconfig, it looks like it know it is "libcurl-impersonate" and not "libcurl". Libcurl impersonate only works in conjonction of LD_LIBRARY_PATH or LD_PRELOAD, but that's not great. Do you know a better way using ldconfig ? Directly replacing /usr/lib/x86_64-linux-gnu/libcurl.so.4 only works until a package is updated on the system |
Actually, LD_PRELOAD doesn't work due to SONAME
script.php content : will show if I replace /usr/lib/x86_64-linux-gnu/libcurl.so.4 with libcurl-impersonate.so (after renaming), it works instead of replacing /usr/lib/x86_64-linux-gnu/libcurl.so.4, i can do this : |
libcurl-impersonate is intentionally built without the version information. If I remember correctly, when I built it with version information it wouldn't work since the symbol version information contains the TLS library used. Then you get a mismatch (i.e OpenSSL vs. BoringSSL). I think it is better to leave libcurl-impersonate without versioning info, and I believe you can safely ignore this error.
I think these methods should be preferred. I would consider them less hacky than replacing the system's libcurl, which is not really a good way to do this as you mentioned.
If I had to guess, what you are seeing is some PHP-specific quirk. My guess would be that PHP loads libcurl dynamically at runtime and somehow uses its symbols instead of libcurl-impersonate |
Is it possible to use the libcurl soname so it will work for every situation without requiring to tweak with patchelf ? |
is there any way to suppress this kind of error? |
When using libcurl-impersonate.so (not sure which one to use, there is .so, .so.4, .so.4.7.0) compiled and replaced, curl will show an error with version not available. I'm not sure if I did something wrong ? I compiled it using the docker instructions.
The text was updated successfully, but these errors were encountered: