EC2 관련 에러 (1)

Mixer·2024년 4월 16일
0

EC2 ubuntu 환경에서
Docker 설치 후
프로젝트 배포를 한 이후
./gradlew build 시

FAILURE: Build failed with an exception.

* What went wrong:
Could not create an instance of type org.gradle.api.internal.initialization.DefaultScriptHandler.
> Could not create service of type ChecksumService using BuildSessionScopeServices.createChecksumService().
   > java.io.FileNotFoundException: /home/min/Sniff-Step/backend/.gradle/8.4/checksums/checksums.lock (Permission denied)

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 1s

FAILURE: Build failed with an exception.

* What went wrong:
Could not update /home/min/Sniff-Step/backend/.gradle/8.4/fileChanges/last-build.bin
> /home/min/Sniff-Step/backend/.gradle/8.4/fileChanges/last-build.bin (Permission denied)

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 1s

이러한 오류를 만나게 되었다.
해당 오류는 권한 문제로 인해 발생 한 것으로

권한 수정
sudo chown -R $(whoami) /home/min/Sniff-Step/backend/.gradle
sudo chmod -R 755 /home/min/Sniff-Step/backend/.gradle
Gradle Wrapper 실행 권한 
chmod +x ./gradlew
* What went wrong:
Could not update /home/min/Sniff-Step/backend/.gradle/8.4/fileChanges/last-build.bin
> /home/min/Sniff-Step/backend/.gradle/8.4/fileChanges/last-build.bin (Permission denied)

이 후 발생한 오류 메시지

챗지피티에 문의한 결과

Could not update /home/min/Sniff-Step/backend/.gradle/8.4/fileChanges/last-build.bin > /home/min/Sniff-Step/backend/.gradle/8.4/fileChanges/last-build.bin (Permission denied) 이 오류 메시지는 Gradle 빌드 도중 파일을 수정하거나 업데이트하려 할 때 해당 파일에 대한 쓰기 권한이 없음을 나타냅니다.

문제 원인
Gradle 빌드 과정에서는 여러 종류의 임시 파일과 캐시 파일을 생성하고 업데이트하는데, 이 과정에서 .gradle 디렉토리 내의 last-build.bin 파일을 업데이트하려고 했으나, 파일에 접근할 수 있는 권한이 부족하여 발생한 오류입니다.

해결 방안

ls -l /home/min/Sniff-Step/backend/.gradle/8.4/fileChanges/last-build.bin
쓰기 권한 부여
sudo chown $(whoami) /home/min/Sniff-Step/backend/.gradle -R
sudo chmod 755 /home/min/Sniff-Step/backend/.gradle -R

하지만 해당 오류메시지 발생

 What went wrong:
Execution failed for task ':clean'.
> java.io.IOException: Unable to delete directory '/home/min/Sniff-Step/backend/build'
Execution failed for task ':clean'. > java.io.IOException: Unable to delete directory '/home/min/Sniff-Step/backend/build' 오류는 Gradle이 빌드 중 clean 태스크를 수행하려 할 때, /home/min/Sniff-Step/backend/build 디렉토리를 삭제하는 데 실패했음을 나타냅니다. 이는 다음과 같은 몇 가지 이유로 발생할 수 있습니다:

디렉토리에 열린 파일이 있을 때: 다른 프로그램이나 프로세스가 해당 디렉토리 내 파일을 사용 중일 경우, 운영체제가 그 파일이나 디렉토리의 삭제를 허용하지 않을 수 있습니다.
권한 문제: 사용자가 해당 디렉토리를 삭제할 충분한 권한이 없는 경우 삭제가 불가능할 수 있습니다.
해결 방법
1. 사용 중인 파일 확인 및 프로세스 종료
사용 중인 파일을 확인하고, 해당 파일을 사용 중인 프로세스를 종료할 수 있습니다. 리눅스에서는 lsof 명령어를 사용하여 해당 디렉토리를 사용 중인 프로세스를 찾을 수 있습니다:

bash

챗 지피티 답변

lsof +D /home/min/Sniff-Step/backend/build
sudo chown -R $(whoami):$(whoami) /home/min/Sniff-Step/backend/build
sudo chmod -R 775 /home/min/Sniff-Step/backend/build

이렇게 해결했지만

현재 프리티어 메모리로 인한 무한 로딩으로 인해
해결 후 2번째 글을 작성할 예정

profile
Minthug'life

0개의 댓글