Während der Verarbeitung von Google OpenID SSL-Antworten werden gnutls-spezifische Fehler in meinem Tornado-Webserver angezeigt. Einer der Vorschläge, die ich von der Tornado-Mailingliste erhalten habe, ist, OpenSSL-Backend anstelle von Gnutls zu versuchen. Auf dem Ubuntu-Server (11.10) scheint dies jedoch nicht einfach zu sein.
Auf Ubuntu-Server gnutls
wird vom libcurl3-gnutls
Paket bereitgestellt und die Unterstützung von openssl curl wird vom libcurl4-openssl-dev
Paket bereitgestellt . (Ich weiß nicht, warum das letztere heißt 4
und dev
, aber ich konnte kein anderes openssl + curl-Paket in der apt-cache-Suche finden).
Ich hatte libcurl3-gnutls
standardmäßig installiert, aber nicht libcurl4-openssl-dev
. Also habe ich die späteren installiert und Torando-Instanzen neu gestartet. Aber das schien nicht zu funktionieren. Ich habe immer noch die gleichen Fehler.
Ich habe alte Diskussionen auf Curl-Mailinglisten über die Probleme bei der Unterstützung verschiedener SSL-Backends für libcurl gefunden, aber nicht genau herausgefunden, wie es heute gemacht wird. Bisher ist meine Vermutung, dass openssl in libcurl integriert ist und gnutls über ein separates Paket bereitgestellt wird (das erklärt, warum es kein libcurl3-openssl gibt). Aber wie mache ich libcurl, um openssl-Backend und nicht gnutls aufzunehmen? Gibt es eine Option in der libcurl / pycurl-API, um dies zu tun?
Ich habe versucht, es zu deinstallieren libcurl3-gnutls
, aber apt-get hat mich aufgefordert, es ebenfalls zu entfernen python-pycurl
. Das geht also nicht.
libcurl3
wird gegen OpenSSL kompiliert, daher sollte es eine Sache sein oder die Build-Optionen für OpenSSL ändern und davonpython-pycurl
abhängig machenlibcurl3
stattlibcurl3-gnutls
.Ich habe eine Lösung für den Debian-Bug-Tracker gesehen .
Ich dachte, ich würde eine Problemumgehung veröffentlichen, damit die Leute das
python-pycurl
Paket selbst reparieren können.Beachten Sie, dass pycurl möglicherweise aktualisiert wurde, sodass der Name möglicherweise nicht genau lautet.
pycurl_7.18.2-1.dsc
Bearbeiten Sie diedebian/control
Datei und ersetzen Sie alle Instanzen vonlibcurl4-gnutls-dev
durchlibcurl4-openssl-dev
Zum Testen einfach auf den Interpreter springen und die Version anschauen.
Früher hieß es:
Es wird jetzt sagen (wenn Sie alles richtig gemacht haben):
Der Grund, warum hier nur die Debian- / Steuerdatei bearbeitet wird, ist, dass beide
libcurl4-gnutls-dev
undlibcurl4-openssl-dev
die Datei/usr/bin/curl-config
zum Erstellen ihrer Pakete verwenden. Eine ist für gnutls Umwelt, während die andere für openssl ist.quelle
Edit the debian/control
. Hat es ein Update gegeben, das diese Dateien gelöscht hat? Ich kann nur einendebian
Ordner finden, der den Namen dieser Dateien ähnelt! Verwendenpycurl-7.19.3
libssl-dev
in Debian installieren , sonst würde ich die Header-Dateien zum Kompilieren nicht finden. Auch das Signieren ist fehlgeschlagen, daher habe ich diesen Befehl verwendet, um das Paket zu erstellen:sudo dpkg-buildpackage -rfakeroot -b -uc -us
libssl-dev
und anderendpkg-buildpackage
Anruf aktualisieren würde (ich habe genau die gleichen Probleme und Martins Hinweise haben geholfen).Entfernen Sie das Pycurl-Modul und installieren Sie es mit pip neu.
quelle
Soweit ich weiß, sollte das Paket
libcurl3
OpenSSL-Unterstützung bieten.quelle