2011-01-16 21 views
2

Ich verwende dh_help, um eine Paketvorlage zu erstellen und versuche, den Ubuntu- und Debian-Pakethandbüchern zu folgen, um ein Binärpaket zu erstellen.Conf-Dateien und statische Dateien in einem Deb-Paket

Wie sage ich debuild, welche Datei eine conf-Datei ist und sollte zum Beispiel nach /etc/mypkg.conf gehen? Ich habe versucht, es unter mypkg-0.1/etc/mypkg/fname.conf zu setzen, aber debuild ignoriert es. Der Debian Guide sagt, dass alle Dateien unter etc/automatisch als conf Dateien behandelt werden, aber es funktioniert nicht für mich (http://www.debian.org/doc/maint-guid...ml#s-conffiles). Ich habe versucht, die Conf-Datei unter mypkg-1.0/etc/mypkg.conf und unter mypkg-1.0/debain/etc/mypkg.conf, aber es ist nicht enthalten. Ich habe auch versucht, die Datei in conffiles aufzulisten, aber ich bekomme einen Fehler, der beim Erstellen des Pakets nicht gefunden werden kann.

Ich verstehe auch nicht, wie Sie statische Dateien in das Paket aufnehmen. Muss ich die Installationsdatei verwenden, um alle Dateien und Ordner aufzulisten? Ich dachte, dass alles mit dem vollständigen Pfad unter dem Mypkgs-0.1-Ordner wie bei der manuellen Verwendung von Dpkg funktioniert.

Dank

Antwort

4

Da virapor sagte, Sie können einen Installationsbefehl für jede Datei in Ihre debian/rules setzen, um die Dateien in das Verzeichnis debian/pkgname zu installieren.

Oder Sie können eine debian/install Datei verwenden, um einfach alle Dateien (oder nur Verzeichnisse) aufzulisten und einen dh_install Befehl in Ihrem debian/rules dafür zu haben.

Es scheint, Sie sind ein wenig verwirrt darüber, wie Pakete gebaut werden und welche Dateien enthalten sind. Dies ist extrem verallgemeinert, aber wenn das Skript debian/rules ein Programm kompiliert, das die Standardmethode ./configure && make && make install verwendet, weist es die make install an, die Dateien unter debian/pkgname anstelle von / zu installieren. Dann weiß es, dass alles unter debian/pkgname ist, was im endgültigen .deb sein sollte. Wenn der Schritt make install nicht alles an den richtigen Ort bringt, muss das Skript debian/rules dies tun. Bisher scheint es, install ... von debian/rules aufrufen, um die Dateien in das debian/pkgname Verzeichnis zu kopieren war üblich, aber jetzt mit einer debian/install Datei scheint die bevorzugte Methode zu sein.

+0

Wie wird 'make install' angewiesen, in' debian/packagename' zu ​​installieren? Ich bekomme immer 'debian/tmp' (aber ich habe keine spezielle Konfiguration). – Dennis

0

Sie müssen die Paketversion nicht enthalten, wenn Sie Dateien über die Standard-debhelper/debian/rules Datei installieren. Stattdessen im Installationsschritt tun:

install -cm 644 fname.conf $(CURDIR)/debian/mypkg/etc/mypkg/fname.conf 

Und es sollte ordnungsgemäß enthalten sein.