Jak dodać więcej wariantów lub niestandardowych pakietów do debootstrap?

10

Mam zestaw pakietów, które chcę zainstalować obok wariantu minibase w debootstrap. Najtrudniej jest mi wymyślić, jak dostosować warianty, aby po uruchomieniu debootstrapa w chroot zainstalowano więcej niż tylko bazę. Jest jakiś sposób na osiągnięcie tego?

Marco Ceppi
źródło

Odpowiedzi:

10

Bardzo łatwo jest dodać własny wariant z dodatkowymi niestandardowymi pakietami do debootstrap .

W debootstrap skrypty konfiguracji / wykonywalne znajdują się w /usr/share/debootstrap/scripts. Stwórzmy allmybasewariant, który zawiera wszystko minbasewraz z pakietami htopi traceroute.

  1. Otwórz /usr/share/debootstrap/scripts/precisew swoim edytorze.

    • Zauważ, że wraz z wieloma wydaniami Ubuntu jest to symboliczny link do /usr/share/debootstrap/scripts/gutsy; jeśli chcesz wpłynąć tylko na konkretną wersję, przerwij link i uczyń go kopią skryptu gutsy .
  2. Wokół linii 22 znajdź linię zaczynającą się od variantsi dodaj swój niestandardowy wariant na końcu:

    warianty - buildd fakechroot minbase allmybase
    
  3. Znajdź work_out_debs()funkcję wokół linii 34 i spójrz na domyślne ustawienia basezmiennej dla twojego wariantu „podstawowego” (tutaj, minbase):

        elif doing_variant fakechroot || robi_variant minbase; następnie
                base = "apt"
    
  4. Dodaj własny wariant z niestandardowymi pakietami na końcu funkcji:

        elif doing_variant allmybase; następnie
                base = "apt htop traceroute"
    
  5. Zapisz, wyjdź i przetestuj --print-debsflagą „symulacja”, np

    sudo debootstrap --print-debs --variant = allmybase precision / tmp / prec-chroot
    
    • W tym przykładzie dane wyjściowe pokażą, że pakiety htopi traceroutezostaną uwzględnione w chroot allmybase .
ish
źródło
Wow, myślę, że to wydaje się prawie tak brudne, jak instalacja wariantu i instalacja chroot + apt-get. Dzięki za informację!
Marco Ceppi
Cóż, odrobina bólu raz na wiele zyska, jeśli wielokrotnie instalujesz ten sam wariant;)
ish
Być może ta opcja nie istniała w momencie pytania, ale ten sam efekt można osiągnąć debootstrap --include=htop,traceroutebez żadnych modyfikacji skryptów debootstrap.
raimue