macOS pip3 sslkeylog 설치 오류
목차
content
python3.7 -m pip install sslkeylog
시 에러가 난다.
대충 주요 요지는 <openssl/ssl.h>
를 못찾는다는 것이다.
openssl을 설치했는데.. 경로를 못 잡아주는 것 같다. 헤더파일을 링킹 박아주면 될 듯 한데…
1
2
3
4
5
6
7
cal/opt/python@3.7/Frameworks/Python.framework/Versions/3.7/include/python3.7m -c _sslkeylog.c -o build/temp.macosx-13-x86_64-cpython-37/_sslkeylog.o
_sslkeylog.c:3:10: fatal error: 'openssl/ssl.h' file not found
#include <openssl/ssl.h>
^~~~~~~~~~~~~~~
1 error generated.
error: command '/usr/bin/clang' failed with exit code 1
[end of output]
해결 방법
openssltest.c
파일을 만들어서 테스트
아래 코드 복사
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <openssl/ssl.h>
int main(int argc, char *argv[]) {
printf("OPENSSL_VERSION=%s\n", OPENSSL_VERSION_TEXT);
printf("OPENSSL_VERSION_NUMBER=0x%.8lx\n", OPENSSL_VERSION_NUMBER);
#if OPENSSL_VERSION_NUMBER >= 0x10101000L
printf("OpenSSL >= 1.1.1 = true\n");
#else
printf("OpenSSL >= 1.1.1 = false\n");
#endif
return 0;
}
아래 구문을 통해 컴파일
나는 에러 로그가 error: command '/usr/bin/clang' failed with exit code 1
으로 나와서 clang으로 컴파일 했다.
gcc로 에러가 나게 되면 gcc로 진행하면 된다.
1
2
3
4
5
6
7
8
clang $(python3.7-config --cflags --ldflags) -fPIE openssltest.c -o openssltest -v
#include "..." search starts here:
#include <...> search starts here:
/usr/local/Cellar/python@3.7/3.7.16/Frameworks/Python.framework/Versions/3.7/include/python3.7m
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.0/include
/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk/usr/include
컴파일은 실패할거고 로그의 #include
부분을 보면 된다.
/usr/local/Cellar/python@3.7/3.7.16/Frameworks/Python.framework/Versions/3.7/include/python3.7m
python3.7
의 헤더 파일 경로를 찾았다. 요 경로에 설치한 openssl 헤더 파일을 복사한다.
openssl 바이너리가 /opt/homebrew/opt/openssl@1.1/bin/
디렉토리에 있으니 openssl 헤더 파일의 경우 /opt/homebrew/opt/openssl@1.1/include/
디렉토리에 있을 것이다.
1
2
ls $(which openssl)
/opt/homebrew/opt/openssl@1.1/bin/openssl
링킹을 걸어준다.
1
2
cd `/usr/local/Cellar/python@3.7/3.7.16/Frameworks/Python.framework/Versions/3.7/include/python3.7m`
ln -s /opt/homebrew/Cellar/openssl@1.1/1.1.1t/include/openssl/
다시 컴파일하고 확인해본다.
1
2
clang $(python3.7-config --cflags --ldflags) -fPIE openssltest.c -o openssltest -v
./openssltest
정상적으로 컴파일 및 OPENSSL 버전이 출력된다.
1
2
3
OPENSSL_VERSION=OpenSSL 1.1.1t 7 Feb 2023
OPENSSL_VERSION_NUMBER=0x1010114f
OpenSSL >= 1.1.1 = true
이제 다시 pip3로 sslkeylog를 설치하면 잘 될것이다.
1
python3.7 -m pip install sslkeylog
This post is licensed under CC BY 4.0 by the author.