내가 찾고 있는 것과 비슷하지만 정확히 내가 원하는 것이 아닌 테마를 많이 보았습니다. 몇 가지 배경 지식을 제공하자면, 나의 최종 목표는 일부 C 코드를 컴파일하고 바이너리를 출력할 수 있는 Vagrant 상자를 만드는 것입니다. 내 요구 사항은 다음과 같습니다.
- OS 이미지는 매우 작아야 합니다(약 50MB이면 충분하며 작을수록 좋습니다).
- 이상적으로는 사용하고 싶은 모든 도구를 컴파일하고 싶지 않으므로 pacman 또는 apt-get을 통해 Arch 또는 Debian 패키지 저장소에 액세스할 수 있다면 좋을 것입니다.
- 기본 이미지에 필요한 것은 툴체인, 기본 네트워킹 및 인기 있는 패키지 관리자뿐이었습니다.
아이디어는 Packer를 사용하여 다른 특정 도구와 함께 이 기본 이미지를 사용한 다음 이를 Vagrant 상자로 패키징하는 것입니다.
지금까지 나는 다음과 같은 분포를 살펴보았습니다.
- Tiny Core: 크기 측면에서 매우 흥미롭지만(10MB) 패키지 저장소 때문에 그럴 수 없으며 팩맨에 대해서는 아무것도 본 적이 없습니다.
- Arch Linux: 기본 이미지는 내 요구에 비해 매우 큽니다(>600MB). 사용자 정의 이미지를 만들 수도 있지만 이는 최후의 수단이 될 것입니다.
- Puppy: Tahrpup은 Ubuntu를 기반으로 하지만 여전히 내 취향에 맞습니다. (200MB)
- Alpine: 82MB, 충분하지만 패키지 관리자가 이를 금지합니다.
답변1
행간을 읽어보니 아치를 좋아하는 것 같네요. 를 사용하여 사용자 정의 이미지를 만드는 것은 쉽습니다 mkarchroot
. 이 예를 보세요:
$ mkarchroot -C pacman.conf img packages
어디
pacman.conf
팩맨 구성 파일은 무엇입니까img
파일이 포함된 디렉터리입니다.packages
원하는 패키지 목록입니다(예: 로 시작base grub
).
img
그런 다음 부팅할 수 있는 파일 시스템에 해당 디렉터리의 내용을 쓸 수 있습니다 . 부트로더(예: )를 설정해야 하는데 grub
여기서는 다루지 않겠습니다.
귀하의 필요에 맞는 작동 시스템을 얻으려면 패키지 목록을 구체화해야 할 수도 있지만, 이를 시작하는 것이 좋습니다. 또한 최소 작업 시스템의 경우 모든 패키지가 필요하지 않으므로 base
필요하지 않은 패키지를 제거할 수 있습니다(필요한 패키지를 명시적으로 나열하고 생략 base
).
필요한 경우 일반 버전을 다운로드할 수 있습니다 pacman.conf
.
curl https://git.archlinux.org/svntogit/packages.git/plain/trunk/pacman.conf.x86_64?h=packages/pacman > pacman.conf
(위의 예에서는 5.5G 크기의 파일 시스템을 생성했습니다.)