거대한 Python 패키지를 다운로드하려고 하는데 갑자기 공간 제약이 발생합니다. df -h
명령을 실행하면 다음 과 같이 표시됩니다.
[root@darwin ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 5.0G 5.0G 0.0G 100% /
devtmpfs 7.9G 0 7.9G 0% /dev
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 7.9G 17M 7.9G 1% /run
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
tmpfs 1.6G 0 1.6G 0% /run/user/0
제가 볼 수 있는 것은 /dev/vda1
용량이 100%라는 것뿐입니다. 그런데 다른 파일 시스템은 무료인데 왜 패키지 설치에 사용할 수 없나요?
답변1
devtmpfs
장치 등에 대한 정보로 커널에 의해 채워진 노드를 포함합니다.
tmpfs
마운트된 파일 시스템으로 보이지만 실제로는 메모리에 저장됩니다. 내용을 tmpfs
스왑 공간으로 교체할 수 있지만 시스템을 재부팅하면 내용이 모두 사라집니다.
일부 공간을 비울 수는 있지만 이는 로그, 데이터 및 추가 패키지 설치로 인해 공간이 다시 채워지기 때문에 일시적인 해결 방법일 뿐입니다. 5GB는 장기적으로 볼 때 충분한 공간이 아닙니다.
문제를 영구적으로 해결하는 유일한 방법은 시스템에 영구 저장 공간을 더 추가하는 것입니다.
답변2
5GB 디스크는 크지 않지만 GUI와 다양한 표준 애플리케이션이 포함된 Linux 배포판을 설치할 수 있습니다.
대부분의 디스크 공간을 사용하고 있는 디렉터리를 찾아야 합니다. 사용디스크 사용량 du
그 이유는 다음과 같습니다.
du -smx / | sort -n
목록의 마지막 디렉토리는 모스 공간을 사용합니다.
예를 들어 /var
. 그런 다음 좀 더 자세한 명령을 실행합니다.
du -m /var | sort -n
/var/cache/apt/archives
예를 들어, 418MB를 차지하는 것을 볼 수 있습니다 .
418 /var/cache/apt/archives
472 /var/cache/apt
482 /var/cache
706 /var
가장 많은 공간을 차지하는 디렉토리를 찾으면 해당 디렉토리에서 일부 파일을 삭제할 수 있습니다.
sudo rm /foo/bar
배포판이 Debian과 유사한 배포판인 경우 다음 명령을 사용하여 설치된 패키지를 제거할 수 있습니다.
sudo apt-get clean
답변3
귀하의 질문에 직접 대답하자면, 이러한 파일 시스템을 패키지 설치에 사용할 수 없는 주된 이유는 패키지 파일이 있는 위치(보통 /etc와 /usr로 분할됨)에 설치되지 않기 때문입니다. df -h를 분석하십시오.
devtmpfs 7.9G 0 7.9G 0% /dev
이는 파일 시스템 포인터를 통해 장치를 추적하는 데 사용됩니다. 패키지는 /dev에 들어 가지 않습니다. 이상적으로는 장치만 /dev에 위치합니다.
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 7.9G 17M 7.9G 1% /run
/dev/shm
이는 ("공유 메모리") 및 에 있는 서로 다른 임시 파일 시스템입니다 /run
.
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
이는 /dev와 마찬가지로 이 답변의 범위를 넘어서는 매우 구체적인 목적을 가지고 있습니다.
tmpfs 1.6G 0 1.6G 0% /run/user/0
이는 루트 사용자(uid 0)를 위해 특별히 지정된 마지막 tmpfs입니다.
재부팅하면 해당 내용이 지워지므로 패키지 설치에는 적합하지 않습니다. 아마도 패키지 아카이브를 디스크에 저장하고 tmpfs를 덮어쓰고 부팅할 때마다 모든 패키지를 다시 설치할 수 있을 것입니다. 하지만 저장 공간이 5GB밖에 없다면 내장 장치일 가능성이 높으며 이렇게 하면 무언가를 시작하는 데 시간이 걸릴 것입니다. 장기. 그래도 훌륭한 프로젝트가 될 것입니다.