2016-07-19 3 views
9

Мне нужно убедиться, что у меня есть версия OpenSSL версии 1.0.1 или выше для подключения к API Salesforce в соответствии с this documentation.Как обновить OpenSSL на Mac?

По this question, я могу сделать следующие шаги (которые я успешно завершена)

  1. обновление заварить
  2. заварить установить OpenSSL
  3. заварить ссылка --force OpenSSL

Когда я печатаю «opensl version -a», я получаю следующее:

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" 

Однако, когда я пишу python -c "import ssl; печать ssl.OPENSSL_VERSION», я получаю следующее:

OpenSSL 0.9.8zh 14 Jan 2016 

я получаю смешанные сигналы с моего компьютера, но мой Salesforce модуль до сих пор не работает, так что я знаю, OpenSSL не обновляется полностью на моем компьютере

.

Я должен также упомянуть, что я также пытался:

sudo port upgrade openssl 

порт, казалось, работали, но когда я набираю в «питон -c„импорта SSL, печать ssl.OPENSSL_VERSION“Я все еще получаю, что я 'm on "OpenSSL 0.9.8zh"

Есть ли другой способ обновить OpenSSL?

+0

Я не уверен, но это может быть то, что вам нужно: http://stackoverflow.com/a/27230127/2694511 – SpencerD

ответ

6

Я думаю, что это проблема с несколькими частями с версиями используемого Python и переменной $ PATH.

Сначала проверьте, где вы ищете Python, используя эту команду в терминале:

which python 

Он должен вывести что-то вроде этого -/USR/местные/бен/питон

затем проверьте путь, который вы установили.

echo $PATH 

Вероятно, вы видите что-то вроде:

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

Проблема, вероятно, что версия питона, привязанной к вашему умолчанию при вводе python в терминале не один, который имеет современную версию от openssl.

Другими словами:

openssl version -a 

ли проверка OpenSSL где-то иной, чем

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

Чтобы исправить это, вы можете попробовать редактирования переменной $ PATH.

Я предлагаю сделать это, отредактировав что-то вроде файла ~/.bash_profile.Вы можете добавить что-то вроде этого, чтобы указать другой Python бинарного использовать:

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

Plop это на конце вашего .bash_profile файла, а затем каждый раз, когда вы используете Баш он должен искать питона в USR/местные/bin, прежде чем искать в другом месте. Имейте в виду, что это также может повлиять на места, которые другие программы ищут для Python (или других двоичных файлов).

1

@ Ответы Фернандо имели правильную теорию, но его рекомендация для следующего шага не работала для меня, потому что /usr/local/bin был уже первым в моей $ PATH. Вот как я установил мину:

В ответ на brew info python я видел:

==> 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"

Я добавил, что последнюю строку в мои ~/.bash_profile, открыл новое окно терминала, и это сработало.