Distribuição pequena somente CLI baseada em Arch ou Debian

3

Eu observei muitos tópicos que parecem com o que estou procurando, mas não são exatamente o que eu quero. Para lhe dar algum contexto, meu objetivo final é ter uma caixa Vagrant que possa compilar algum código C e gerar um binário. Estas são minhas exigências:

  • A imagem do SO precisa ser muito pequena (cerca de 50 MB seria bom o suficiente, quanto menor, melhor)
  • Idealmente, eu não quero compilar todas as ferramentas que gostaria de usar, então seria bom se eu tivesse acesso ao repositório de pacotes do Arch ou do Debian através do pacman ou do apt-get
  • Tudo que preciso na imagem de base é um conjunto de ferramentas, rede básica e um gerenciador de pacotes popular

A idéia é que essa imagem base seja complementada com outras ferramentas específicas usando o Packer e, em seguida, empacotada como uma caixa do Vagrant.

Até agora, olhei para estas distribuições:

  • Tiny Core: Muito interessante em termos de tamanho (10 MB), mas o repositório de pacotes faz com que seja um não-não, e eu não vi nada sobre como obter o pacman nele.
  • Arch Linux: A imagem de base é muito grande para as minhas necessidades (> 600 MB). Eu posso ser capaz de criar uma imagem personalizada, mas este é um último recurso.
  • Filhote de cachorro: Tahrpup é baseado no Ubuntu, mas ainda é grande para o meu gosto (200 MB)
  • Alpine: 82 MB, bom o suficiente, mas novamente o gerenciador de pacotes faz com que seja um não-não
por Fahd 19.01.2016 / 12:27

1 resposta

0

Lendo nas entrelinhas, acho que você gosta do Arch. Bem, é fácil criar uma imagem personalizada usando mkarchroot . Veja este exemplo:

$ mkarchroot -C pacman.conf img packages

onde

  • pacman.conf é o seu arquivo de configuração do pacman
  • img é um diretório para conter os arquivos
  • packages é a lista de pacotes que você gostaria de ter (por exemplo, começar com base grub )

Você pode então gravar o conteúdo desse diretório img em um sistema de arquivos do qual você pode inicializar. Você precisará configurar um gerenciador de inicialização (por exemplo, grub ), o que não vou abordar aqui.

Você pode precisar refinar sua lista de pacotes para obter um sistema funcional adequado às suas necessidades, mas isso deve ajudá-lo a começar. Além disso, você não precisa de todos os base para um sistema operacional mínimo, para que você possa aparar os pacotes que você não precisa (liste pacotes obrigatórios explicitamente e omita base ).

Se precisar, você pode fazer o download de uma baunilha pacman.conf :

curl https://git.archlinux.org/svntogit/packages.git/plain/trunk/pacman.conf.x86_64?h=packages/pacman > pacman.conf

(meu exemplo acima gera um sistema de arquivos de tamanho 5.5G)

    
por 20.12.2016 / 15:57