Ce bref guide présente un utilitaire utile appelé dpkg-repack
, qui est utilisé pour recréer les packages binaires Debian qui sont déjà installés sur le système basé sur Debian.
Qu'est-ce que dpkg-repack ?
Imaginez ce scénario. Vous avez installé des packages sur votre système basé sur Debian. Et vous souhaitez installer les mêmes packages sur un autre système. Mais vous avez perdu les archives binaires, c'est-à-dire les fichiers deb. Souhaitez-vous les télécharger à nouveau à partir de leur site Web ou de leur référentiel officiel ?
Que se passe-t-il si la version particulière d'un package spécifique n'est plus disponible ailleurs ? Pas de soucis! Comme ils sont déjà installés sur votre système, vous pouvez facilement recréer le .deb
des dossiers. Dites bonjour à dpkg-repack
!
Le dpkg-repack
est un outil d'archivage de paquets Debian en ligne de commande pour recréer les paquets binaires Debian qui sont déjà installés sur votre système.
Pour résumer, dpkg-repack
l'utilitaire peut créer un .deb
fichier d'un paquet debian déjà installé sur votre système.
Le dpkg-repack
utilitaire peut être utile dans de nombreuses situations où vous souhaitez,
- recréer
.deb
les fichiers des packages debian installés existants, - copier facilement des packages d'un système à un autre,
- enregistrer l'état actuel d'un package avant de le mettre à niveau,
- sauvegarder une version spécifique d'un package pour une utilisation future,
- enregistrer des packages spécifiques qui ne sont plus disponibles au téléchargement.
Installez dpkg-repack dans Debian, Ubuntu et dérivés
Le dpkg-repack
est disponible dans les dépôts par défaut de Debian, Ubuntu et ses variantes. Pour installer dpkg-repack
, exécutez simplement la commande suivante :
$ sudo apt install dpkg-repack
Recréer les paquets binaires Debian avec dpkg-repack
1. Pour les besoins de ce guide, utilisons l'application Microsoft Teams que j'ai installé il y a quelque temps sur mon bureau Ubuntu.
$ dpkg -l | grep teams
Exemple de résultat :
ii teams 1.3.00.5153 amd64 Microsoft Teams for Linux is your chat-centered workspace in Office 365.
Je n'ai plus le teams.deb
dossier. Je l'ai supprimé juste après avoir installé l'application Microsoft Teams. Je peux aller sur la page de téléchargement officielle et le télécharger à nouveau. Mais pourquoi s'embêter à le télécharger encore et encore ? Je peux maintenant simplement recréer le teams.deb
fichier en utilisant dpkg-repack.
2. Pour créer teams.deb
fichier du package teams déjà installé avec dpkg-repack
utilitaire, exécutez :
$ dpkg-repack teams
Exemple de résultat :
dpkg-deb: building package 'teams' in './teams_1.3.00.5153_amd64.deb'.

Comme vous le voyez, la commande ci-dessus a recréé le "teams_1.3.00.5153_amd64.deb'"
fichier du package Teams déjà installé sur mon bureau Ubuntu. Le fichier deb nouvellement créé sera enregistré dans le répertoire de travail actuel.
De même, vous pouvez reconvertir tous les packages Debian installés en .deb
paquets utilisant dpkg-repack
utilitaire.
3. Il est également possible de recréer plusieurs fichiers deb avec des espaces séparés :
$ dpkg-repack <package1> <package2> <package3>
4. Si vous ne pouvez pas reconstruire le fichier deb en raison de problèmes d'autorisation, essayez depuis fakeroot environnement comme ci-dessous :
$ fakeroot -u dpkg-repack teams
Une caractéristique intéressante de l'utilitaire dpkg-repack est que si des modifications ont été apportées au paquet pendant qu'il a été décompressé (c'est-à-dire des fichiers dans /etc modifiés), le nouveau paquet héritera des modifications.
Affichage du contenu du fichier deb
Étape 1 : Vous pouvez afficher le contenu de ce fichier deb en utilisant la commande :
$ dpkg --contents teams_1.3.00.5153_amd64.deb
Exemple de résultat :
drwxr-xr-x root/root 0 2020-05-26 15:15 ./ drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/ drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/bin/ -rwxr-xr-x root/root 286 2020-02-20 16:46 ./usr/bin/teams drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/share/ . . . drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/share/teams/swiftshader/ -rwxr-xr-x root/root 286264 2020-02-20 16:46 ./usr/share/teams/swiftshader/libEGL.so -rwxr-xr-x root/root 2677296 2020-02-20 16:46 ./usr/share/teams/swiftshader/libGLESv2.so -rwxr-xr-x root/root 114964776 2020-02-20 16:46 ./usr/share/teams/teams -rw-r--r-- root/root 1040912 2020-02-20 16:46 ./usr/share/teams/v8_context_snapshot.bin

Étape 2 : Le dpkg-repack est pratique lors de l'installation du même ensemble de packages sur plusieurs systèmes, transférez-les simplement à l'aide d'un disque dur externe ou via un réseau local vers d'autres systèmes et installez-les à l'aide de la commande dpkg :
$ sudo dpkg -i <package-name>
Étape 3 : Veuillez noter que vous devez toujours télécharger les dépendances. Pour installer les dépendances, exécutez :
$ sudo apt-get -f install
Alternativement, vous pouvez trouver les dépendances du package comme décrit dans le lien suivant :
- Comment répertorier les dépendances d'un package sous Linux
Et puis recréez-les tous en utilisant dpkg-repack
comme décrit ci-dessus.
Étape 4 : Cela vous aidera également lorsque vous souhaitez restaurer un package vers la version de travail précédente. Par exemple, disons que vous venez de mettre à jour Vim
package vers la nouvelle version disponible. Si la nouvelle version ne fonctionne pas comme prévu, vous pouvez simplement revenir à l'ancienne version que vous avez créée précédemment en utilisant dpkg-repack
.
Pour plus de détails, reportez-vous aux pages de manuel :
$ man dpkg-repack
Lire connexe :
- Comment créer des packages Debian à partir de la source
- Comment créer des packages à partir de la source à l'aide de CheckInstall
- Comment convertir des packages Linux avec Alien