2016-10-31 4 views
1

Wenn ich zypper verwenden, um ein Paket zu installieren, erleide ich ein solches Problem 'undefiniertes Symbol: SSL_CTX_set_alpn_protos'. Die vollständige Nachricht wie unten.undefined symbol: SSL_CTX_set_alpn_protos

zypper: symbol lookup error: /usr/local/lib/libcurl.so.4: undefined symbol: SSL_CTX_set_alpn_protos 

Ich habe das Internet gesucht und einige Tipps bekommen. 1. Es gibt zwei libcurl in meinem System, und ich habe versucht, eine zu deinstallieren, die ich selbst installiert habe. Aber ich traf ein anderes Problem, die Nachricht wie folgt.

*Error building the cache: 
[git|https://github.com/git/git] Valid metadata not found at specified URL 
Warning: Disabling repository 'git' because of the above error. 
Loading repository data... 
Reading installed packages... 
'subversion' not found in package names. Trying capabilities. 
No provider of 'subversion' found. 
Resolving package dependencies... 
Nothing to do.* 
  1. , wenn das Problem von zwei Libcurl passieren. Wie kann ich tun, wenn ich die von mir installierte libcurl behalten möchte?

Ich bin dankbar, wenn jemand helfen kann, THX!

Antwort

2

Die libcurl, die Sie erstellt und in /usr/local/lib/libcurl.so.4 installiert haben, wurde gegen eine OpenSSL-Version mit der SSL_CTX_set_alpn_protos-Funktion erstellt. Das bedeutet OpenSSL 1.0.2 oder 1.1.0.

Wenn Sie jetzt mit dieser Bibliothek verknüpfen, findet es eine ältere OpenSSL (1.0.1 oder älter vielleicht?) Zur Laufzeit, die die SSL_CTX_set_alpn_protos Funktion fehlt. Und es kann nicht weitergehen.

Sie müssen sicherstellen, dass ld.so das neuere OpenSSL lädt. Sie können das Problem beheben, indem Sie eine dieser Aktionen unter:

  1. die ältere OpenSSL
  2. Bearbeitung der /etc/ld.so.conf Datei einen anderen Suchauftrag erstellen deinstallieren oder Sie können
  3. Setup ein LD_LIBRARY_PATH dafür. Oder auch ...
  4. build Libcurl einen festen Pfad zu dem neueren OpenSSL verwenden
+0

Es funktioniert wirklich gut mit den Aktionen. – Godfy

Verwandte Themen