2016-07-19 11 views
9

Ich muss sicherstellen, dass ich eine OpenSSL-Version von 1.0.1 oder höher habe, um eine Verbindung zur Salesforce-API gemäß this documentation herzustellen.Wie aktualisiert man OpenSSL auf Mac?

Nach this question, kann ich die folgenden Schritte tun (was ich erfolgreich abgeschlossen haben)

  1. Gebräu Update
  2. Gebräu openssl
  3. Gebräu Link --force openssl
installieren

Wenn ich 'openssl Version -a' eintippe, bekomme ich folgendes:

OpenSSL 1.0.2h 3 May 2016 
built on: reproducible build, date unspecified 
platform: darwin64-x86_64-cc 
options: bn(64,64) rc4(ptr,int) des(idx,cisc,16,int) idea(int) blowfish(idx) 
compiler: /usr/bin/clang -I. -I.. -I../include -fPIC -fno-common -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -arch x86_64 -O3 -DL_ENDIAN -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM 
OPENSSLDIR: "/opt/local/etc/openssl" 

Wenn ich jedoch python -c eintippe "import ssl; drucken ssl.OPENSSL_VERSION“, erhalte ich folgende:

OpenSSL 0.9.8zh 14 Jan 2016 

ich gemischte Signale von meinem Computer bekommen, aber mein Salesforce-Modul ist immer noch nicht funktioniert, so dass ich weiß, OpenSSL nicht vollständig auf meinem Computer aktualisiert

.

ich sollte auch erwähnen, dass ich auch versucht habe:

sudo port upgrade openssl 

Hafen schien gewirkt zu haben, aber wenn ich „python -c‚import ssl eingeben, Print ssl.OPENSSL_VERSION‘ich bekomme immer noch, dass ich bin auf "OpenSSL 0.9.8zh"

Gibt es eine andere Möglichkeit, OpenSSL zu aktualisieren?

+0

Ich bin mir nicht sicher, aber das könnte sein, was Sie brauchen: http://stackoverflow.com/a/27230127/2694511 – SpencerD

Antwort

6

Ich denke, das ist ein mehrteiliges Problem mit den von Ihnen verwendeten Python-Versionen und Ihrer $ PATH-Variable.

Prüfen Sie zuerst, wo Sie für Python gesuchte durch diesen Befehl im Terminal:

which python 

Es sollte Ausgang so etwas wie dieses -/usr/local/bin/python

Dann prüfen der Pfad, den Sie eingerichtet haben.

echo $PATH 

Likely Sie sehen so etwas wie:

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/username/anaconda/bin:/usr/bin:/bin:/usr/sbin:/sbin 

Das Problem ist wahrscheinlich, dass die Version von Python auf dem Standard gebunden, wenn Sie python in Ihrem Terminal eingeben nicht ein, dass die moderne Version hat von openssl.

Mit anderen Worten:

openssl version -a 

prüfen für openssl irgendwo anders als

python -c "import ssl; print ssl.OPENSSL_VERSION" 

Um dies zu beheben, können Sie versuchen, Ihr $ PATH-Variable bearbeiten.

Ich schlage vor, dies zu tun, indem Sie etwas wie Ihre ~/.bash_profile Datei bearbeiten.Sie können so etwas wie diese fügen Sie eine andere Python binäre angeben zu verwenden:

export PATH="/usr/local/bin:$PATH" 

Plop diese am Ende Ihrer .bash_profile-Datei und dann, wenn Sie bash verwenden es für Python in der usr/local aussehen sollte/bin-Verzeichnis, bevor Sie woanders suchen. Beachten Sie, dass dies auch Auswirkungen auf Orte hat, an denen andere Programme nach Python (oder anderen Binärdateien) suchen.

1

@ Fernandos Antwort hatte die richtige Theorie, aber seine Empfehlung für einen nächsten Schritt funktionierte nicht für mich, denn /usr/local/bin war bereits erste in meinem $ PATH. Hier ist, wie ich mein Fest:

In der Antwort für brew info python ich sah:

==> Caveats This formula installs a python2 executable to /usr/local/bin. If you wish to have this formula's python executable in your PATH then add the following to ~/.bash_profile: export PATH="/usr/local/opt/python/libexec/bin:$PATH"

Ich fügte hinzu, dass letzte Zeile meines ~/.bash_profile, eröffnen ein neues Terminal-Fenster, und es funktionierte.