Extraire paquet deb

Salut à tous,
edit: pour la méthode ave dpkg directement voir le deuxième post.

je vais expliqué comment extraire un paquet deb, c’est très simple, voila un exemple avec le paquet tint2.

On commence par téléchargé le fichier deb de tint2 depuis le site debian.org

$ wget -c http://ftp.us.debian.org/debian/pool/main/t/tint2/tint2_0.9-2_amd64.deb

Ici on extrait le paquet deb télécharger avec la commande ar:

$ ar xv tint2_0.9-2_amd64.deb x - debian-binary x - control.tar.gz x - data.tar.gz

Sa nous a sorti 3 fichiers:

  • debian-binary: est le fichier qui nous donne la version du paquet deb.
  • data.tar.gz: est le fichier compresser principale qui contient le contenu de tint2.
  • control.tar.gz: est le fichier compresser qui comporte 3 fichiers:
  1. md5sums: qui contient le md5sums du contenu dans data.tar.gz pour vérification de l’intégralité.
  2. control: qui contient les informations sur le paquet comme: description, dépendance, version, architecture, ect…
  3. conffile: nous donne le lieu du fichier de configuration de tint2 pour notre exemple.

$ cat debian-binary 2.0

$ tar xvf data.tar.gz
./
./usr/
./usr/share/
./usr/share/man/
./usr/share/man/man1/
./usr/share/man/man1/tint2.1.gz
./usr/share/doc/
./usr/share/doc/tint2/
./usr/share/doc/tint2/changelog.gz
./usr/share/doc/tint2/changelog.Debian.gz
./usr/share/doc/tint2/copyright
./usr/share/doc/tint2/examples/
./usr/share/doc/tint2/examples/white_single_desktop.tint2rc
./usr/share/doc/tint2/examples/default.tint2rc
./usr/share/doc/tint2/examples/vertical_icon_only.tint2rc
./usr/share/doc/tint2/examples/black_single_desktop.tint2rc
./usr/share/doc/tint2/examples/horizontal_icon_only.tint2rc
./usr/share/doc/tint2/examples/rounded_multi_desktop.tint2rc
./usr/share/doc/tint2/README
./usr/share/doc/tint2/AUTHORS
./usr/share/doc/tint2/ChangeLog.gz
./usr/share/tint2/tar xvf data.tar.gz
./usr/share/tint2/default_icon.png
./usr/bin/
./usr/bin/tint2
./etc/
./etc/xdg/
./etc/xdg/tint2/
./etc/xdg/tint2/tint2rc

$ tar xvf control.tar.gz ./ ./conffiles ./md5sums ./control

$ cat conffiles /etc/xdg/tint2/tint2rc

$ cat md5sums 5f622bdae17a18b4cf9a4c415ec8cf5a usr/share/man/man1/tint2.1.gz 2ffaa966a1d4835f0b7a7e3fff9ed80a usr/share/doc/tint2/changelog.gz 3bee1c8f4fc017dbcb7f2a5c7e9f8a13 usr/share/doc/tint2/changelog.Debian.gz 02a045917747794b649a79bc1d5a9d9a usr/share/doc/tint2/copyright d26b367884cfc64642c697c6e2d3cdfb usr/share/doc/tint2/examples/white_single_desktop.tint2rc 3a646bef18b56721bd0957674f753e15 usr/share/doc/tint2/examples/default.tint2rc 6b87e594b555bb9c9a2ff0547d9b9266 usr/share/doc/tint2/examples/vertical_icon_only.tint2rc da9b37ab92f9467875b763e013562612 usr/share/doc/tint2/examples/black_single_desktop.tint2rc 996004206b9b37ac26532c1fc5046f5c usr/share/doc/tint2/examples/horizontal_icon_only.tint2rc ba7045b473fd075f4d59a813118c1ada usr/share/doc/tint2/examples/rounded_multi_desktop.tint2rc 9e0dfa337b969123b394baea0578d89d usr/share/doc/tint2/README c31ea8fba39437ec850b35d057d27eae usr/share/doc/tint2/AUTHORS 2ffaa966a1d4835f0b7a7e3fff9ed80a usr/share/doc/tint2/ChangeLog.gz bfe5521509fd0d2b3c04e26562478754 usr/share/tint2/default_icon.png a73eddf8ca6dbc1cf8f4932904ceb353 usr/bin/tint2

$ cat control Package: tint2 Version: 0.9-2 Architecture: amd64 Maintainer: Daniel Moerner <dmoerner@gmail.com> Installed-Size: 228 Depends: libc6 (>= 2.2.5), libcairo2 (>= 1.2.4), libglib2.0-0 (>= 2.14.0), libimlib2, libpango1.0-0 (>= 1.20.0), libx11-6 (>= 0), libxcomposite1 (>= 1:0.3-1), libxdamage1 (>= 1:1.1), libxinerama1, libxrender1 Section: x11 Priority: optional Homepage: http://code.google.com/p/tint2/ Description: lightweight taskbar Tint is a simple panel/taskbar intentionally made for openbox3, but should also work with other window managers. The taskbar includes transparency and color settings for the font, icons, border, and background. It also supports multihead setups, customized mouse actions, and a built-in clock. Tint was originally based on ttm code. Since then, support has also been added for a battery monitor and system tray. . The goal is to keep a clean and unintrusive look with lightweight code and compliance with freedesktop specification.

(Autre astuce très peu hors sujet, à confirmer: j’ai lu que l’on pouvait éditer le fichier control, pour par exemple changer les versions de dépendance (ex: deplib 2.2.1 en deplib 2.2.0), ainsi le md5sum biensur, puis re-construire le paquet deb et l’installer avec dpkg)

dpkg-deb fait tout ça pour toi:

dpkg-deb -x paquet.deb repertoire -> extrait l’arborescence
dpkg-deb -e paquet.deb -> extrait le répertoire DEBIAN contenant les différents fichiers postinst, control, etc

Pour le refabriquer

dpkg-deb -b repertoire paquet.deb

cf faire-un-paquet-version-complete-t4691.html à la fin (partie 7).

2 J'aime

Ah je savais pas.
J’avais fait une recherche sur la section truc & astuce pour extraire décompresser un paquet deb, mais j’avais trouver aucun sujet.

J’ai édité le sujet pour faire lire ton post.