dpkg-repack - ein Paket von Joey Hess

Hintergrund:

Manche Debianpakete bedürfen leichter Anpassungen, um optimal in einem Skolelinux-Netzwerk zu funktionieren. Dazu gehört z.B. ein voreingestellter Proxy für Browser oder Openoffice. Anderen Paketen fehlen vielleicht geeignete Symbole für das Startmenü - oder sie tauchen an falscher Stelle im Startmenü auf.

Das Programmpaket DPKG-REPACK wurde geschrieben, um aus einer laufenden Installation heraus ein Debian-Paket neu zu erstellen, das er Ursprungsversion entspricht - zuzüglich nachträglich erfolgter Änderungen.

Leicht zweckentfremdet könnte auf diese Weise auch die schulinterne Redistribution von (unfreien) Javapaketen geleistet werden.


Erster Versuch:

1. Installiere das Paket tvbrowser (als JAR-Beispiel) aus http://debian.geole.info etch/contrib Packages

2. (Als root) in /tmp/ # dpkg-repack --generate tvbrowser {{{localhost:/tmp# dpkg-repack --generate tvbrowser dpkg-repack: dpkg-repack: created ./dpkg-repack-17014 for tvbrowser }}} 3. Ergebnis {{{ls -R dpkg-repack-17014/ dpkg-repack-17014/: DEBIAN usr

dpkg-repack-17014/DEBIAN: control md5sums postinst postrm

dpkg-repack-17014/usr: bin share

dpkg-repack-17014/usr/bin: tvbrowser

dpkg-repack-17014/usr/share: applications doc man menu pixmaps tvbrowser

dpkg-repack-17014/usr/share/applications: tvbrowser.desktop

dpkg-repack-17014/usr/share/doc: tvbrowser

dpkg-repack-17014/usr/share/doc/tvbrowser: changelog.Debian.gz copyright

dpkg-repack-17014/usr/share/man: man1

dpkg-repack-17014/usr/share/man/man1: tvbrowser.1.gz

dpkg-repack-17014/usr/share/menu: tvbrowser

dpkg-repack-17014/usr/share/pixmaps: tvbrowser16x16.xpm tvbrowser32x32.xpm

dpkg-repack-17014/usr/share/tvbrowser: enwiki.url forum.url icons imgs linux.properties plugins themepacks tvbrowser.jar tvbrowser.sh website.url wiki.url

dpkg-repack-17014/usr/share/tvbrowser/icons: tango

dpkg-repack-17014/usr/share/tvbrowser/icons/tango: 16x16 22x22 index.theme readme.txt

dpkg-repack-17014/usr/share/tvbrowser/icons/tango/16x16: actions apps categories devices emblems emotes mimetypes status

dpkg-repack-17014/usr/share/tvbrowser/icons/tango/16x16/actions: appointment-new.png edit-copy.png go-to-date-list.png process-stop.png view-filter.png ...

...

dpkg-repack-17014/usr/share/tvbrowser/imgs: beanshell.png FilterSet22.png Info_New.png splash.png desktop.ico Info_Infotainment.png Info_SubtitleForAurallyHandicapped.gif TVBrowser.ico ...

dpkg-repack-17014/usr/share/tvbrowser/plugins: BlogThisPlugin.jar EMailPlugin.jar ListViewPlugin.jar ShowviewPlugin.jar TVRaterPlugin.jar ...

dpkg-repack-17014/usr/share/tvbrowser/themepacks: themepack.zip }}}

4. Anpassen für andere Java-Application (z.B. JFractionLab)

und Umbenennen des entstandenen Ordners:

Ergebnis: {{{ls -R jfractionlab-060b/ jfractionlab-060b/: DEBIAN usr

jfractionlab-060b/DEBIAN: control postinst postrm

jfractionlab-060b/usr: bin share

jfractionlab-060b/usr/bin: jfractionlab

jfractionlab-060b/usr/share: applications doc jfractionlab man menu pixmaps

jfractionlab-060b/usr/share/applications: jfractionlab.desktop

jfractionlab-060b/usr/share/doc: jfractionlab

jfractionlab-060b/usr/share/doc/jfractionlab: changelog.Debian.gz copyright

jfractionlab-060b/usr/share/jfractionlab: jfracionlab.jar jfractionlab.sh linux.properties TableLayout.jar website.url

jfractionlab-060b/usr/share/man: man1

jfractionlab-060b/usr/share/man/man1: jfractionlab.1.gz

jfractionlab-060b/usr/share/menu: jfractionlab

jfractionlab-060b/usr/share/pixmaps: jfractionlab32x32.xpm }}}

So sieht das Paketverzeichnis für den JPrologEditor nach der Anpassung aus (ohne Programm-Icons):

5. Erstellen des neuen Paketes: {{{localhost:/tmp# dpkg --build jfractionlab-060b dpkg-deb: Baue Paket »jfractionlab« in »jfractionlab-060b.deb«.}}}

6. Installation des entstandenen Paketes: {{{localhost:/tmp# dpkg -i jfractionlab-060b.deb (Lese Datenbank ... 422506 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke jfractionlab (aus jfractionlab-060b.deb) ... Richte jfractionlab ein (0.60b) ... Verarbeite Trigger für man-db ... }}}

7. Testen & Fertig: jfractionlab-060b.deb (Download 123k)

Nachtrag: Statt root ist in den meisten Fällen ein "fakeroot" ratsamer.


Weiterführende Lektüre:

RalfGesellensetter/DebianRepaketierung (zuletzt geändert am 2013-11-03 12:10:32 durch anonym)

Alle Inhalte in diesem Wiki stehen unter der GPL.