Debian/Ubuntu: Control-Infos von DEB-Packages ändern / editieren

Ab und an habe ich nach einem einfachen Weg gesucht die Contol-Informationen von .Deb-Paketen eigenhändig anzupassen. Die Gründe dazu sind vielfältig. Zum einen gibt es öfters mal Bugs in Pakages aus Debian Repositories wie „testing“ oder „unstable“, da möchte man zum Teil nicht Tage oder Wochen auf einen Fixup des Paketes warten. Oder aber es handelt sich um Pakete die man aus Eigencompilaten von modifizierten Sourcen erstellte hat (z.B. Postfix), was mittels checkinstall unglaublich einfach und schnell geht.

Woher man DEB-Packages auch immer bekommt, bislang kannte ich nur recht mühsame Wege daran etwas zu ändern und anschliessend wieder ein brauchbares Paket heraus zu bekommen. In diesem Blog wurde ich aber auf eine Methode aufmerksam, die sich fast ausschliesslich auf das eh schon vorhandene dpkg-tool stützt.

#
# Temporäres Verzeichnis erstellen ..
mkdir debinhalt

# deb-Paket {PACKAGENAME.deb} nach Verzeichnis debinhalt entpacken ..
dpkg-deb --extract {PACKAGENAME.deb} debinhalt

# control-Datei aus Paket extrahieren ..
dpkg-deb --control {PACKAGENAME.deb} debinhalt/DEBIAN

# Inhalt der control-Datei editieren ..
nano|vi|mcedit debinhalt/DEBIAN/control

# Neues Paket zusammenbauen ..
dpkg --build debinhalt {PACKAGENAME.deb}

#

Natürlich installiert sich ein solches Paket dann ganz normal via dpkg -i {PACKAGENAME.deb}. Es seit denn man hat zuviel dran rumgespielt und die Abhängigkeiten brechen. Aber das kann man ja nun selber reparieren.

 

Links

http://www.cywhale.de/deb-pakete-editieren

http://www.falkotimme.com/howtos/checkinstall

Kommentar schreiben

3 Kommentare.

  1. Ich habe Ubuntu 14.04 mit der Gnome Classic Oberfläche (3.10.4)

    Dieses Datenermittlungsprogramm Zeitgeist habe ich mir vom Rechner entfernt. Dabei gab es aber u.a. Konflikte mit dem Editor gedit, genauer mit den beiden Dateien gedit_3.10.4-0ubuntu4_amd64.deb und gedit-plugins_3.10.1-1ubuntu2_amd64.deb.

    Leider haben mir die obigen Tipps nicht geholfen.

    Mit dem Befehl „dpkg-deb –extract “ werden alle zu installierenden Dateien in das Auspack-Verzeichnis in usr-Unterverzeichnisse entpackt. Aber dabei ist keine control-Datei. Erst dachte ich das läge daran, dass die beiden deb-Dateien noch root gehörten. Aber dem war nicht so.

    Die Lösung war dann die Verwendung der „-e“- bzw. „–control“-Option des dpkg-deb-Befehls:

    dpkg-deb -e

    Nach dem Befehl sind dann die folgenden Dateien im Auspack-Verzeichnis:

    control md5sums postinst postrm prerm shlibs

    Also ich denke dass das jetzt die Richtigen Dateien sind.

  2. Hallo,
    toll!
    Hat mir sehr weiter geholfen bei meinem Projekt.
    Vielleicht aber doch ein Hinweis:

    # Neues Paket zusammenbauen ..
    dpkg –build debinhalt

    Wenn man das so macht, wird das Paket wie das Verzeichnis benannt!
    Entweder das Verzeichnis entsprechend benennen, oder den Aufruf folgendermaßen
    gestalten.

    # Neues Paket zusammenbauen .. NEU
    dpkg –build debinhalt paketname.deb

    Das ist glaube ich einfacher.

    Wenn Du magst, baue das doch einfach mit ein.

    Gruß,
    Helmut

Kommentar schreiben


Hinweis - Du kannst dies benutzenHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>