pBuilder
Quelle: PbuilderHowto
Einleitung[/u]
Dieses Dokument beschreibt Schritt für Schritt wie man ein pBuilder Chroot System bastelt, mit dem man Ubuntu Pakete erstellt. Es ist für Ubuntu Maintainer und jeden, der Pakete für Ubuntu erstellen will geeignet.
Du kannst Pakete ohne pbuilder basteln, aber du musst die Abhängigkeiten des Paketes das du bauen willst auf deinem System schon installiert haben.
Es folgt die Anleitung für "breezy". Wenn du eins für "hoary" oder "dapper" haben willst ändere das "breezy". Installation[/u]
sudo apt-get install pbuilder
Bearbeite "/etc/pbuilder/pbuilderrc" und ändere wie folgt:
MIRRORSITE=http://archive.ubuntu.com/ubuntu DISTRIBUTION=breezy
Wenn pBuilder sich über unbestätigte Pakete beschwert, musst du diese Erlauben. Dies durch bearbeiten von "/etc/pbuilder/pbuilderrc":
APTCONFDIR="/etc/pbuilder/apt.config/"
Nun musst du benötigte Dateien von /etc/apt in pBuilder Verzeichnis kopieren:
sudo mkdir /etc/pbuilder/apt.config/ sudo cp -ar /etc/apt/* /etc/pbuilder/apt.config/ sudo touch /etc/pbuilder/apt.config/apt.conf.d/allow-unauthenticated
und die folgende Zeile zu Datei "/etc/pbuilder/apt.config/apt.conf.d/allow-unauthenticated" hinzufügen:
APT::Get::AllowUnauthenticated 1;
Anmerkung: Gehe sicher, dass du "99update-notifier" von "/etc/pbuilder/apt.config/apt.conf.d/" entfernt hast. Wenn du es im letzten Schritt mit kopiert hast. Es könnte spätere Updates im pBuilder Chroot verhindern. Speichere die Datei und führe den folgenden Befehl aus um das breezy Chroot zu bauen:
sudo pbuilder create --distribution breezy
Ein Paket neu neu kompilieren[/u] Wenn du diesen Punkt erreicht hast, ist dein Breety Chroot schon an der Position /var/cache/pbuilder fertig, um ein Paket zu erstellen. Wir werden nun ein Debian Source Paket vom Ubuntu Reposity laden und das Breezy Chroot testen. Um zu testen ob du Source Pakete laden kann muss du eine unkomentierte Zeile in /etc/apt/sources.list haben, die das folgende enthält:
{{{
deb-src http://archive.ubuntu.com/ubuntu breezy main restricted
}}} Falls die obere Zeile existiert, aber als Kommentar, bearbeite sie so, dass sie kein Kommentar ist. Stelle sicher, dass dein Paket Index dazu passt. Dazu einfach das ausführen:
{{{
sudo apt-get update
}}} Wir werden nun "bc", einen einfachen Taschenrechner, neu aus den Sourcen erstellen. Als erstes laden wir das Source Paket:
{{{
sudo apt-get source bc
}}} Das Paket kannst du in deinem Breezy chroot so erstellen:
{{{
sudo pbuilder build *.dsc
}}} Zum Schluss liegen Binary und Sourcen im folgenden Verzeichnes: "/var/cache/pbuilder/result/" Das Chroot Updaten[/u]
Du solltest das Chroot vor jedem neuen Paket, das du baust updaten:
sudo pbuilder update
Universe support[/u]
Wenn du ein Paket aus dem Universe Zweig, oder ein neues bauen willst, das Pakete aus dem Main Zweig benötigt, musst du erneut die "/etc/pbuilderrc" öffnen, und das folgende ändern:
{{{
OTHERMIRROR="deb http://archive.ubuntu.com/ubuntu breezy universe multiverse"
}}}
Außerdem musst du das Chroot mit den neuen Einstellungen updaten:
{{{
sudo pbuilder update --distribution breezy --override-config
}}} Upgrading to Latest Development Release[/u] Wenn du dich am aktuellen Release beteiligen willst, benötigst du ein Dapper Chroot. Manchmal könnte es sein, dass die Development Version nicht direkt installierbar ist. In diesem Fall, musst du erst das letzte Release installieren und das Chroot dann erst Updaten.
1. ändere jedes Auftreten von "breezy" in der Datei "/etc/pbuilderrc" und "/etc/pbuilder/apt.config/" zu "dapper" 2. führe den Befehl "sudo pbuilder update --override-config" aus. 3. benutze den "--override-config" bei jedem Update, das du machst.
Anmerkung:
Wenn du Fehler, dass die Datei "/etc/shadow" nicht im Chroot liegt, liegt der Debian Fehler #338976 vor. Ändere deine "/usr/lib/pbuilder/pbuilder-buildpackage-funcs", wie der Patch am Ende des Bug Reports über diesen Fehler sagt und warte auf pbuilder 0.139.