apt를 사용하여 mysql을 설치할 때 "사용할 추가 디스크 공간"은 필요한 파일 크기보다 10배 더 큽니다. 어떻게?

apt를 사용하여 mysql을 설치할 때 "사용할 추가 디스크 공간"은 필요한 파일 크기보다 10배 더 큽니다. 어떻게?

나는 이전에 다른 응용 프로그램에서 이것을 본 적이 있지만 오늘 밤에는 mysql에서 이것을 발견했습니다.

$ sudo apt install mysql-server
[...]
0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
Need to get 18.7 MB of archives.
After this operation, 161 MB of additional disk space will be used.

압축으로는 차이점을 설명할 수 없습니다. 그렇죠?

답변1

mariadb-client-10.1, 이 명령이 설치할 패키지 중 하나,5,704kiB입니다(amd64에서). 설치된 크기는 45,347kiB로 크기의 약 8배이며 18.7/161 비율과 거의 일치합니다.

파일을 추출하고 해당 파일의 출처를 살펴보겠습니다.

$ ar x mariadb-client-10.1_10.1.26-0+deb9u1_amd64.deb
$ tar xJf data.tar.xz
$ du -shc usr/bin usr/share etc
45M     usr/bin
200K    usr/share
20K     etc
45M     total

따라서 패키지가 게시된 크기에 매우 가깝게 추출되는 것을 볼 수 있습니다. 우리가 한 일은 표준 추출 도구를 사용한 것 뿐이므로 특별한 일이 apt발생하지 않았습니다.

좀 더 자세히 살펴보겠습니다.

$ du -s usr/bin/mariabackup
18M     usr/bin/mariabackup
$ xz < usr/bin/mariabackup|wc -c
4542540

그래서 우리는 볼 수 있습니다단일 파일패키지 크기의 3배 크기로 특별한 노력 없이 패키지보다 작은 크기로 압축할 수 있습니다. 다른 압축은 훨씬 더 좋습니다. 압축된 tar 파일은 여러 포함 파일의 추가 중복성을 활용할 수 있습니다.

그렇습니다. 압축은 거의 모든 곳에서 차이를 설명할 수 있습니다.

답변2

그건모두압축될 때까지. 예시 보기mariadb-server-10.1패키지76,605kB 파일이 포함되어 있지만 amd645,208.2kB로 압축되었습니다...

xz여기에 사용된 압축은 전체 타르볼에 대한 것이므로 파일 간의 중복성을 사용하여 전체 크기를 줄일 수 있다는 점을 명심하십시오 . 패키지에 제공되는 많은 바이너리에는 공통 부분이 있습니다. ~처럼마이클 호머~의답변단일 바이너리 파일도 잘 압축할 수 있음을 보여줍니다.

한편, 설치 전 치수를 표시하는 데 사용되는 정보는 다음과 같습니다."설치 크기" 필드패키지를 빌드할 때 측정되는 패키지 메타데이터에서는 패키지 콘텐츠의 실제 크기를 잘 나타내는 동시에 다운로드한 아카이브의 크기도 표시합니다. 설치 크기는 설치 중에 사용된 임시 디스크 공간을 고려하지 않으며 패키지에 포함된 파일의 크기만 반영합니다.

관련 정보