Les commandes cabextract et lcab pour travailler avec les fichiers CAB sous Linux

Dernière mise à jour: 13/01/2026
Auteur: Isaac
  • Cabextract permite listar, probar, extraer y reparar archivos CAB de Microsoft en sistemas tipo UNIX.
  • Es esencial para que Vin, Lutris y winetricks manejen instaladores de Windows que dependen de ficheros .cab.
  • Con cabextract se pueden obtener fuentes y recursos de instaladores de Office y PowerPoint para usarlos en Linux.
  • lcab complète cabextract en vous permettant de créer des fichiers CAB depuis Linux pour distribuer des données vers Windows.

Commandes cabextract et lcab sous Linux

Si vous travaillez avec Fichiers d'installation Windows depuis LinuxTôt ou tard, vous tomberez sur les fameux fichiers .CAB (Microsoft Cabinet). Bien que moins courants dans l'écosystème GNU/Linux que les fichiers .tar.gz ou .zip, ils restent omniprésents dans les programmes d'installation, les pilotes et les correctifs Microsoft. Heureusement, des outils en mode texte permettent de les manipuler assez facilement.

Dans cet article, nous allons approfondir cabextract et lcabDeux utilitaires conçus pour gérer les fichiers CAB sur les systèmes de type UNIX. Vous découvrirez précisément ce que sont ces conteneurs, comment installer ces outils sur différentes distributions, les options qu'ils offrent pour lister, extraire, tester ou même réparer les fichiers CAB endommagés, et dans quelles situations concrètes (Wine, polices Windows, visionneuses PowerPoint, etc.) ils peuvent vous dépanner.

Quel est le format CAB de Microsoft ?

Le format CAB (Microsoft Cabinet) Il a été conçu par Microsoft comme son méthode native d'emballage et de compression de fichiers sous Windows. Il est largement utilisé dans les moteurs d'installation de la plateforme : API d'installation, programme d'installation de périphériques, AdvPack, Windows Installer et autres composants système chargés du déploiement des logiciels et des mises à jour.

Un fichier avec une extension . Cab fonctionne comme un conteneur compresséIl regroupe plusieurs fichiers et répertoires, prend en charge différents algorithmes de compression (tels que MSZIP, LZX ou Quantum) et peut intégrer signatures numériques afin de garantir l'intégrité du contenu. C'est pourquoi on le retrouve souvent avec les programmes d'installation classiques comme setup.exe ou install.exe, où l'exécutable sert de « lanceur » et les données proprement dites sont contenues dans un ou plusieurs fichiers CAB.

Bien que sous Windows, leur gestion soit quasi transparente grâce aux assistants d'installation, dans GNU / Linux Ces contenants ne sont pas très courants, vous avez donc besoin de utilitaires spécifiques pour les ouvrir, les inspecter ou extraire leur contenu sans exécuter le programme d'installation d'origine.

Outre les logiciels de bureau classiques, les fichiers CAB se trouvent dans fichiers d'installation de Windows CEMises à jour système, polices web, codecs vidéo, modèles Office et toutes sortes de ressources redistribuables que Microsoft et d'autres fournisseurs distribuent dans ce format.

Cabextract : l'outil indispensable pour extraire les fichiers CAB

Utilisation de cabextract et lcab sur les systèmes Linux

extrait de cabane C'est un programme en ligne commandes conçu pour Extraire les fichiers des conteneurs CAB Microsoft sur UNIX et les systèmes dérivés (GNU/Linux, BSD, macOS, etc.). Il est distribué sous forme de Logiciel libre sous licence GNU GPL et s'appuie sur la bibliothèque portable libmspack (Licence LGPL), spécialisée dans les formats de compression Microsoft.

Le service public est capable de gérer toutes les variantes et fonctionnalités habituelles des fichiers .CAB, y compris les armoires utilisées par windows CE et les armoires « imbriquées » (lorsqu'une armoire contient d'autres armoires). Il sait également gérer armoires à plusieurs partiesCes programmes d'installation répartissent les données sur plusieurs fichiers consécutifs et sont automatiquement réassemblés sous Windows.

Parmi ses points forts, cabextract peut préserver la structure du répertoire interne, conserver les dates et les permissions des fichiers extraits, effectuer des tests d'intégrité sans écrire les données sur le disque, et même tenter pour récupérer des informations détenues par des cabinets corrompus remplacer les zones illisibles par des zéros afin de pouvoir continuer avec le reste des blocs.

Bien qu'il existe depuis des années et ait connu différentes versions, il est désormais solidement ancré dans l'écosystème de nombreuses distributions et propose des paquets précompilés pour une grande variété de plateformes : Debian, Ubuntu, Fedora, Gentoo, Slackware, T2 SDE, FreeBSD, NetBSD, OpenBSD, Solaris, macOS (Fink, MacPorts), Cygwin sous Windows, AmigaOS, DOS/FreeDOS et plus.

Installation de Cabextract sur différentes plateformes

Dans la plupart des distributions GNU/Linux modernes, vous pouvez installer cabextract des dépôts officielsCela simplifie grandement la tâche, car vous n'avez plus besoin de compiler manuellement ni de rechercher des fichiers binaires épars sur le web.

Dans les systèmes basés sur Debian ou UbuntuL'installation classique se fait avec :

sudo apt-get install cabextract

ou, si vous préférez aptitude:

sudo aptitude install cabextract

Une fois l'installation terminée, Wine et les autres outils qui dépendent de cet utilitaire pourront décompresser automatiquement les fichiers .cab qu'ils trouvent chez les installateurs et les assistants.

Dans d'autres distributions, la commande varie, mais l'idée est exactement la même : utiliser directeur chargé d'emballage du système. Par exemple, dans les environnements basés sur RPM, vous pouvez utiliser :

sudo rpm -i cabextract-1.6-1.i386.rpm

Et si vous souhaitez compiler à partir du code source (par exemple, pour tester la version de développement), le flux de travail typique serait le suivant :

tar zxf cabextract-1.6.tar.gz
cd cabextract-1.6
./configure
make
sudo make install

Dans l'arborescence du projet, vous trouverez un fichier INSTALLER avec des instructions plus détaillées, ainsi que des scripts auxiliaires tels que reconstruire.sh dans le dépôt de développement libmspack, conçu pour régénérer la configuration lorsque vous travaillez directement avec la branche GitHub.

  Solution : Erreur d'activation du produit Office sous Windows 10 – Tutoriel complet

options d'utilisation de base de Cabextract

Une fois installé, le point de départ pour comprendre toutes les options disponibles Il est préférable de consulter son aide intégrée et son manuel. Pour cela, vous disposez de deux ressources très utiles :

cabextract --help

et la documentation classique au format manuel :

man cabextract

Le résumé qui présente l'option -Aidez-moi Il offre un aperçu rapide des options les plus courantes, tandis que la page de manuel fournit des informations plus détaillées et explique… cas d'utilisation spécifiquesRemarques sur la sécurité, le comportement avec les armoires à plusieurs pièces, les filtres, etc.

En utilisation normale, il suffit d'exécuter la commande suivie de nom du fichier CAB ou de l'exécutable qui le contient et cabextract se charge du gros du travail :

cabextract archivo.cab

ou bien:

cabextract InstaladorWindows.exe

Dans ce scénario, l'outil extraira tous les fichiers contenus dans le ou les dossiers (s'il y en a plusieurs) du répertoire courant, en conservant la structure interne des dossiers et les horodatages associés à chaque élément.

Lister, tester et extraire les fichiers CAB

En plus de sa simple fonction de décompression, cabextract intègre plusieurs options utiles à avoir à portée de main lorsqu'on travaille avec de nombreux programmes d'installation ou lorsqu'on souhaite simplement inspecter le contenu d'un fichier .cab sans l'extraire.

Pour prouver son intégrité Pour décompresser un fichier CAB, c'est-à-dire le lire entièrement et le décompresser en interne sans écrire les fichiers résultants sur le disque, cette option est utilisée. -t (o -test):

cabextract -t sls.cab

Cette opération effectue l'intégralité du processus d'extraction en mémoire et, de plus, calcule et affiche un Somme de contrôle MD5 pour chaque fichier contenu dans le dossier. Ceci est particulièrement utile pour vérifier l'intégrité d'un programme d'installation téléchargé avant utilisation, ou si vous soupçonnez une corruption du fichier lors de sa copie entre ordinateurs.

Si, au lieu de tester l'intégrité, vous préférez contenu de la liste Depuis le CAB, vous pouvez recourir à l'option -l o -Liste:

cabextract -l sls.cab

Cette commande permettra à l'utilitaire d'afficher à l'écran les noms de tous les fichiers contenus dans le dossier, accompagnés d'informations telles que leur taille, leur chemin relatif ou le dossier logique auquel ils appartiennent, selon la manière dont le fichier CAB a été créé.

Pour une extraction complète à un répertoire spécifiqueVous avez la possibilité -d (o -Annuaire). Par exemple, si vous voulez vider le contenu d'une armoire /tmp/cab_files/ vous pouvez exécuter :

cabextract sls.cab -d /tmp/cab_files/

Ainsi, au lieu de remplir le répertoire courant de fichiers, tous les éléments seront soigneusement rangés dans un chemin séparé, ce qui est très utile lors de l'analyse de gros programmes d'installation ou de tâches de rétro-ingénierie.

Si, après la première extraction, vous constatez que l'un des fichiers générés est à son tour un autre CABLa procédure pour poursuivre son ouverture est identique. Par exemple :

cabextract /tmp/cab_files/environment.cab -d /tmp/cab_files2/

Cette série d'étapes vous permet d'explorer plus en profondeur les différents niveaux d'empaquetage que de nombreux programmes d'installation Microsoft enchaînent, jusqu'à accéder enfin aux fichiers XML, aux fichiers binaires, aux sources ou aux autres ressources qui vous intéressent réellement.

Options avancées et contrôle précis de l'extraction

cabextract ne se contente pas de tout décompresser ; il vous permet également de pour affiner ce qui est extrait et commentCeci est particulièrement utile lorsque l'on travaille avec de grandes armoires ou lorsque l'on ne s'intéresse qu'à certains types de fichiers.

D'une part, le programme effectue des recherches automatiques armoires encastrées il extrait d'autres fichiers sans que vous ayez à le spécifier explicitement. De même, s'il détecte armoires multi-partiesIl tente de localiser et de relier tous les éléments pour les traiter comme une seule unité. Si, pour une raison quelconque, vous souhaitez désactiver ce comportement, vous avez la possibilité de le faire. -célibataire, ce qui force cabextract à ne fonctionner qu'avec le fichier que vous lui avez transmis.

Si vous ne vous intéressez qu'à certains fichiers (par exemple, tous les fichiers audio avec l'extension .wav dans un package volumineux), vous pouvez utiliser l'option -filtre pour limiter l'extraction. Un exemple classique serait :

cabextract --filter '*.wav' music.cab

Dans ce cas, cabextract parcourt le contenu de musique.cab Il extrait uniquement les fichiers dont le nom correspond au modèle spécifié, ignorant les autres. Cela vous permet de gagner de l'espace, du temps de traitement et de réduire l'encombrement de votre répertoire de travail.

Une autre possibilité intéressante est de forcer cela Tous les noms de fichiers extraits seront convertis en minuscules. par option -minusculeCela peut s'avérer utile dans des environnements où la sensibilité à la casse des chemins d'accès pose problème, ou si vous souhaitez simplement normaliser les noms à des fins d'organisation.

Concernant la localisation, nous avons déjà vu que vous pouvez utiliser -Annuaire (ou son raccourci -d) pour envoyer les fichiers extraits vers un dossier spécifique. Combinée à des filtres et à la conversion des noms, cette option offre un contrôle précis sur le résultat final de chaque extraction.

Réparation et sécurité des fichiers CAB endommagés

Dans la réalité, il est relativement courant de rencontrer fichiers CAB corrompus: téléchargements incomplet, erreurs dans les appareils stockagepannes de réseau, etc. cabextract intègre une option appelée -réparer conçu pour essayer Sauvegardez autant de données que possible lorsque vous découvrez une armoire endommagée.

  Get-ComputerInfo vs. SystemInfo : différences réelles, utilisations et astuces

Lors de l'utilisation -réparerLes portions de données illisibles sont remplacées par des zéros, et l'outil tente de passer aux blocs suivants, en espérant qu'ils soient intacts. Ce processus ne « répare » pas le fichier au sens strict (les informations corrompues sont perdues), mais il permet souvent de récupérer des données qui seraient autrement inaccessibles.

Historiquement, cabextract et la bibliothèque libmspack ont ​​corrigé diverses vulnérabilités de sécurité liés au traitement des fichiers malveillants ou modifiés. Parmi les problèmes les plus importants, on peut citer :

  • Visites guidées utilisation de séquences comme "../" pour tenter d'écrire en dehors du répertoire courant (CVE-2004-0916).
  • chemins absolus et des combinaisons de "/" et "\" dans Cygwin qui pourraient contourner les contrôles de sécurité et forcer l'extraction vers des emplacements arbitraires (CVE-2015-2060).
  • Lectures hors plage dans certains scénarios de décompression LZX ou MSZIP (CVE-2015-4470, CVE-2015-4471).
  • Boucles infinies et accès mémoire incorrects dans le décodeur Quantum et d'autres algorithmes lors du traitement de décalages ou de longueurs invalides, en particulier dans les architectures 32 bits (CVE-2014-9732, CVE-2014-9556, CVE-2010-2800, CVE-2010-2801).

Les dernières versions ont corrigé ces défauts, il est donc toujours recommandé de les mettre à jour. Tenez Cabextract à jour à partir des dépôts de votre distribution. Cela vous permet de minimiser l'impact des fichiers CAB spécifiquement conçus pour provoquer des erreurs ou exploiter les failles du décodeur.

Cabextract et Wine : installateurs Windows sur Linux

Si vous utilisez Vin ou Lutris Pour exécuter des applications Windows sous Linux, vous avez probablement déjà rencontré des messages d'erreur lors de l'installation mentionnant des fichiers . CabCela se produit car de nombreux installateurs s'attendent à pouvoir accéder nativement à ces armoires, et si l'environnement ne dispose pas d'un outil approprié pour les décompresser, le processus peut échouer à mi-chemin.

Un cas très typique est celui d'un programme d'installation qui inclut un fichier avec l'extension « .cab » et qui, lorsqu'on tente de le déployer sous Wine, Une erreur se produit lors de la phase d'installation.Sans cabextract, Wine ne sait pas comment gérer correctement ces conteneurs, l'assistant s'arrête donc ou ne parvient pas à copier tous les composants nécessaires.

Dans de nombreux cas, la solution consiste simplement à installer cabextract sur le système hôteafin que Wine, winetricks ou Lutris puissent l'exécuter en arrière-plan lorsqu'ils doivent décompresser l'un de ces fichiers. Sous Ubuntu, par exemple, vous pouvez le faire depuis un terminal avec:

sudo apt-get install cabextract

Une fois installé, il est assez fréquent que les programmes d'installation qui ne fonctionnaient pas auparavant démarrent correctement sans que vous ayez à modifier quoi que ce soit d'autre, car il ne leur manquait que… capacité à extraire les fichiers .cab encapsulés.

Utilisation pratique : polices Windows et visionneuse PowerPoint

Au-delà des exemples académiques, cabextract a des usages très spécifiques et pratiques dans la vie quotidienne d'un utilisateur de bureau Linux qui travaille avec des documents Office ou qui souhaite profiter de certaines ressources Windows sans installer le système d'exploitation complet.

Un scénario classique est celui de ceux qui veulent Installation de certaines polices Windows sur GNU/Linux (par exemple, ceux de Vista ou d'Office 2007) afin que vos documents s'affichent exactement de la même manière que sur les ordinateurs équipés de Microsoft Officeou pour éviter les problèmes de mise en page lors de l'ouverture de présentations et de feuilles de calcul.

Pour la plupart des polices courantes, il suffit d'installer le paquet. msttcorefonts (ou son équivalent selon la distribution), qui comprend un ensemble assez complet : Arial, Times New Roman, Verdana, Tahoma, etc. Mais si vous souhaitez des polices comme Calibri ou Cambria, largement utilisé dans les documents modernes, il vous faut aller plus loin.

Une option populaire consiste à télécharger le Visionneuse PowerPoint 2007 pour Windows ou le Microsoft Office Compatibility Pack pour les versions antérieures d'Office. Ces packages contiennent les polices qui vous intéressent, regroupées dans Fichiers CAB que vous pouvez accéder avec cabextract.

Le flux général Ce serait quelque chose de similaire à ceci (adapté à un environnement Debian/Ubuntu) :

  1. Installez cabextract si vous ne l'avez pas déjà fait :
    sudo apt-get install cabextract
  2. Téléchargez le fichier exécutable de PowerPoint Viewer 2007 ou le pack de compatibilité Office 2007 dans le répertoire de votre choix.
  3. Depuis le terminal, accédez à ce dossier et Décompressez le fichier exécutable. avec cabextract, par exemple :
    cabextract PowerPointViewer.exe
  4. Un fichier CAB intermédiaire apparaîtra parmi les fichiers générés (par exemple, ppviewer.cab ou similaire). Vous le rouvrez :
    cabextract ppviewer.cab
  5. Créez un répertoire pour stocker proprement les polices extraites. Par exemple, pour les polices Vista :
    sudo mkdir -p /usr/share/fonts/truetype/vista
  6. Déplacer tous les fichiers de polices (extensions) .TTF, .ttf, .ttc, etc.) dans ce dossier :
    sudo mv *.TTF /usr/share/fonts/truetype/vista
  7. Mettez à jour le cache des polices système afin que les nouvelles polices soient enregistrées :
    sudo fc-cache -f -v

Grâce à ces étapes, votre environnement de bureau Linux sera prêt. les mêmes sources disponibles qui utilisent Windows Vista et Office 2007, ce qui permet aux documents de s'afficher sans sauts étranges ni substitutions de polices.

  Le guide ultime étape par étape pour créer des codes QR avec Microsoft Word

Il existe même des cas spécifiques comme celui de la source jaugeslà où ils ont été détectés différentes versions (Par exemple, la version 1.02, incluse dans certaines éditions d'Office 2007, peut s'afficher incorrectement sous Linux à des tailles comprises entre 10 et 14 pixels.) Une alternative consiste à obtenir une version antérieure (1.0) via le Pack de compatibilité Office, à l'extraire avec cabextract comme décrit, et à enregistrer uniquement cette version sur le système pour améliorer le rendu.

Problèmes courants liés à Cabextract dans Lutris et Winetricks

En intégrant cabextract à des outils tels que Lutris ou WinetricksParfois, des messages d'erreur quelque peu cryptiques apparaissent, qui se résument en fait à des problèmes assez spécifiques : des fichiers CAB inexistants, des téléchargements avec des sommes de contrôle MD5 incorrectes ou des fichiers CAB qui ne sont pas considérés comme valides par l'outil.

Imaginez un scénario où vous essayez d'installer un jeu Windows comme osu ! par Lutris. Le scénario L'installation peut nécessiter que le visualiseur PowerPoint (ppviewer) dispose de certaines polices ou composants, et utiliser winetricks en arrière-plan pour télécharger et extraire l'exécutable correspondant.

Dans une telle situation, vous pourriez voir une erreur comme celle-ci :

cabextract -q -d /ruta/temp -F ppviewer.cab /home/usuario/.cache/winetricks/PowerPointViewer/PowerPointViewer.exe
/home/usuario/.cache/winetricks/PowerPointViewer/PowerPointViewer.exe: no se encontraron cabinets válidos

et juste après :

advertencia: el comando cabextract ... devolvió el estado 1. Abortando.

Ce type de message indique généralement que cabextract n'a trouvé aucun fichier CAB valide. dans le fichier exécutable téléchargé, généralement parce que le téléchargement est corrompu ou parce que la version exacte du programme d'installation attendue par winetricks ne correspond plus à celle obtenue des serveurs Microsoft.

Un autre symptôme est que Winetricks lui-même signale l'échec du paquet dans le vérification md5sumCela confirme l'idée que le téléchargement ne correspond pas à la somme de contrôle attendue par le script. Dans ce cas, le problème ne vient pas de cabextract lui-même, mais du Incohérence entre le script Winetricks et le fichier effectivement téléchargé.

Compte tenu de ces scénarios, les étapes logiques impliquent forcer la réinstallation à partir du composant de winetricks (afin qu'il le télécharge à nouveau), vérifiez manuellement si le fichier existe et peut être ouvert avec cabextract depuis le terminal, ou recherchez une version alternative du programme d'installation qui correspond à la somme de contrôle MD5 attendue par le script.

lcab : création de fichiers CAB à partir de Linux

Jusqu'à présent, nous nous sommes concentrés sur cabextract, qui est utilisé pour déballer les armoiresSi ce dont vous avez besoin, c'est du processus inverse, c'est-à-dire, Générez vos propres fichiers CAB Pour distribuer des logiciels ou des données depuis Linux vers des systèmes Windows, l'outil qui entre en jeu est : lcab.

lcab est un petit programme en ligne de commande conçu spécifiquement pour construire des armoires CAB À partir d'un ou plusieurs fichiers d'entrée. Bien que moins connu que cabextract, il s'avère utile pour empaqueter du contenu tout en respectant le format natif de Microsoft, par exemple pour l'intégrer à des programmes d'installation ou pour tirer parti de composants qui attendent un fichier CAB spécifique.

Sa syntaxe générale est généralement simple : vous indiquez le nom de l'armoire de sortie Ensuite, les fichiers que vous souhaitez empaqueter. À partir de là, lcab se charge de générer la structure interne requise par le format et d'appliquer la compression appropriée. Combiné à cabextract, vous obtenez un Débit aller-retour complet: retirer les armoires existantes, les modifier et les reconditionner si nécessaire.

En pratique, lcab n'inclut généralement pas autant d'options avancées que cabextract, mais pour des tâches telles que la distribution, les tests ou l'émulation d'environnements Windows Linux est généralement largement suffisant.

Globalement, avoir cabextract et lcab dans votre boîte à outils vous permet à la fois consommer como Generar Microsoft Cabinet depuis un système UNIX, ce qui ouvre la voie à l'automatisation des installations, à l'analyse des packages de mise à jour, à l'extraction de ressources propriétaires (en respectant toujours leurs licences) ou à la résolution des problèmes de compatibilité avec Wine et ses dérivés.

La maîtrise de l'utilisation quotidienne de cabextract, la connaissance de ses options pour lister, tester et réparer les armoires, et la capacité à savoir quand il est préférable d'utiliser lcab pour créer vos propres fichiers .cab, vous placent dans une position beaucoup plus confortable lorsque vous devez naviguer dans le monde de Windows et GNU/LinuxIl s'agit de comprendre ce que cachent ces fichiers .CAB souvent négligés, et de tirer parti de ces outils gratuits pour qu'ils travaillent en votre faveur au lieu de devenir un obstacle.

Comment diviser les fichiers volumineux en plusieurs parties sous Windows 11
Article connexe:
Comment fractionner des fichiers volumineux sous Windows 11