Anleitung pbuilder gesucht
Anleitung pbuilder gesucht
Ich hab mir jetzt erfolgreich die neuesten Wine Pakete für Squeeze mit Hilfe von pbuilder gebaut. Es hat allerdings nur nach dieser Anleitung geklappt:
http://www.beetzsee.de/content/html/squeeze_wine.html
Dort wird zwingend ein *.dsc vorausgesetzt, welches aber nicht im souce.tar.gz von wineHQ enthalten ist. Ich habe deswegen einfach das fertige *.dsc vom Link in der Anleitung genommen.
Jetzt meine Frage:
Kann man mit pbuilder jedes beliebige source.tar.gz in ein .deb verwandeln, oder muss stets ein .dsc vorhanden sein. Falls ja, wie bekommt man das?
http://www.beetzsee.de/content/html/squeeze_wine.html
Dort wird zwingend ein *.dsc vorausgesetzt, welches aber nicht im souce.tar.gz von wineHQ enthalten ist. Ich habe deswegen einfach das fertige *.dsc vom Link in der Anleitung genommen.
Jetzt meine Frage:
Kann man mit pbuilder jedes beliebige source.tar.gz in ein .deb verwandeln, oder muss stets ein .dsc vorhanden sein. Falls ja, wie bekommt man das?
Offenbarung 13 erfüllt sich gerade vor unseren Augen, genießen wir also die letzten Jahre unserer Scheinfreiheit
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: Anleitung pbuilder gesucht
Ich kenne nur folgenden kleinen Trick der das Bauen von Paketen im pbuilder enorm erleichtert, vorallem wenn nicht gewaehrleistet ist, dass der Build erfolgreich endet:
Mittels der Option "--bindmounts" lassen sich Verzeichnisse in das chroot mounten. Es ist also moeglich einen Ordner mit Paketquellen in das Chroot zu mounten. Dann startet man den pbuilder nicht mit der Option "--build", sondern "--login". Auf diese Weise wird das Chroot geoeffnet und man findet sich *im* chroot wieder. Dort hangelt man sich zu seinem Bindmount, installiert die Abhaengigkeiten nach, die man zum Build braucht und wirft den Build per Hand an:
Bei den gebauten Paketen sollte man im Anschluss drauf achten, dass sie wieder im Buildmount liegen. Nach dem Beenden des pbuilders wird naemlich alles anderen wieder weg geraeumt.
Gruss syssi
Mittels der Option "--bindmounts" lassen sich Verzeichnisse in das chroot mounten. Es ist also moeglich einen Ordner mit Paketquellen in das Chroot zu mounten. Dann startet man den pbuilder nicht mit der Option "--build", sondern "--login". Auf diese Weise wird das Chroot geoeffnet und man findet sich *im* chroot wieder. Dort hangelt man sich zu seinem Bindmount, installiert die Abhaengigkeiten nach, die man zum Build braucht und wirft den Build per Hand an:
Code: Alles auswählen
dpkg-buildpackage -rfakeroot
Gruss syssi
-
- Beiträge: 1213
- Registriert: 09.11.2007 13:25:57
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Anleitung pbuilder gesucht
... so muss dann der Quellcode nicht entpackt werden und pbuilder liest alles aus der .dsc-Datei ein (statt mit pdebuild zu bauen).Ich hab mir jetzt erfolgreich die neuesten Wine Pakete für Squeeze mit Hilfe von pbuilder gebaut. Es hat allerdings nur nach dieser Anleitung geklappt:
http://www.beetzsee.de/content/html/squeeze_wine.html
Dort wird zwingend ein *.dsc vorausgesetzt, welches aber nicht im souce.tar.gz von wineHQ enthalten ist. Ich habe deswegen einfach das fertige *.dsc vom Link in der Anleitung genommen.
* wine-unstable_1.3.24-0.2.dsc
* wine-unstable_1.3.24-0.2.debian.tar.bz2
* wine-unstable_1.3.24.orig.tar.bz2
Das alles ist im Grunde das Debian-Quellpaket (Siehe Quellpaket: http://www.debian.org/doc/debian-policy ... cearchives)
Das source.tar.gz ist kein Debian-Quellpaket. Nur wenn der Quellcode im source.tar.gz schon fit für Debian ist, also ein ./debian-Verzeichnis enthält sollte es mit pdebuild (auch aus pbuilder) gehen.Jetzt meine Frage:
Kann man mit pbuilder jedes beliebige source.tar.gz in ein .deb verwandeln, oder muss stets ein .dsc vorhanden sein. Falls ja, wie bekommt man das?
Die .dsc-Datei wird dann beim Bau des Debian-Quellpakets erstellt, nebenher zu den Binär-Paketen (http://www.debian.org/doc/debian-policy ... ntrolfiles).
MfG up: Der hofft das ist soweit richtig...
Zuletzt geändert von lemak am 19.11.2011 01:28:47, insgesamt 2-mal geändert.
Re: Anleitung pbuilder gesucht
Also man kann ein source.tar.gz nur mit pbuilder verarbeiten, wenn's bereits ein Debian-Verzeichnis enthält? Das ist jammer schade. Was wenn dem nicht so ist? Dann ist ja pbuilder nur recht eingeschränkt nutzbar. Außer natürlich mit syssis Methode.
@syssi
Ich bin über pbuilder gestolpert, weil ich keine Lust hatte, mein System mit über 200 Paketen vollzumüllen. Kannst Du mir kurz erklären, wie ich pbuilder als vollständige build-Umgebung nutzen kann? Ich bin noch totaler Anfänger ...
@all
Übrigens hatte pbuilder --create mir kein base.tgz erstellt, und dass obwohl keine Fehlermeldung kam. Ich musste erst in der /usr/share/pbuilder/pbuilderrc explizit die gewünschte Distro - Stable - eintragen und den Speicherort ändern. Erst dann hat er mir eine base.tgz erstellt.
@syssi
Ich bin über pbuilder gestolpert, weil ich keine Lust hatte, mein System mit über 200 Paketen vollzumüllen. Kannst Du mir kurz erklären, wie ich pbuilder als vollständige build-Umgebung nutzen kann? Ich bin noch totaler Anfänger ...
@all
Übrigens hatte pbuilder --create mir kein base.tgz erstellt, und dass obwohl keine Fehlermeldung kam. Ich musste erst in der /usr/share/pbuilder/pbuilderrc explizit die gewünschte Distro - Stable - eintragen und den Speicherort ändern. Erst dann hat er mir eine base.tgz erstellt.
Offenbarung 13 erfüllt sich gerade vor unseren Augen, genießen wir also die letzten Jahre unserer Scheinfreiheit
-
- Beiträge: 1213
- Registriert: 09.11.2007 13:25:57
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Anleitung pbuilder gesucht
Dann musst du eins erstellen: Siehe dh-makeclue hat geschrieben:Also man kann ein source.tar.gz nur mit pbuilder verarbeiten, wenn's bereits ein Debian-Verzeichnis enthält? Das ist jammer schade. Was wenn dem nicht so ist?
Hmm... ohne Fehlermeldung ist ja doof. Könnte mir vorstellen das die DISTRIBUTION-Variable keinen Default-Wert hat.@all
Übrigens hatte pbuilder --create mir kein base.tgz erstellt, und dass obwohl keine Fehlermeldung kam. Ich musste erst in der /usr/share/pbuilder/pbuilderrc explizit die gewünschte Distro - Stable - eintragen und den Speicherort ändern. Erst dann hat er mir eine base.tgz erstellt.
Re: Anleitung pbuilder gesucht
Genau genommen war die Variabel auskommentiert. Darum dachte ich ja auch, er würde standardmäßig stable nehmen. Komischerweise hat pbuilder dann ne ganze Reihe Pakete runtergeladen und "installiert" aber dennoch kein base.tgz angelegt. Wie gesagt, erst nachdem ich mich um die Distributionsvariabel gekümmert habe gings.up hat geschrieben:Dann musst du eins erstellen: Siehe dh-makeclue hat geschrieben:Also man kann ein source.tar.gz nur mit pbuilder verarbeiten, wenn's bereits ein Debian-Verzeichnis enthält? Das ist jammer schade. Was wenn dem nicht so ist?
Hmm... ohne Fehlermeldung ist ja doof. Könnte mir vorstellen das die DISTRIBUTION-Variable keinen Default-Wert hat.@all
Übrigens hatte pbuilder --create mir kein base.tgz erstellt, und dass obwohl keine Fehlermeldung kam. Ich musste erst in der /usr/share/pbuilder/pbuilderrc explizit die gewünschte Distro - Stable - eintragen und den Speicherort ändern. Erst dann hat er mir eine base.tgz erstellt.
Offenbarung 13 erfüllt sich gerade vor unseren Augen, genießen wir also die letzten Jahre unserer Scheinfreiheit
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: Anleitung pbuilder gesucht
Also Anfaenger hast du dich da schon sehr tief im Pakete basteln verlaufen. Ja, pbuilder ist ein sehr schoener Weg Debian-Palete zu bauen, ohne die ganzen build-deps auf seinem Live-System installieren zu muessen. Nehmen wir mal an du findest ein Paket im Repository, in welchem dir ein Feature fehlt, welches zur Compile-Zeit einfach nicht aktiviert wurde. Dann wuerdest du wie folgt vorgehen:clue hat geschrieben:@syssi
Ich bin über pbuilder gestolpert, weil ich keine Lust hatte, mein System mit über 200 Paketen vollzumüllen. Kannst Du mir kurz erklären, wie ich pbuilder als vollständige build-Umgebung nutzen kann? Ich bin noch totaler Anfänger ...
Code: Alles auswählen
apt-get source ffmpeg
apt-get build-dep ffmpeg
cd ffmpeg-x.x.x
vim debian/rules (das Feature aktivieren)
dch -i (Changelog-Eintrag erzeugen, um dein Vorgehen zu dokumentieren)
dpkg-buildpackage -rfakeroot
Schoenerer weg:
Code: Alles auswählen
apt-get source foo
pbuilder --build foo_version.dsc
Nun koennen wir von diesem automatisierten Build-Prozess aber auch abweichen, indem wir pbuilder mit der Option "login" starten. Dabei wird deine Minimalinstallation entpackt und deine Shell wird ins Jail geworfen. Du kannst du nun also in deiner pbuilder-Installation bewegen, als waere es dein normales System. Dort installierst du Abhaengigkeiten, kannst Software compilieren uvm. Beendest du diese Shell wieder, dann raeumt pbuilder fuer dich auf und *nichts* bleibt uebrig. Deshalb habe ich in meinem letzten Post vom "bindmount" geschrieben, ueber welchen du die Moeglichkeit hast ein Verzeichnis von deiner Festplatte in das Jail zu mounten, so dass du Dateien (zum Beispiel erfolgreiche Builds: Debs) in dieses Verzeichnis kopieren kannst und sie nicht verloren sind, sobald du den pbuilder beendest.
Was aus den letzten Beitraegen klar geworden sein muss: Software (Sourcen) muessen debianisiert sein, damit man sie mit den Debian-Buildtools bauen und zu einem Paket schnueren kann. Das ist die Aufgabe der Paket-Maintainer. Toll ist es natuerlich, wenn man Software-Projekte findet, in welchen ein debian-Verzeichnis existiert und sich aktuellste Version aus einer Versionskontrolle direkt bauen lassen. Dies ist aber leider nur selten der Fall.
Gruss syssi
-
- Beiträge: 1213
- Registriert: 09.11.2007 13:25:57
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: Anleitung pbuilder gesucht
Der Vollständigkeit halber noch der Weg mit pdebuild. So gehe ich vor, da der Quellcode von apt-get ja eh schon entpackt wird.
Code: Alles auswählen
apt-get source ffmpeg (apt-get build-dep ist nicht nötig)
cd ffmpeg-x.x.x
editor debian/rules (das Feature aktivieren)
dch -i (Changelog-Eintrag erzeugen, um dein Vorgehen zu dokumentieren)
pdebuild (Anstelle von debuild, dpkg-buildpackage -rfakeroot usw.)
-
- Beiträge: 2951
- Registriert: 24.12.2010 16:50:59
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Rheinland
Re: Anleitung pbuilder gesucht
Cool! Auch ein sehr angenehmer weg.
Re: Anleitung pbuilder gesucht
Danke Euch Beiden für Eure ausführlichen Antworten. Mir gefällt die Idee mit Pbuilder / Pdebuilder sehr gut. Das Einzige, was mich etwas stört, ist dass man auf ein Debian Verzeichnis angewiesen ist. Aber da ich noch über kein source-file gestolpert bin, welches das nicht hat (ich hab nämlich erst eine handvoll versucht zu kompilieren), wird dieser Fall hoffentlich nie eintreten.
Danke an Euch Beide!
Danke an Euch Beide!
Offenbarung 13 erfüllt sich gerade vor unseren Augen, genießen wir also die letzten Jahre unserer Scheinfreiheit
- KBDCALLS
- Moderator
- Beiträge: 22447
- Registriert: 24.12.2003 21:26:55
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Dortmund
-
Kontaktdaten:
Re: Anleitung pbuilder gesucht
Ist die Distributionsvariable kommentiert , dann wird ohne weitere Vorkehrungen das base.tgz für unstable erstellt. Entweder man ändert die Variable in der rc Datei von pbuilder oder man gibt pbuilder entprechende Komandozeilenoptionen mit. Als Vorlage kann man ein schon existierenden Debiansource nehmen um an das Debian Verzeichnis zu kommen. Mit uupdate kann man gegebenenfalls einen Source updaten. Neuere Upstream Version ist vorhanden. Nachzulesen im maint-guide Es gibts war eine Deutsche Übersetzung die ist aber nicht mehr aktuell. Für die Grundlagen reichts aber , ansonsten muß man sich durch die Englische wühlen.
Nimmt man übrigens pdebuild dann werden die Pakete und Sourcen gleich signiert. Also muß das angepasst werden.
Nimmt man übrigens pdebuild dann werden die Pakete und Sourcen gleich signiert. Also muß das angepasst werden.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
Kaum macht man ein Fenster auf, gehen die Probleme los.
EDV ist die Abkürzung für: Ende der Vernunft
Bevor du einen Beitrag postest:
- Kennst du unsere Verhaltensregeln
- Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.