Changes between Version 15 and Version 16 of CdDetails


Ignore:
Timestamp:
May 2, 2007, 1:32:36 PM (11 years ago)
Author:
ps
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CdDetails

    v15 v16  
    11= Installations-CD bauen, die Details =
    22
    3 Beim Bauen einer Installations-CD kommen eine ganze Reihe von Skripten zum Einsatz, die einzelne Arbeitsgänge erledigen. Eine einigermaßen schnelle Internet-Anbindung ist dabei Voraussetzung, da mehre hundert MByte aus dem Internet heruntergeladen werden. Beim Testen einer Installations-CD wird man diesen Vorgang mehrfach wiederholen, sodass sich der Einsatz eines apt-proxy empfiehlt, der die Pakete lokal zwischenspeichert.
     3Beim Bauen einer Installations-CD kommen eine ganze Reihe von Skripten zum Einsatz, die einzelne Arbeitsgänge erledigen. Eine einigermaßen schnelle Internet-Anbindung ist dabei Voraussetzung, da mehre hundert MByte aus dem Internet heruntergeladen werden. Beim Testen einer Installations-CD wird man diesen Vorgang mehrfach wiederholen, sodass sich der Einsatz eines apt-proxy empfiehlt, der die Pakete lokal zwischen speichert.
    44
    5 Im ersten Schritt muss man allerdings viel von Hand erledigen, um die wesentlichen Komponenten des Debian-Installers aus einer bestehenen CD herauszulösen. Dafür bieten sich derzeit normalerweise die Snapshots der netinst-Images an, die die Debian-Entwickler regelmäßig zum Download bereitstellen. Besser noch, man greift auf eine Milestone-Release zurück, etwa eine Beta oder einen Release Candidate - hier kann man sich ausgiebigere Installationstest meist schenken.
     5Im ersten Schritt muss man allerdings viel von Hand erledigen, um die wesentlichen Komponenten des Debian-Installers aus einer bestehenden CD herauszulösen. Dafür bieten sich derzeit normalerweise die Snapshots der netinst-Images an, die die Debian-Entwickler regelmäßig zum Download bereitstellen. Besser noch, man greift auf eine Milestone-Release zurück, etwa eine Beta oder einen Release Candidate - hier kann man sich ausgiebigere Installationstest meist schenken.
    66
    77== Aktuelle Bau-Skripte holen und vorbereiten ==
     
    1313}}}
    1414
    15 Versionen des Skripts, die zum Bauen bereits veröffentlichter CDs verwendet worden sind, finden sich im Repository unter einem [/trac/ctvdr/browser/ctvdrcd/tags entsprechenden Tag]. Im aktuellen Verzeichnis ensteht dabei das Unterverzeichnis ctvdrcd, in dem der Rest passiert. Die Skripte liegen alle im Unterverzeichnis scripts.
     15Versionen des Skripts, die zum Bauen bereits veröffentlichter CDs verwendet worden sind, finden sich im Repository unter einem [/trac/ctvdr/browser/ctvdrcd/tags entsprechenden Tag]. Im aktuellen Verzeichnis entsteht dabei das Unterverzeichnis ctvdrcd, in dem der Rest passiert. Die Skripte liegen alle im Unterverzeichnis scripts.
    1616
    1717{{{
     
    5555Das eigentliche Zusammensuchen der Pakete übernimmt ./scripts/mk_repos_vdrplus.sh. Es baut mittels debootstrap eine chroot-Umgebung auf, in die hinein dann die übrigen Pakete installiert beziehungsweise kopiert werden. Das Skript läuft nur mit root-Rechten. Im Skript stehen die Server, von denen es die Pakete bezieht. Die Version im SVN geht davon aus, dass ein apt-proxy auf dem gleichen Host läuft (localhost). Außer den dort eingetragenen Repositories wird ein weiteres benötigt, in dem sich zum installierenden Kernel passende Pakete befinden, etwa für Hollywood+, Lirc und so weiter.
    5656
    57 Das Skript läuft ene ganze Weile, auch wenn der apt-proxy-Cache gefüllt ist. Es tut seine Arbeit in mehreren Schritten (stage1 bis 5): stage1 erstellt per debootstrap in tmp/vdr.staging die Grundinstallation, in die per chroot gewechselt werden kann. stage2 holt weitere nötige Pakete, deren Liste es conf/vdr_packages.list entnimmt -- alle in diesen beiden Schritten heruntergeladenen deb-Dateien (Debian-Pakete) kommen in der chroot-Umgebung in /var/cache/apt/archive zu liegen. In der chroot-Umgebung sind aktiv nur die Basis-Pakete intstalliert, der Rest wird nur heruntergeladen (mehr braucht man für das Bauen der CD ja auch nicht).
     57Das Skript läuft eine ganze Weile, auch wenn der apt-proxy-Cache gefüllt ist. Es tut seine Arbeit in mehreren Schritten (stage1 bis 5): stage1 erstellt per debootstrap in tmp/vdr.staging die Grundinstallation, in die per chroot gewechselt werden kann. stage2 holt weitere nötige Pakete, deren Liste es conf/vdr_packages.list entnimmt -- alle in diesen beiden Schritten heruntergeladenen deb-Dateien (Debian-Pakete) kommen in der chroot-Umgebung in /var/cache/apt/archive zu liegen. In der chroot-Umgebung sind aktiv nur die Basis-Pakete installiert, der Rest wird nur heruntergeladen (mehr braucht man für das Bauen der CD ja auch nicht).
    5858
    5959stage3 sammelt schließlich per apt-cache search nahezu alle erreichbaren vdr-(plugin/addon-)Pakete zusammen und holt sie ebenfalls per apt-get install --download-only in das Cache-Verzeichnis; in diesem Schritt werden auch sonstige nötige Pakete von Hand angefordert, etwa Kernel, ctvdrcfg et cetera; dieser Schritt berücksichtigt auch eventuell erreichbare vdrdevel-Pakete. Für Pakete, die einander im realen Betrieb - also bei manueller Installation - gegenseitig rauskicken (etwa vdr-plugin-mediamvp und vdr-plugin-vompserver), muss stage3 Umwege in Kauf nehmen, und sie von Hand installieren. Sie sind entsprechend bei der Übernahme der Ergebnisse des "apt-cache search"-Laufs aus der Liste auszusortieren.
     
    6363mk_repos_vdrplus.sh enthält darüber hinaus zwei weitere Bearbeitungsschritte 4a, 4b und 5a, die zusätzliche Pakete für die CD einsammeln und sich dabei anderer Repositories bedienen, unter anderem auf den unstable-Zweig von Debian-Mulitmedia zurückgreifen müssen (ehemals Marillat/Nerim). Diese Zweige kamen ursprünglich zum Einsatz, wenn auf den VDR-CD auch MythTV oder Freevo integriert waren. In der der jetzigen Fassung dient es aber nur dazu, ein minimales X-Window-System mit einigen Werkzeugen mit auf die CD zu bringen. Wenn das nicht gewünscht ist, lässt sich der Aufruf dieser Schritte am Ende des Scripts auskommentieren.
    6464
    65 Geht beim Zusammenstellen der Repositories mit dem Script etwas schief, kann man hinter einem apt-proxy den Vorgang neu anstarten. Man kann auch geziellt einzelne Schritte erneut anstoßen. mk_repos_vdrplus.sh setzt stamps ins root-Verzeichnis der chroot-Umgebung (.stage1 ...). Wenn man die löscht, läuft beim Aufruf des Skripts der jeweilige Schritt erneut. Nicht in allen Fällen führt das aber zu sauberen Zuständen. Im Zweifelsfall schmeißt man besser das vdr.staging-Verzeichnis in tmp weg und beginnt von vorn.
     65Geht beim Zusammenstellen der Repositories mit dem Script etwas schief, kann man hinter einem apt-proxy den Vorgang neu anstarten. Man kann auch gezielt einzelne Schritte erneut anstoßen. mk_repos_vdrplus.sh setzt stamps ins root-Verzeichnis der chroot-Umgebung (.stage1 ...). Wenn man die löscht, läuft beim Aufruf des Skripts der jeweilige Schritt erneut. Nicht in allen Fällen führt das aber zu sauberen Zuständen. Im Zweifelsfall schmeißt man besser das vdr.staging-Verzeichnis in tmp weg und beginnt von vorn.
    6666
    6767== Den Debian-Installer zusammenklauben ==
    6868
    69 Ein netinst-CD-Image genügt, um an die wesentlichen Komponenten des Debian-Installers heranzukommen. Eine kleinere Installations-CD genügt nicht, weil sie nicht all nötigen Kompoenten enthält. Es kommt auf zwei Sorten Dateien an: die udebs (Micro-debs), aus denen der Installer besteht, und die Startdateien für die CD (in install). Im svn sind derzeit die Dateien enthalten, die die Debian-Entwickler auf die Beta 3 des zukünftigen Installers für Debian Etch veröffentlicht haben. Sie landen bei einem Export in stagingplus/install und tmp/mergedudebs.
     69Ein netinst-CD-Image genügt, um an die wesentlichen Komponenten des Debian-Installers heranzukommen. Eine kleinere Installations-CD genügt nicht, weil sie nicht alle nötigen Komponenten enthält. Es kommt auf zwei Sorten Dateien an: die udebs (Micro-debs), aus denen der Installer besteht, und die Startdateien für die CD (in install). Im svn sind derzeit die Dateien enthalten, die die Debian-Entwickler auf die Beta 3 des zukünftigen Installers für Debian Etch veröffentlicht haben. Sie landen bei einem Export in stagingplus/install und tmp/mergedudebs.
    7070
    7171Ein spezielles Skript ./scripts/mk_udeb_pool.sh wandelt die Dateien in tmp/mergedudebs in ein Pool-Verzeichnis um (in/nach tmp/di_pool). Auf den ersten Blick ist das umständlich, weil man diese Struktur womöglich auch direkt aus dem Debian-ISO lösen kann. Interessant wird das aber, wenn man udeb-Dateien des Debian-Installers einer bestehenden CD mit neuen udeb-Dateien für einen neuen Kernel mischen will (um einen neuen Kernel in den Installer hineinzubringen, muss der nicht nur übersetzt sein, sondern er und seine Module in udeb-Datei zerhackt werden) oder einzelne Komponenten austauschen will.
    7272
    73 == Die Repositories zuammenführen ==
     73== Die Repositories zusammenführen ==
    7474
    7575Das Skript ./scripts/merge_pools_in_staging_plus.sh nimmt die tmp/di_pool-Struktur und die in tmp/vdr.staging generierten Repositories, verheiratet sie und legt sie in stagingplus ab, sodass sie später in die CD eingebaut werden können; das Skript kopiert in diesem Schritt auch die Dateien, die man unter Umständen nicht direkt an Dritte weitergeben sollte. Das Pool-Verzeichnis für die udeb-Dateien wird an spezieller Stelle in die CD eingebaut. Das Skript erstellt darüber hinaus mittels apt-ftparchive Release-Dateien. Außerdem kopiert es die beim Zusammenstellen der Pakete erstellte Liste, die später ctvdrcfg Hinweise auf Pakete gibt, die nur mit externen Paketquellen installierbar sind.