2016-07-19 3 views
5

MacPorts와 함께 Microsoft에서 제공 한 DotNet core을 사용하여 Macintosh에 DotNet을 설치하고 있습니다. DotNet 설치를위한 MacPorts OpenSSL 강제 연결

ports install openssl 

는 "양조 링크 --force하려면 openssl은"할 무엇, 내가 같은를 구현할 수있는 방법을

: 나는 OpenSSL이는 MacPorts를 통해 설치되어

brew update 
brew install openssl 
brew link --force openssl 

: 자신의 사이트는 사제에서 OpenSSL을 설치 말한다 맥 포트를 사용하는 것?

감사합니다.

+0

을 그래서 내가 제대로 이해한다면, 당신은 당신이 함수가 다른 패키지 관리자로 무엇인지 모르는 명령을 구현하려는 그 그것은 의도되지 않았습니까? 나는 그것이 좋은 생각이라고 생각하지 않는다. –

+1

.NET 코어의 맥락에서 질문이 제기 되었기 때문에 OP가 반드시 MacPorts에 "링크"명령을 구현하려고하지는 않지만 명령이하는 것이 무엇이든지 다시 만들길 원합니다. 특히, 그 명령과 동등한 것이 없으면, .NET 코어는 OpenSSL (0.9.8something)의 OS X 버전을 발견하지만 MacPorts 버전 (1.0.2something)은 발견하지 못하고 충돌합니다. –

+0

'brew 링크'는'/ usr/local'의 openssl 공식에 의해 설치된 파일에 대한 심볼릭 링크를 만듭니다; 홈 브루는 대개'/ usr/local/Cellar' 아래의 폴더에 파일을 설치합니다. – neverpanic

답변

4

.NET 코어의 issue 173에서 일반적인 문제가 아니라이 특정 문제에 대한 해결책을 찾았습니다. 간단히 말해서, 당신은 /usr/local/liblibcrypto.dyliblibssl.dylib의 MacPorts의 버전을 연결해야합니다

sudo ln -s /opt/local/lib/libcrypto.1.0.0.dylib /usr/local/lib/libcrypto.1.0.0.dylib 
sudo ln -s /opt/local/lib/libssl.1.0.0.dylib /usr/local/lib/libssl.1.0.0.dylib 
+2

그렇게해서는 안됩니다. 대신 로더가'/ opt/local/lib'에있는 라이브러리를 찾도록'DYLD_FALLBACK_LIBRARY_PATH =/opt/local/lib'을 내 보내거나/usr/local/lib 디렉토리의 라이브러리를 참조하는 dotnet 바이너리에서'install_name_tool- local/lib'을 사용하여 경로를'/ opt/local/lib'로 바꿉니다. – neverpanic

+0

흠, 적어도'sudo install_name_tool -change libcrypto.1.0.0.dylib /opt/local/lib/libcrypto.1.0.0.dylib/usr/local/share/dotnet/dotnet' (그리고 libssl에 대해서도 마찬가지입니다) 나에게 속임수를 쓰지 마라. dotnet은 여전히 ​​이전처럼'System.Security.Cryptography.Native'에 대해'DllNotFoundException'을 throw합니다. –

+0

libssl 및 libcrypto 라이브러리를 참조하는 다른 라이브러리가 있거나 dnet이 실제로 dlopen을 사용하여 런타임에 라이브러리를 열려고 시도 할 수 있습니다. 저의 dotnet에 대한 저의 지식은 유감스럽게도 그 중 어떤 것이 있는지를 아는 데는 너무 제한적입니다. – neverpanic