standard para net mac instal how framework macos openssl homebrew .net-core

macos - para - Homebrew se niega a vincular OpenSSL



install net core (11)

Si migrar tu Mac rompe homebrew:

Migré mi Mac y desvinculó todas mis instalaciones de homebrew, incluido OpenSSL. Esto rompió la gem install , que es cómo noté el problema por primera vez y comencé a intentar repararlo.

Después de un millón de soluciones (al migrar a OSX Sierra - 10.12.5), la solución terminó siendo cómicamente simple:

brew reinstall ruby brew reinstall openssl

Estoy en: OSX 10.11.6, Homebrew versión 0.9.9m OpenSSL 0.9.8zg 14 de julio de 2015

Estoy tratando de jugar con dotnetcore y siguiendo sus instructions ,

He actualizado / instalado la última versión de openssl:

> brew install openssl ==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2h_1.el_capitan.bottle.tar.gz Already downloaded: /Users/administrator/Library/Caches/Homebrew/openssl-1.0.2h_1.el_capitan.bottle.tar.gz ==> Pouring openssl-1.0.2h_1.el_capitan.bottle.tar.gz ==> Caveats A CA file has been bootstrapped using certificates from the system keychain. To add additional certificates, place .pem files in /usr/local/etc/openssl/certs and run /usr/local/opt/openssl/bin/c_rehash This formula is keg-only, which means it was not symlinked into /usr/local. Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries Generally there are no consequences of this for you. If you build your own software and it requires this formula, you''ll need to add to your build variables: LDFLAGS: -L/usr/local/opt/openssl/lib CPPFLAGS: -I/usr/local/opt/openssl/include

Pero cuando intento vincular openssl, sigo encontrando este error de vinculación:

> brew link --force openssl Warning: Refusing to link: openssl Linking keg-only OpenSSL means you may end up linking against the insecure, deprecated system version while using the headers from the Homebrew version. Instead, pass the full include/library paths to your compiler e.g.: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib

La opción de incluir indicadores del compilador no tiene sentido para mí, ya que no estoy compilando estas bibliotecas de las que soy dependiente.

EDITAR dotnetcore ha actualizado sus instrucciones:

brew update brew install openssl ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/


Como sugiere la actualización de la otra respuesta, la solución alternativa para instalar el viejo brew openssl101 ya no funcionará. Para una solución temporal en este momento, vea este comentario en dotnet / cli # 3964 .

La parte más relevante del problema copiado aquí:

Miré la otra opción que se sugirió para configurar el rpath en la biblioteca. Creo que la siguiente es una mejor solución que solo afectará a esta biblioteca específica.

sudo install_name_tool -add_rpath /usr/local/opt/openssl/lib /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.0/System.Security.Cryptography.Native.dylib

y / o si tiene instalado NETCore 1.0.1, ejecute también el mismo comando para 1.0.1:

sudo install_name_tool -add_rpath /usr/local/opt/openssl/lib /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/System.Security.Cryptography.Native.dylib

En efecto, en lugar de decirle al sistema operativo que siempre use la versión homebrew de SSL y potencialmente causar que algo se rompa, le estamos diciendo a dotnet cómo encontrar la biblioteca correcta.

También es importante que parezca que Microsoft está al tanto del problema y tiene tanto a) un plan un tanto inmediato para mitigar como b) una solución a largo plazo (probaby agrupando OpenSSL con dotnet).

Otra cosa a tener en cuenta: /usr/local/opt/openssl/lib es donde la cerveza está vinculada de forma predeterminada:

13:22 $ ls -l /usr/local/opt/openssl lrwxr-xr-x 1 ben admin 26 May 15 14:22 /usr/local/opt/openssl -> ../Cellar/openssl/1.0.2h_1

Si por alguna razón instala el brew y lo vincula en una ubicación diferente, entonces esa ruta es la que debe usar como rpath.

Una vez que haya actualizado la ruta de acceso de System.Security.Cryptography.Native.dylib libray, deberá reiniciar su sesión interactiva (es decir, cerrar la consola e iniciar otra).


Después de probar todo lo que pude encontrar y nada funcionó, simplemente intenté esto:

touch ~/.bash_profile; open ~/.bash_profile

Dentro del archivo agregado esta línea.

export PATH="$PATH:/usr/local/Cellar/openssl/1.0.2j/bin/openssl"

ahora funciona :)

Jorns-iMac:~ jorn$ openssl version -a OpenSSL 1.0.2j 26 Sep 2016 built on: reproducible build, date unspecified //blah blah OPENSSLDIR: "/usr/local/etc/openssl" Jorns-iMac:~ jorn$ which openssl /usr/local/opt/openssl/bin/openssl


Esto es lo que funcionó para mí:

brew update brew install openssl ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/ ln -s /usr/local/Cellar/openssl/1.0.2j/bin/openssl /usr/local/bin/openssl

Gracias a @dorlandode en este hilo github.com/Homebrew/brew/pull/597

NB: solo usé esto como una solución temporal hasta que pude pasar tiempo instalando correctamente Openssl nuevamente desde cero. Como recuerdo, pasé la mayor parte del día depurando y teniendo problemas antes de darme cuenta de que la mejor manera era instalar manualmente los certificados que necesitaba uno por uno. Lea el enlace en el comentario de @ bouke antes de intentar esto.


Esto funcionó para mí:

brew install openssl cd /usr/local/include ln -s ../opt/openssl/include/openssl .


La solución anterior de edwardthesecond también funcionó para mí en Sierra

brew install openssl cd /usr/local/include ln -s ../opt/openssl/include/openssl ./configure && make

Otros pasos que hice antes fueron:

  • instalación de openssl a través de brew

    brew install openssl

  • agregando openssl a la ruta como lo sugiere homebrew

    brew info openssl echo ''export PATH="/usr/local/opt/openssl/bin:$PATH"'' >> ~/.bash_profile


Ninguna de estas soluciones me funcionó en OS X El Capitan 10.11.6. Probablemente porque OS X tiene una versión nativa de openssl que cree que es superior y, como tal, no le gusta la manipulación.

Entonces, tomé el camino alto y comencé de nuevo ...

Instalar manualmente y enlace simbólico

cd /usr/local/src

  • Si obtiene "No existe tal archivo o directorio", hágalo:

    cd /usr/local && mkdir src && cd src

Descargar openssl:

curl --remote-name https://www.openssl.org/source/openssl-1.0.2h.tar.gz

Extracto y cd en:

tar -xzvf openssl-1.0.2h.tar.gz cd openssl-1.0.2h

Compilar e instalar:

./configure darwin64-x86_64-cc --prefix=/usr/local/openssl-1.0.2h shared make depend make make install

Ahora enlace simbólico OS X''s openssl a su openssl nuevo y actualizado:

ln -s /usr/local/openssl-1.0.2h/bin/openssl /usr/local/bin/openssl

Cierre la terminal, abra una nueva sesión y verifique que OS X esté utilizando su nuevo openssl:

openssl version -a


Nota: esto ya no funciona debido a https://github.com/Homebrew/brew/pull/612

Tuve el mismo problema hoy. Desinstalé (desbloqueado ??) openssl 1.0.2 e instalé 1.0.1 también con homebrew. Dotnet new / restore / run luego funcionó bien.

Instalar openssl 101:
instalar brew homebrew / versiones / openssl101
Enlace:
brew link --force homebrew / versiones / openssl101


Simplemente ejecute brew info openssl y lea la información donde dice:

Si necesita tener este software primero en su ejecución PATH: echo ''export PATH="/usr/local/opt/openssl/bin:$PATH"'' >> ~/.bash_profile


Tengo un caso similar Necesito instalar openssl a través de brew y luego usar pip para instalar mitmproxy. Recibo la misma queja de brew link --force . La siguiente es la solución a la que llegué: (sin forzar enlace por brew)

LDFLAGS=-L/usr/local/opt/openssl/lib CPPFLAGS=-I/usr/local/opt/openssl/include PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig pip install mitmproxy

Esto no aborda la pregunta directamente. Dejo el one-liner en caso de que alguien use pip y requiera openssl lib.

Nota: las rutas /usr/local/opt/openssl/lib se obtienen por brew info openssl


para mí esto es lo que funcionó ...

Edité el ./bash_profile y agregué el siguiente comando

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