Je suis sur : OSX 10.11.6, Homebrew version 0.9.9m OpenSSL 0.9.8zg 14 juillet 2015
J'essaye de jouer avec dotnetcore et en suivant leur instructions ,
J'ai mis à jour/installé la dernière version d'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 lorsque 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 permettant d'inclure les drapeaux de compilation n'a pas de sens pour moi, puisque je ne compile pas ces bibliothèques dont je suis dépendant.
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/
3 votes
Pour .NET Core, vous avez besoin d'une version d'OpenSSL prise en charge, c'est-à-dire une version 1.0.1 ou 1.0.2. Puisque vous signalez une version 0.9.8, vous devez peut-être
brew upgrade openssl
d'abord ?2 votes
Je l'ai déjà fait. J'aurais dû préciser, mais je n'ai pas ajouté ces étapes à la question. Mais j'ai déjà fait le
brew update
etbrew install openssl
. Il s'agit d'essayer d'installer la version supportée.2 votes
On dirait que Homebrew l'a explicitement bloqué : github.com/Homebrew/brew/commit/ .
0 votes
Peut-être que l'utilisation d'un HOMEBREW_PREFIX différent pourrait fonctionner, mais cela ne fait pas partie de mon expérience.
4 votes
Et pour continuer à compléter mes divagations, vous pourriez être intéressés par ce qui se passe sur github.com/Homebrew/brew/pull/597
2 votes
"... lorsque j'essaie de lier openssl, je continue à rencontrer cette erreur de liaison :..." - Voir aussi Comment définir le chemin d'exécution (-rpath) d'un exécutable avec gcc sous Mac OSX ? . Cela peut vous aider à toujours charger la bonne bibliothèque au moment de l'exécution, si Brew ne l'ajoute pas.
2 votes
@bartonjs - le lien a fonctionné avec la version 1.0.1. Selon le commit que vous avez posté, qui date d'il y a quelques jours, je pense que les anciennes versions ont un HOMEBREW_PREFIX différent. Je suis bon pour l'instant, mais à l'avenir, je vais essayer votre suggestion d'essayer un préfixe différent.
2 votes
J'ai essayé la plupart des solutions proposées sur cette page, mais aucune n'a fonctionné. J'ai cependant réussi à faire fonctionner le noyau .Net avec cette solution : github.com/dotnet/cli/issues/3964#issuecomment-236485454
2 votes
Le lien de @PaulKeister vers la discussion github a fonctionné pour moi. En gros, il suffit d'exécuter :
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
2 votes
Le site
rpath
est meilleure. Il y a une raison pour laquelle Homebrew vous empêche maintenant de lier OpenSSL ; il est une mauvaise idée et peut casser des choses sur votre ordinateur.0 votes
Vous devriez probablement mettre votre "dotnetcore a mis à jour ses instructions d'installation" dans une réponse ici à votre propre question :-)