gcc 혹은 cc 컴파일이 리눅스와 visual studio code에서 되지 않을 경우 / 디스크 공간 확보

리로린·2024년 8월 27일
0

c 언어

목록 보기
7/10

gcc 컴파일 문제 해결을 위한 디스크 공간 확보 방법

gcc와 vs code를 사용하다가 갑작스럽게 동작이 안되거나 혹은 결과를 출력 못하는 현상을 겪을 수 있다. 이와 같은 현상은 주로 캐시파일이 쌓이다가 디스크 공간이 모자르게 되어서 발생된다. 필자는 아래와 같은 상황으로 문제 상황을 해결하였다.

1. 디스크 공간 확인

디스크 공간을 확인하여 여유 공간이 충분한지 점검한다. 다음 명령어를 사용한다:

df -h
  • 이 명령어는 디스크 사용량과 여유 공간을 표시한다. 공간이 부족한 파티션을 확인할 수 있다.

2. 특정 파티션의 공간 부족 문제 해결

디스크가 넓어도 특정 파티션이 가득 차면 문제가 발생할 수 있다. /home, /tmp, /var 등의 파티션이 가득 찰 수 있다. 이를 확인하고 해결하기 위해 다음 단계를 수행한다:

  1. 디스크 파티션 확인

    df -h
    • 모든 파티션의 사용량과 여유 공간을 확인하여 공간이 부족한 파티션을 식별한다.
  2. 문제 파티션의 공간 확보

    • 사용하지 않는 파일을 삭제하거나 다른 위치로 이동한다.
    • 예를 들어, /tmp 파티션이 가득 차면, 임시 파일을 정리하거나 /tmp 디렉토리의 파일을 삭제한다.

3. 파일 시스템의 제한 문제 해결

파일 시스템에는 파일 수와 크기에 대한 제한이 있을 수 있다. 예를 들어, ext4 파일 시스템은 특정 파일 수나 최대 파일 크기를 초과할 수 없다. 이를 해결하기 위해 다음 단계를 수행한다:

  1. 파일 시스템 확인

    df -i
    • inode 사용량을 표시하여 파일 시스템의 inode가 부족한지 확인한다.
  2. 문제 해결

    • 오래된 로그 파일을 삭제하거나 불필요한 파일을 정리하여 inode를 확보한다.

4. 권한 문제 해결

디스크 공간이 충분하더라도 권한 문제로 인해 컴파일이 실패할 수 있다. 필요한 디렉토리 또는 파일에 대한 권한이 부족할 수 있다. 이를 해결하기 위해 다음 단계를 수행한다:

  1. 권한 확인 및 수정

    ls -l /path/to/working/directory
    • 디렉토리와 파일의 권한을 확인한다. 필요한 권한이 없으면 수정하거나 접근 가능한 디렉토리로 이동한다.
    chmod u+w /path/to/working/directory

5. 디스크 오류 또는 손상 문제 해결

디스크에 물리적 오류가 있을 수 있다. 이런 경우, 디스크를 검사하고 수리해야 한다. 이를 위해 다음 명령어를 사용한다:

  1. 디스크 검사

    sudo fsck /dev/sdX
    • /dev/sdX를 실제 디스크 장치로 변경하여 디스크 검사 및 수리를 시도한다.

6. sudo 명령어를 사용할 수 없는 경우

시스템에서 sudo 명령어를 사용할 수 없는 경우, 다음과 같은 방법으로 디스크 공간을 확보할 수 있다:

  1. 사용자 권한 내에서 파일 삭제

    개인 홈 디렉토리(~) 또는 권한이 있는 디렉토리에서 불필요한 파일을 삭제하여 공간을 확보한다.

    rm ~/Downloads/largefile.zip
  2. 임시 디렉토리 정리

    /tmp 디렉토리의 경우, 사용자 권한으로 접근 가능한 파일을 삭제할 수 있다.

    rm /tmp/yourfile.tmp
  3. 로그 파일 정리

    사용자 디렉토리에서 생성된 로그 파일을 확인하고, 불필요한 로그 파일을 삭제한다.

    rm ~/.cache/logs/*
  4. 사용자 환경에서 캐시 정리

    패키지 관리자 캐시를 정리할 수 없을 때, 사용자가 접근 가능한 다른 캐시 디렉토리나 임시 파일을 정리한다.

    rm -rf ~/.cache/*
  5. 외부 저장소 사용

    큰 파일을 외부 저장소로 이동하여 디스크 공간을 확보한다.

    mv ~/largefile /path/to/external/storage/

7. 디스크 캐시 및 임시 파일 정리

디스크 캐시나 임시 파일이 문제를 일으킬 수 있다. 이를 정리하여 공간을 확보한다. 다음 명령어를 사용한다:

  1. 임시 파일 정리

    sudo apt-get clean
    • 패키지 관리자 캐시를 정리하여 공간을 확보한다.

8. 큰 파일을 외부 저장소로 이동

외부 저장소(USB 드라이브, 클라우드 저장소 등)에 접근할 수 있다면, 큰 파일을 그곳으로 이동한다. 이를 위해 다음 명령어를 사용한다:

mv ~/large-file /path/to/external/storage/
  • 예를 들어, largefile.mp4/media/usb에 마운트된 USB 드라이브로 이동하려면 다음 명령어를 사용한다:

    mv ~/Videos/largefile.mp4 /media/usb/

9. 컴파일 다시 시도

디스크 공간을 확보한 후, 다시 컴파일을 시도한다:

gcc -Wall -Wextra -Werror -o output ft_rev_params.c
  • ft_rev_params.c를 실제 소스 파일로, output을 원하는 실행 파일 이름으로 바꾼다.

요약

  1. 공간 확인: df -h로 디스크 공간 사용량을 확인한다.
  2. 정리: find, rm, du 명령어를 사용하여 불필요한 파일을 삭제한다.
  3. 파일 이동: 외부 저장소를 이용해 큰 파일을 이동한다.
  4. 문제 해결: 디스크 공간을 확보한 후, gcc로 컴파일을 다시 시도한다.

위의 단계를 통해 gcc 컴파일 문제를 해결하고 디스크 공간을 효율적으로 관리할 수 있다. sudo 권한 없이도 가능한 파일 정리 방법을 활용하여 문제를 해결할 수 있다.

다만 sudo명령어를 사용하지 못하는 상황이나 제한이 있다면 디스크 파일의 임시파일과 캐시파일을 정리하는 것이 효과적일 수 있다
아래는 그 내용이다.

오래된 임시 파일 삭제를 통한 디스크 공간 확보 방법

1. 오래된 파일 찾기

먼저, 오래된 파일을 찾아야 한다. 예를 들어, 7일 이상 사용되지 않은 파일을 찾으려면 다음 명령어를 사용한다:

find /tmp -type f -mtime +7
  • /tmp 디렉토리에서 7일 이상 수정되지 않은 파일들을 찾을 수 있다.
  • -type f 옵션은 파일만 찾도록 설정한다.
  • -mtime +7은 7일 이상 된 파일을 찾도록 한다.

2. 오래된 파일 삭제하기

찾은 오래된 파일을 삭제하려면 -exec 옵션을 사용한다:

find /tmp -type f -mtime +7 -exec rm -f {} \;
  • 이 명령어로 /tmp 디렉토리에서 7일 이상 수정되지 않은 파일들을 자동으로 삭제할 수 있다.
  • rm -f는 강제로 파일을 삭제하는 옵션이다.
  • {}find 명령어에서 찾은 파일들을 가리킨다.
  • \;는 명령어의 끝을 나타낸다.

3. 특정 유형의 임시 파일 삭제하기

특정 확장자를 가진 임시 파일만 삭제하고 싶다면, 다음과 같은 명령어를 사용한다:

find /tmp -type f -name "*.log" -mtime +7 -exec rm -f {} \;
  • 이 명령어로 /tmp 디렉토리에서 7일 이상 된 .log 파일을 찾아 삭제할 수 있다.
  • -name "*.log" 옵션을 사용하여 .log 확장자를 가진 파일만 찾는다.

4. 사용자 홈 디렉토리의 캐시 파일 정리

사용자 홈 디렉토리 내의 캐시 파일을 정리하여 공간을 확보할 수 있다:

find ~/.cache -type f -mtime +30 -exec rm -f {} \;
  • 이 명령어로 홈 디렉토리(~/.cache)의 30일 이상 된 캐시 파일을 찾아 삭제할 수 있다.
  • 캐시 파일은 주기적으로 삭제해도 시스템에 문제가 발생하지 않는다.

5. 삭제 후 컴파일 시도

디스크 공간을 확보한 후, 다시 컴파일을 시도한다:

gcc -Wall -Wextra -Werror -o output ft_rev_params.c
  • ft_rev_params.c를 실제 소스 파일로, output을 원하는 실행 파일 이름으로 바꾼다.

요약

  1. 오래된 파일 찾기: find /tmp -type f -mtime +7 명령어로 오래된 파일을 찾는다.
  2. 오래된 파일 삭제: find /tmp -type f -mtime +7 -exec rm -f {} \; 명령어로 파일을 삭제한다.
  3. 캐시 파일 정리: find ~/.cache -type f -mtime +30 -exec rm -f {} \; 명령어로 오래된 캐시 파일을 삭제한다.
  4. 컴파일 다시 시도: 디스크 공간을 확보한 후 gcc로 컴파일을 다시 시도한다.

이 방법으로 디스크 공간을 효과적으로 정리하고 컴파일 문제를 해결할 수 있다.

profile
리로린의 블로그

0개의 댓글