Как установить libssl-dev, libffi-dev на Mac OS?

18

Я могу установить libssl-devи libffi-devна Ubuntu с помощью команды apt-get install libssl-dev libffi-dev, но я не могу установить на Mac; Я попытался с помощью команды: brew install libssl-dev libffiно не работает для меня.

Что мне нужно сделать, чтобы получить доморощенный, чтобы установить это?

Джеки
источник
brew install libffi stackoverflow.com/a/44707470/32453
rogerdpack

Ответы:

18

Эти конкретные пакеты не существуют под этими именами как на MacPorts, так и на Homebrew - отсюда и ошибки, которые вы получаете. Чтобы установить эти конкретные пакеты на OS X, вы захотите использовать openssl. Следующая команда должна помочь вам:

brew install openssl

Если вы уже opensslустановили, попробуйте выполнить следующее, чтобы исправить это - некоторые пользователи в Stack Overflow сообщают об этом как об исправлении при попытке заставить Django работать.

brew unlink openssl && brew link openssl --force
Саймон Шихан
источник
Как вы делаете это без варева и без sudo?
tommy.carstensen
2
opensslэто не то же самое, что libssl-dev. Первый предназначен для прямого использования, второй - для ссылок. UPD: хорошо, для макинтош они поставляются в одном пакете, но вам нужно запуститьexport LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/usr/local/opt/openssl/include"
Имаскара
9

Я пытался поднять Crystal с MacOS в Мохаве и столкнулся с подобной проблемой.

Это сообщение об ошибке, которое я видел:

Error: execution of command failed with code: 1: `cc "${@}" -o '/Users/mymbp/.cache/crystal/crystal-run-server.tmp'  -rdynamic  
`command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libssl || printf %s '-lssl -lcrypto'` `command -v pkg-config > /dev/null && pkg-config --libs
 --silence-errors libcrypto || printf %s '-lcrypto'` -lz -lpcre -lgc -lpthread 
/usr/local/Cellar/crystal/0.27.0/src/ext/libcrystal.a -levent -liconv -ldl -
L/usr/lib -L/usr/local/lib`

Поиск / usr / local / lib Я заметил, что там нет упоминаний о libssl.

Поэтому я добавил символическую ссылку, и это, казалось, исправило это.

ln -s /usr/local/Cellar/openssl/1.0.2p/lib/libssl.dylib /usr/local/lib/

Примечание: текущая версия openssl, которая выпадает, - 1.0.2p, ваша версия может отличаться.

kroolk
источник
7
Аналогичная проблема, с кристаллом, а также. Я смог export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/запустить его здесь: github.com/brianmario/mysql2/issues/795#issuecomment-337006164
Джей Дорси,
1

opensslбыл уже установлен, но я не мог собрать, psycopg2потому что он жаловался на отсутствие -lssl. Я следовал за шагами от Саймона Шихана, но это было все еще не доступно.

Но, глядя на сообщение после принудительной ссылки openssl:

For compilers to find openssl@1.1 you may need to set:
  export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
  export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"

Я сделал то, что он говорит. Я добавил эти две строки в мою ~/.bashrc. И psycopg2построен без ошибок на этот раз.

нацеливать
источник