Je suis sur: OSX 10.11.6, version Homebrew 0.9.9m OpenSSL 0.9.8zg 14 juillet 2015
J'essaie de jouer avec Dotnetcore et en suivant leurs instructions ,
J'ai mis à jour/installé la dernière version 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
Mais quand j'essaie de lier openssl, je continue à rencontrer cette erreur de liaison:
> 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
L'option d'inclure les indicateurs de compilation n'a pas de sens pour moi, car je ne compile pas ces bibliothèques dont je dépend.
EDIT dotnetcore a mis à jour ses instructions:
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/
Comme le suggère la mise à jour de l'autre réponse, la solution de contournement consistant à installer l'ancien brassin openssl101 ne fonctionnera plus. Pour une solution immédiate, voir ce commentaire sur dotnet/cli # 3964 .
La partie la plus pertinente du problème copié ici:
J'ai examiné l'autre option suggérée pour définir le rpath sur la bibliothèque. Je pense que ce qui suit est une meilleure solution qui n’affectera que cette bibliothèque spécifique.
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
et/ou si NETCore 1.0.1 est installé, exécutez également la même commande pour 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 fait, plutôt que de dire au système d’exploitation de toujours utiliser la version SSL de Homebrew et de causer une panne, nous expliquons à Dotnet comment trouver la bonne bibliothèque.
Il est également important de noter que Microsoft semble être au courant du problème et avoir à la fois un plan d’atténuation assez immédiat et b) une solution à long terme (probaby empaquetant OpenSSL avec dotnet).
Une autre chose à noter: /usr/local/opt/openssl/lib
est l'endroit où la bière est liée par défaut:
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, pour une raison quelconque, vous installez le brassin et le liez à un emplacement différent, ce chemin est celui que vous devez utiliser comme chemin.
Une fois que vous avez mis à jour le chemin rpath de la bibliothèque System.Security.Cryptography.Native.dylib, vous devez redémarrer votre session interactive (c'est-à-dire, fermez votre console et démarrez-en une autre).
C'est ce qui a fonctionné pour moi:
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
Merci à @dorlandode sur ce fil de discussion https://github.com/Homebrew/brew/pull/597
NB: je n'ai utilisé cette solution que temporairement jusqu'à ce que je puisse passer du temps à installer correctement Openssl à nouveau. Si je me souviens bien, j'ai passé la majeure partie de la journée à déboguer et à rencontrer des problèmes avant de réaliser que le mieux était d'installer manuellement les certificats dont j'avais besoin. Veuillez lire le lien dans le commentaire de @ bouke avant de tenter ceci.
Aucune de ces solutions ne fonctionnait pour moi sous OS X El Capitan 10.11.6. Probablement parce que OS X a une version native d’openssl qu’elle croit supérieure, et en tant que telle, n’aime pas les falsifications.
Alors, j'ai pris la grande route et j'ai commencé à nouveau ...
cd /usr/local/src
Si vous obtenez "Aucun fichier ou répertoire de ce type", indiquez-le:
cd /usr/local && mkdir src && cd src
Télécharger openssl:
curl --remote-name https://www.openssl.org/source/openssl-1.0.2h.tar.gz
Extrait et cd dans:
tar -xzvf openssl-1.0.2h.tar.gz
cd openssl-1.0.2h
Compiler et installer:
./configure darwin64-x86_64-cc --prefix=/usr/local/openssl-1.0.2h shared
make depend
make
make install
Maintenant, symlink openssl de OS X à votre openssl nouveau et mis à jour:
ln -s /usr/local/openssl-1.0.2h/bin/openssl /usr/local/bin/openssl
Fermez le terminal, ouvrez une nouvelle session et vérifiez que OS X utilise votre nouveau openssl:
openssl version -a
Il suffit d'exécuter brew info openssl
et de lire l'information où il est écrit:
Si vous devez d'abord avoir ce logiciel dans votre PATH, exécutez:
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
J'ai migré mon Mac, et il a dissocié tout mon homebrew installe - y compris OpenSSL. gem install
cassé, c’est la raison pour laquelle j’ai tout d’abord remarqué le problème et commencé à essayer de le réparer.
Après un million de solutions (lors de la migration vers OSX Sierra - 10.12.5), la solution s'est révélée être d'une simplicité comique:
brew reinstall Ruby
brew reinstall openssl
Après avoir essayé tout ce que je pouvais trouver et que rien ne fonctionnait, j'ai juste essayé ceci:
touch ~/.bash_profile; open ~/.bash_profile
À l'intérieur du fichier ajouté cette ligne.
export PATH="$PATH:/usr/local/Cellar/openssl/1.0.2j/bin/openssl"
maintenant ça marche :)
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
J'ai un cas similaire. Je dois installer openssl via brew, puis utiliser pip pour installer mitmproxy. Je reçois la même plainte de brew link --force
. Voici la solution à laquelle j'ai abouti: (sans lien de force par brassage)
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
Cela ne règle pas la question directement. Je laisse one-liner au cas où quelqu'un utiliserait pip et aurait besoin de la bibliothèque openssl.
Remarque: les chemins /usr/local/opt/openssl/lib
sont obtenus par brew info openssl
Cela a fonctionné pour moi:
brew install openssl
cd /usr/local/include
ln -s ../opt/openssl/include/openssl .
La solution ci-dessus d’Edwardtheseconde a également fonctionné pour moi sur Sierra
brew install openssl
cd /usr/local/include
ln -s ../opt/openssl/include/openssl
./configure && make
Les autres étapes que j'ai faites auparavant sont les suivantes:
installer openssl via breuvage
brew install openssl
ajout de openssl au chemin suggéré par homebrew
brew info openssl
echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
Remarque: cela ne fonctionne plus en raison de https://github.com/Homebrew/brew/pull/612
J'ai eu le même problème aujourd'hui. J'ai désinstallé (unbrewed ??) openssl 1.0.2 et installé 1.0.1 également avec homebrew. Dotnet nouveau/restaurer/exécuter a ensuite bien fonctionné.
Installez openssl 101:
brew installer homebrew/versions/openssl101
Mise en relation:
lien brassin --force homebrew/versions/openssl101
pour moi c'est ce qui a fonctionné ...
J'ai édité le fichier ./bash_profile et ajouté la commande ci-dessous
export PATH = "/ usr/local/opt/openssl/bin: $ PATH"