Die Aktualisierung von openssl in python 2.7
Frage mich, ob jemand kann bitte erklären, wie openssl funktioniert in python2.7.
Ich bin mir nicht sicher ob python hat seinen eigenen openssl oder holt Sie von der lokalen Maschine/env?
lassen Sie mich erklären:
(wenn ich das in Python)
>>> import ssl
>>> ssl.OPENSSL_VERSION
'OpenSSL 0.9.8x 10 May 2012'
(Im terminal)
$ openssl version
OpenSSL 0.9.8x 10 May 2012
$ which openssl
/usr/bin/openssl
ich jetzt aktualisiert openssl (heruntergeladen .)
$ cd openssl-1.0.1c
$ ./Configure darwin64-x86_64-cc --prefix=/usr --openssldir=/opt/local/etc/openssl shared
$ make
$ sudo make install
diese erstellt separate Leiter(wie angegeben), also habe ich es kopiert auf den alten Pfad
cp -f /usr/local/ssl/bin/openssl /usr/bin/openssl
nun im terminal openssl-version aktualisiert wurde, aber nicht von python!
$ openssl version
OpenSSL 1.0.1c 10 May 2012
Habe ich bemerkt, dass .dylib ist noch auf alte version, wie kann ich dies ändern?
$ ls -l /usr/lib/*ssl*
-rwxr-xr-x 1 root wheel 411680 Jul 17 2012 /usr/lib/libssl.0.9.7.dylib
-rwxr-xr-x 1 root wheel 602800 May 24 03:43 /usr/lib/libssl.0.9.8.dylib
-rwxr-xr-x 1 root wheel 390908 Sep 9 17:37 /usr/lib/libssl.1.0.0.dylib
lrwxr-xr-x 1 root wheel 18 Jul 17 2012 /usr/lib/libssl.dylib -> libssl.0.9.8.dylib
Update: ich habe die link noch die alte version in python.
$ ls -l /usr/lib/*ssl*
-rwxr-xr-x 1 root wheel 411680 Jul 17 2012 /usr/lib/libssl.0.9.7.dylib
-rwxr-xr-x 1 root wheel 602800 May 24 03:43 /usr/lib/libssl.0.9.8.dylib
-rwxr-xr-x 1 root wheel 390908 Sep 9 17:37 /usr/lib/libssl.1.0.0.dylib
lrwxr-xr-x 1 root wheel 18 Sep 11 15:47 /usr/lib/libssl.dylib -> libssl.1.0.0.dylib
Nicht überschreiben-system OpenSSL mittels eines install-prefix von / oder /usr ODER symlink/kopieren system OpenSSL, oder es wird große Probleme verursachen. Sie brechen Ihrem system.
InformationsquelleAutor Peter | 2013-09-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entnehmen Sie bitte http://rkulla.blogspot.kr/2014/03/the-path-to-homebrew.html
Nach dem Upgrade von openssl auf Version 1.0.1 j, die von homebrew auf dem MAC, aber das system python bezog sich immer auf die alte version 0.9.8. Es stellte sich heraus, das python bezeichnet openssl. Also ich habe neu installiert python-gebraut mit openssl und beendet dieses Problem auf dem Mac, noch nicht Ubuntu.
Auf Mac-OS-X-version 10.10 und system-python version 2.7.6, meine Vorgehensweise ist wie folgt:
Dann können Sie sehen, openssl-version 1.0.1 j.
Müssen Sie installieren neue python-gebraut mit openssl. Anschließend können Sie unter /usr/local/Cellar/python/2.7.8_2/bin/python.
$ sudo ln -s /usr/local/Cellar/python/2.7.8_2/bin/python /usr/local/bin/python
Natürlich /usr/local/* sollte im Besitz von $USER, nicht root, das ist gesagt von Ryan, aber ich habe 'sudo'. Und, bevor Sie diese Anleitung, ich habe nicht /usr/local/bin/python. Nach dieser Anleitung, können Sie python-version 2.7.8 nicht 2.7.6.
Schließlich sehen Sie sich als belows zurück;
Bis jetzt, ich arbeite auf Ubuntu 12.04. Wenn ich eine Lösung für Ubuntu 12.04, dann werde ich update meine Antwort. Ich hoffe, dass dieses Verfahren Ihnen helfen.
Das funktionierte, obwohl ich habe es etwas anders. Meine Schritte:
$ brew update && brew install openssl
ist, überspringen Sie die Verlinkung:brew update python --with-brewed-openssl
hatte ich bereits installiert python mit brew$ /usr/local/Cellar/python/2.7.13_1/bin/python2 -c "import ssl; print ssl.OPENSSL_VERSION"
OpenSSL 1.0.2l 25 May 2017
system version:OpenSSL 0.9.8zh 14 Jan 2016
Ich bekomme... curl: (23) Failed writing body (0 != 16384) Versucht mit einem Spiegel... ==> Download dl.bintray.com/homebrew/mirror/pkg-config-0.29.2.tar.gz Warnung: Fehler beim erstellen der Datei Warning: /Users/paulkenjora/Library/Caches/Homebrew/pkg-config-0.29.2.tar.gz.in der Warnung: complete: Permission denied
Gibt es eine entsprechende Aktualisierung OpenSSL auf Kivy anstelle von Python, wie "$ brew install python --with-gebraut-openssl"?
InformationsquelleAutor user2434741
Veraltete SSL ist ein häufiges Problem, auf mehreren Plattformen:
Hier ist der Allgemeine Ansatz...
0. Installieren Sie OpenSSL
Option I: Installieren von system-Paketen von side-by-side-OpenSSL-1.x-libs (-dev oder -devel -) Pakete.
Option II: Installieren Sie OpenSSL von der Quelle in ein temporäres Verzeichnis
1. Gebäude Python von der Quelle
Option Ein: Verwenden Sie pyenv:
Option B: Installieren Sie Python aus Quelle
Beispiel: FreeBSD 9.2 (überspringen
make install
für demo-Zwecke)Danach, temporäre openssl-Bibliotheken, die nicht mehr benötigt werden b/c die ssl Modelle mit openssl statisch in die ausführbare python (überprüfen Sie mit
otool
oderreadelf
)../configure
- Befehl, können Sie nicht setzen Sie in der Umwelt oder anderes setup.py nicht bemerken.Kann jemand mir erklären, warum ich wieder aufbauen/installieren ganze python, wenn das einzige, was ein update benötigt, ist openssl?
Wenn ein binary statisch-links eine Bibliothek wie OpenSSL, der linker verbindet es innerhalb der binären und können nicht einfach ausgelagert werden. Wenn es statt dynamisch verknüpft, um eine shared-library, manchmal nur die Bibliothek aktualisiert werden kann, und es nimmt den neuen code... aber dies muss mit großer Sorgfalt ausgeführt werden. Der Punkt, der die Kompilierung von OpenSSL zu bekommen, neuere Versionen davon. Wenn nur ein Upgrade von OpenSSL ein dynamisch-gelinktes binary, ist es möglich, benutzerdefinierte kompilieren Sie eine neue version von OpenSSL auf die alte, ohne ein neues Python. Python muss auch konfiguriert werden, mit
--enable-shared
.InformationsquelleAutor
Dafür könnte sein, dass eine veraltete version von Python.
Nach dem ausführen
python -c "import ssl; print ssl.OPENSSL_VERSION"
auf Python 2.7.1, ich sah, ich hatte diese veraltete version:OpenSSL 0.9.7l 28 Sep 2006
.Scheint es, als ob meine version von Python hing auf eine veraltete version von OpenSSL, wie angegeben durch
dieses forum:
Ich aktualisiert, um Python 2.7.9 und das Problem wurde sofort behoben. Jetzt, nach dem ausführen
python -c "import ssl; print ssl.OPENSSL_VERSION"
bekomme ichOpenSSL 0.9.8za 5 Jun 2014
.InformationsquelleAutor aralar
Folgende für mich gearbeitet. Ich war schon ein update von OpenSSL 0.9.8 zh zu einem 1.0.2 a-version, sondern python nie auf die neuere version erst fand dieser Vorschlag, pyenv neu installieren python (mit 2.7.10, die version, die ich wollte).
und dann zu überprüfen...
Habe ich neu installieren müssen, python-Pakete natürlich.
Quelle: https://github.com/ianunruh/hvac/issues/75
InformationsquelleAutor bkinnell
Ich glaube python hat erkannt, dass dies ein Problem ist: https://www.python.org/downloads/release/python-2715/
Einfach installieren 2.7.15 meine Feste OpenSSL-Probleme.
InformationsquelleAutor KeelyD
GELÖST, KEINE HACKS, keine der oben genannten für mich gearbeitet. Ich landete dabei einen einfacheren und unkomplizierten Ansatz....
https://www.python.org/downloads/mac-osx/
sudo pip install --upgrade-pyOpenSSL
InformationsquelleAutor Paul Kenjora