Ubuntu2204(5.15.0-30-generic)에서 리눅스 빌드에러
글쓴이: dooggy / 작성시간: 토, 2022/05/28 - 11:55오후
안녕하세요? 리눅스 입문 2주차 병아리입니다
HTML을 쓸 줄 몰라서 화면이 지저분합니다 죄송합니다
제목과 같이 Ubuntu2204에서 linux-5.17.6을 빌드하는데 다음과 같이 Warning이 나오고 image 생성이 안됩니다
Warning 부분은 모두 OpenSSL 관련인데 sudo apt-get install libssl-dev를 해서
ps 를 보면
ysp@my-vm2204:~$ ps -ef | grep libssl-dev
ysp 8233 8225 0 23:48 pts/2 00:00:00 grep --color=auto libssl-dev
이렇게 나옵니다
어떻게 해결해야 할 지 도움 부탁드립니다
감사합니다
다음은 error message입니다
scripts/sign-file.c:89:9: warning: ‘ERR_get_error_line’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations] 89 | while ((e = ERR_get_error_line(&file, &line))) { | ^~~~~ In file included from scripts/sign-file.c:29: /usr/include/openssl/err.h:411:15: note: declared here 411 | unsigned long ERR_get_error_line(const char **file, int *line); | ^~~~~~~~~~~~~~~~~~ scripts/sign-file.c: In function ‘drain_openssl_errors’: scripts/sign-file.c:102:9: warning: ‘ERR_get_error_line’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations] 102 | while (ERR_get_error_line(&file, &line)) {} | ^~~~~ In file included from scripts/sign-file.c:29: /usr/include/openssl/err.h:411:15: note: declared here 411 | unsigned long ERR_get_error_line(const char **file, int *line); | ^~~~~~~~~~~~~~~~~~ scripts/sign-file.c: In function ‘read_private_key’: scripts/sign-file.c:142:17: warning: ‘ENGINE_load_builtin_engines’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations] 142 | ENGINE_load_builtin_engines(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from scripts/sign-file.c:30: /usr/include/openssl/engine.h:358:28: note: declared here 358 | OSSL_DEPRECATEDIN_3_0 void ENGINE_load_builtin_engines(void); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ scripts/sign-file.c:144:17: warning: ‘ENGINE_by_id’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations] 144 | e = ENGINE_by_id("pkcs11"); | ^ In file included from scripts/sign-file.c:30: /usr/include/openssl/engine.h:336:31: note: declared here 336 | OSSL_DEPRECATEDIN_3_0 ENGINE *ENGINE_by_id(const char *id); | ^~~~~~~~~~~~ scripts/sign-file.c:146:17: warning: ‘ENGINE_init’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations] 146 | if (ENGINE_init(e)) | ^~
Forums:
Quote:Warning 부분은 모두 OpenSSL
무엇을 보기 위해서 ps 명령을 실행시켰는지는 모르겠지만, 개발 패키지는 실행 가능한 무언가를 설치하는 것이 아니라 헤더 파일과 링크용 라이브러리 파일을 설치하는 것이기 때문에 당연히 현재 실행 중인 프로세스를 보는 ps 명령에 안 나오죠.
리눅스에 입문한 지 얼마 안 된 시점에서 커널을 빌드하는 것은 개인적으로 엄청나게 비추합니다. 일반적인 시스템 운영에는 필요하지 않고, 빌드할 때 필요한 배경 지식도 점차적으로 늘어나고 있습니다.
오류 메시지를 보니 OpenSSL 3.0 버전에서 향후에 삭제될 함수를 사용한다고 경고를 출력하고 있습니다. 이 문제가 리눅스 커널 메일링 리스트에 올라온 것도 얼마 안 된 시점이기 때문에 아직까지 리눅스 소스 트리에 패치가 안 올라온 상태입니다. https://lore.kernel.org/all/202203100851.C00D9AB73@keescook/T/#m694672cbbbba9aafbc637594f45b246592d13d6d 스레드에 가능성 있는 해결 방안이 제시되긴 했지만 무언가가 소스 트리에 커밋되었고 릴리스된 상태가 아닙니다. 리눅스 배포판이 업그레이드되면서 OpenSSL 3.0이 비교적 최근에 도입되었기 때문에 이 문제가 부상한 거죠. 쉽게 초보자 수준에서 해결할 수 있는 방법은 없으니, 굳이 커널을 컴파일해야 할 급한 이유가 없다면 일단은 접어 두는 게 좋을 것 같습니다.
친절한 답변 감사합니다
친절한 답변 감사드립니다
embedded Linux를 사용하는 과제에 새로이 투입이 되어서 급히 커널을 빌드해야 되기 때문에 열공하고 있는데 어려움이 많습니다
warning message를 보면 ERR_get_error_line등등이 Openssl3.0 이후 삭제되었다는 뜻 같은데
Ubuntu2204의 커널버젼 5.15.0-30-generic는 Openssl 3.0.3를 사용하고 있는데
빌드하려고 하는 linux-5.17.6에서는 삭제된 ERR_get_error_line를 access하려고 한다 이런 뜻일까요?
또 내용을 보면 Warning 일 뿐인데 build 결과가 안나오는 것은 무슨 일 일까요?
마음은 급한데 여간 막막한 것이 아니네요
감사합니다
댓글 달기