- Cabextract giver dig mulighed for at liste, teste, udpakke og reparere Microsoft CAB-filer på systemer som f.eks. UNIX.
- Det er essentielt for VinLutris og winetricks håndterer installatører af Windows der afhænger af .cab-filer.
- Cabextract giver dig mulighed for at hente skrifttyper og ressourcer til Office- og PowerPoint-installationsprogrammer til brug i Linux.
- lcab supplerer cabextract ved at give dig mulighed for at oprette CAB-filer fra Linux for at distribuere data til Windows.
Hvis du arbejder med Windows-installationsfiler fra LinuxFør eller siden vil du støde på de berømte filer .CAB (Microsoft Cabinet). Selvom de ikke er så almindelige i GNU/Linux-økosystemet som .tar.gz- eller .zip-filer, er de stadig allestedsnærværende i Microsofts programinstallationsprogrammer, drivere og programrettelser. Heldigvis har vi tekstbaserede værktøjer, der giver os mulighed for at manipulere dem ret nemt.
I denne artikel skal vi dykke ned i cab-ekstrakt og lcabTo værktøjer designet til at håndtere CAB-filer på UNIX-lignende systemer. Du vil se præcis, hvad disse containere er, hvordan du installerer værktøjerne på forskellige distributioner, hvilke muligheder de tilbyder til at vise, udpakke, teste eller endda reparere beskadigede kabinetter, og i hvilke virkelige situationer (Wine, Windows-skrifttyper, PowerPoint-fremvisere osv.) de kan hjælpe dig ud af en knibe.
Hvad er Microsofts CAB-format?
Formatet CAB (Microsoft Cabinet) Den blev designet af Microsoft som sin native pakning og komprimeringsmetode af filer i Windows. Det bruges i vid udstrækning i platformens installationsmotorer: Setup API, Device Installer, AdvPack, Windows Installer og andre systemkomponenter, der er ansvarlige for at implementere software og opdateringer.
En fil med en filtypenavn . Cab fungerer som en komprimeret beholderDen grupperer flere filer og mapper, understøtter forskellige komprimeringsalgoritmer (såsom MSZIP, LZX eller Quantum) og kan inkorporere digitale signaturer for at sikre indholdets integritet. Dette forklarer, hvorfor du ser det sammen med typiske installationsprogrammer som setup.exe eller install.exe, hvor den eksekverbare fil fungerer som en "launcher", og de faktiske data overføres inden for en eller flere CAB-filer.
Selvom de i Windows administreres næsten transparent takket være installationsguiderne, GNU / Linux Disse beholdere er ikke så almindelige, så du har brug for specifikke forsyningsvirksomheder at åbne dem, inspicere dem eller udpakke deres indhold uden at køre det originale installationsprogram.
Ud over klassiske desktoppakker findes CAB'er i Windows CE-installationsfilerSystemopdateringer, webfonte, videocodecs, Office-skabeloner og alle mulige former for omdistribuerbare ressourcer, som Microsoft og andre leverandører pakker i dette format.
Cabextract: det vigtigste værktøj til udpakning af CAB-filer
cabeekstrakt Det er et onlineprogram kommandoer designet til Udpak filer fra Microsoft CAB-containere på UNIX og afledte systemer (GNU/Linux, BSD, macOS osv.). Det distribueres som Fri software under GNU GPL-licensen og er afhængig af det bærbare bibliotek libmspack (LGPL-licens), med speciale i Microsofts komprimeringsformater.
Værktøjet er i stand til at håndtere alle de sædvanlige varianter og funktioner i .CAB-filer, inklusive de skabe, der bruges af Windows CE og "indlejrede" kabinetter (når et CAB indeholder andre CAB'er indeni). Den ved også, hvordan den skal håndtere flerdelte skabeDisse installationsprogrammer distribuerer dataene på tværs af flere på hinanden følgende filer og samles automatisk igen i Windows.
Blandt dens styrker kan cabextract bevar den interne mappestruktur, vedligeholde datoer og tilladelser for de udpakkede filer, udføre integritetstests uden at skrive dataene til disken og endda forsøge at redde information fra korrupte kabinetter erstatte de ulæselige områder med nuller for at kunne fortsætte med resten af blokkene.
Selvom det har eksisteret i årevis og har været igennem forskellige versioner, er det konsolideret i økosystemet for mange distributioner og har prækompilerede pakker til en bred vifte af platforme: Debian, Ubuntu, Fedora, Gentoo, Slackware, T2 SDE, FreeBSD, NetBSD, OpenBSD, Solaris, macOS (Fink, MacPorts), Cygwin på Windows, AmigaOS, DOS/FreeDOS og mere
Cabextract-installation på forskellige platforme
I de fleste moderne GNU/Linux-distributioner kan du installere cabextract fra de officielle arkiverDette forenkler opgaven betydeligt, da du ikke længere behøver at kompilere manuelt eller jagte løse binære filer på nettet.
I systemer baseret på Debian eller UbuntuDen klassiske installation udføres med:
sudo apt-get install cabextract
eller, hvis du foretrækker det aptitude:
sudo aptitude install cabextract
Når installationen er færdig, vil Wine og andre værktøjer, der er afhængige af dette værktøj, kunne dekomprimerer automatisk .cab-filerne som de finder hos installatører og assistenter.
I andre distributioner varierer kommandoen, men ideen er præcis den samme: at bruge pakkehåndtering af systemet. For eksempel kan du i RPM-baserede miljøer bruge:
sudo rpm -i cabextract-1.6-1.i386.rpm
Og hvis du er interesseret i at kompilere fra kildekode (for eksempel for at teste udviklingsversionen), ville den typiske arbejdsgang være:
tar zxf cabextract-1.6.tar.gz
cd cabextract-1.6
./configure
make
sudo make install
I projekttræet finder du en fil INSTALLER med mere detaljerede instruktioner, samt hjælpeskripter som f.eks. genopbygge.sh i libmspack-udviklingsarkivet, designet til at regenerere konfigurationen, når du arbejder direkte med GitHub-grenen.
Grundlæggende brugsmuligheder for Cabextract
Når den er installeret, er udgangspunktet for forståelsen alle tilgængelige muligheder Det er bedst at konsultere den indbyggede hjælp og manualside. Til dette har du to meget nyttige ressourcer:
cabextract --help
og den klassiske dokumentation i man-format:
man cabextract
Oversigten, der viser muligheden -Hjælp Den giver et hurtigt overblik over de mest almindelige flag, mens manualsiden går i flere detaljer og forklarer specifikke brugsscenarierBemærkninger om sikkerhed, adfærd med flerdelte skabe, filtre osv.
Ved typisk brug skal du blot udføre kommandoen efterfulgt af navnet på CAB-filen eller den eksekverbare fil, der indeholder den og cabextract tager sig af det hårde arbejde:
cabextract archivo.cab
O brønd:
cabextract InstaladorWindows.exe
I dette scenarie vil værktøjet udtrække alle de indeholdte filer i kabinettet (eller kabinetterne, hvis der er flere) i den aktuelle mappe, hvor den interne mappestruktur og tidsstempler, der er knyttet til hvert element, opretholdes.
Liste, test og udpak CAB-filer
Udover sin simple funktion med dekomprimering, indeholder cabextract flere muligheder, der er nyttige at have let tilgængelige, når man arbejder med mange installationsprogrammer, eller når man blot vil inspicere, hvad der er inde i en .cab-fil, uden rent faktisk at udpakke den.
til bevise integritet For at dekomprimere en CAB-fil, det vil sige at læse den fuldstændigt og dekomprimere den internt, men uden at skrive de resulterende filer til disken, bruges indstillingen -t (o -prøve):
cabextract -t sls.cab
Denne operation udfører hele udtrækningsprocessen i hukommelsen og beregner og udskriver desuden en MD5-kontrolsum for hver fil i kabinettet. Dette er især nyttigt, når du vil kontrollere, om et downloadet installationsprogram er færdigt, før du bruger det, eller hvis du har mistanke om, at filen er blevet beskadiget, da du kopierede den mellem computere.
Hvis du i stedet for at teste integritet foretrækker liste indhold Fra CAB kan du benytte dig af muligheden -l o -liste:
cabextract -l sls.cab
Med denne kommando viser værktøjet navnene på alle filerne i kabinettet på skærmen, ledsaget af oplysninger som størrelse, relativ sti eller logisk mappe, som de tilhører, afhængigt af hvordan CAB'en blev oprettet.
For fuldstændig ekstraktion til en specifik mappeDu har muligheden -d (o -Vejviser). Hvis du for eksempel vil tømme indholdet af et skab til /tmp/cab_files/ du kan køre:
cabextract sls.cab -d /tmp/cab_files/
På denne måde, i stedet for at fylde den aktuelle mappe med filer, har du alt materialet pænt omsluttet i en separat sti, hvilket er meget nyttigt, når du analyserer store installationsprogrammer eller udfører reverse engineering-opgaver.
Hvis du efter den første udpakning opdager, at en af de genererede filer er til gengæld endnu en CABProceduren for at fortsætte åbningen er identisk. For eksempel:
cabextract /tmp/cab_files/environment.cab -d /tmp/cab_files2/
Med denne trinrækkefølge dykker du dybere ned i de forskellige niveauer af pakning, som mange Microsoft-installationsprogrammer kæder sammen, indtil du endelig får adgang til de XML-filer, binære filer, kildekoder eller andre ressourcer, der virkelig interesserer dig.
Avancerede muligheder og fin kontrol over ekstraktion
cabextract dekomprimerer ikke bare alt; det giver dig også mulighed for at forfine hvad der udvindes og hvordanDette er især værdifuldt, når man arbejder med store skabe, eller når man kun er interesseret i bestemte typer filer.
På den ene side søger programmet automatisk indlejrede skabe i andre filer og udtrækker dem uden at du behøver at angive det eksplicit. Ligeledes, hvis den registrerer flerdelte skabeDen forsøger at finde og forbinde alle delene for at behandle dem som én enhed. Hvis du af en eller anden grund ønsker at deaktivere denne funktion, har du mulighed for det. -enkelt, hvilket tvinger cabextract til kun at fungere med den fil, du har sendt den til.
Når du kun er interesseret i bestemte filer (f.eks. alle lydfiler med filtypenavnet .wav i en stor pakke), kan du bruge indstillingen -filter for at begrænse udvinding. Et klassisk eksempel ville være:
cabextract --filter '*.wav' music.cab
I dette tilfælde iterererer cabextract gennem indholdet af musik.cab Men den udtrækker kun de filer, hvis navne matcher det angivne mønster, og ignorerer resten. Dette sparer dig plads, behandlingstid og rod i din arbejdsmappe.
En anden interessant mulighed er at tvinge det frem Alle udtrukne filnavne vil blive konverteret til små bogstaver. efter mulighed –små bogstaverDette kan være nyttigt i miljøer, hvor forskel på store og små bogstaver i stier forårsager problemer, eller hvis du blot vil normalisere navne af organisatoriske årsager.
Med hensyn til placering har vi allerede set, at du kan bruge -Vejviser (eller dens genvej -d) for at sende de udpakkede filer til en bestemt mappe. Ved at kombinere denne indstilling med filtre og navnekonvertering får du en forholdsvis fin kontrol over det endelige resultat af hver udtrækning.
Reparation af beskadigede CAB-filer og sikkerhed
I den virkelige verden er det relativt almindeligt at støde på korrupte CAB-filer: descargas ufuldstændige, fejl i enheder opbevaringnetværksafbrydelser osv. cabextract indeholder en funktion kaldet -lave designet til at prøve gem så mange data som muligt når du støder på et beskadiget kabinet.
Når du bruger -laveDe ulæselige dele af dataene erstattes med nuller, og værktøjet forsøger at gå videre til de næste blokke i håb om, at de er intakte. Denne proces "reparerer" ikke filen i streng forstand (de beskadigede oplysninger går tabt), men den tillader ofte gendannelse af indhold, der ellers ville være utilgængeligt.
Historisk set har cabextract og libmspack-biblioteket korrigeret forskellige sikkerhedssårbarheder relateret til håndtering af ondsindede eller specielt manipulerede filer. Blandt de mest fremtrædende er problemer med:
- Katalogture brug af sekvenser som "../" til at forsøge at skrive uden for den aktuelle mappe (CVE-2004-0916).
- absolutte veje og kombinationer af "/" og "\" i Cygwin, der kunne omgå sikkerhedstjek og tvinge udtrækning til vilkårlige placeringer (CVE-2015-2060).
- Aflæsninger uden for område i visse LZX- eller MSZIP-dekompressionsscenarier (CVE-2015-4470, CVE-2015-4471).
- Uendelige løkker og forkert hukommelsesadgang i Quantum-dekoderen og andre algoritmer ved behandling af ugyldige forskydninger eller længder, især i 32-bit arkitekturer (CVE-2014-9732, CVE-2014-9556, CVE-2010-2800, CVE-2010-2801).
De seneste versioner har rettet disse fejl, så det anbefales altid at opdatere. Hold Cabextract opdateret fra din distributions arkiver. Dette sikrer, at du minimerer virkningen af CAB-filer, der er specifikt designet til at forårsage fejl eller udnytte svagheder i dekoderen.
Cabextract og Wine: Windows-installationsprogrammer på Linux
Hvis du bruger Vin eller Lutris For at køre Windows-programmer på Linux, er du sandsynligvis allerede stødt på fejlmeddelelser under installationen, der nævner filer . CabDette sker, fordi mange installatører forventer at kunne få adgang til disse skabe direkte, og hvis miljøet ikke har et passende værktøj til at dekomprimere dem, kan processen mislykkes halvvejs igennem.
Et meget typisk tilfælde er at støde på et installationsprogram, der indeholder en fil med filtypenavnet ".cab", og som, når man forsøger at installere det under Wine, Den giver en fejl under installationsfasen.Uden cabextract ved Wine ikke, hvordan disse containere skal håndteres korrekt, så guiden enten stopper eller fejler i at kopiere alle de nødvendige komponenter.
I mange scenarier involverer løsningen blot Installer cabextract på værtssystemetså Wine, winetricks eller Lutris kan kalde det i baggrunden, når de skal dekomprimere et af disse kabinetter. I Ubuntu kan du for eksempel gøre dette fra en terminal med:
sudo apt-get install cabextract
Når det er installeret, er det ret almindeligt, at installationsprogrammer, der tidligere ikke har virket korrekt, begynder at fungere uden at du behøver at ændre noget andet, da det eneste, de manglede, var mulighed for at udpakke indkapslede .cab-filer.
Praktisk brug: Windows-skrifttyper og PowerPoint-fremviser
Ud over akademiske eksempler har cabextract meget specifikke og praktiske anvendelser i hverdagen for en Linux-desktopbruger, der arbejder med Office-dokumenter eller ønsker at udnytte nogle Windows-ressourcer uden at installere hele operativsystemet.
Et klassisk scenarie er dem, der ønsker Installation af bestemte Windows-skrifttyper på GNU/Linux (for eksempel dem fra Vista eller Office 2007), så dine dokumenter ser præcis ud som på computere med Microsoft Officeeller for at undgå layoutproblemer ved åbning af præsentationer og regneark.
For de fleste almindelige skrifttyper skal du blot installere pakken. msttcorefonts (eller tilsvarende afhængigt af distributionen), som inkluderer et ret komplet sæt: Arial, Times New Roman, Verdana, Tahoma osv. Men hvis du ønsker skrifttyper som Calibri eller Cambria, der bruges i vid udstrækning i moderne dokumenter, skal du gå et skridt videre.
En populær mulighed er at downloade PowerPoint 2007-fremviser til Windows eller Microsoft Office Compatibility Pack for tidligere versioner af Office. Disse pakker indeholder de skrifttyper, du er interesseret i, pakket i CAB-filer som du kan tilgå med cabextract.
Den generelle strømning Det ville være noget lignende dette (tilpasset til et Debian/Ubuntu-miljø):
- Installer cabextract, hvis du ikke allerede har det:
sudo apt-get install cabextract - Download den eksekverbare PowerPoint Viewer 2007-fil eller Office 2007-kompatibilitetspakken til den ønskede mappe.
- Fra terminalen skal du navigere til den mappe og Udpak den eksekverbare fil med kogeekstrakt, for eksempel:
cabextract PowerPointViewer.exe - En mellemliggende CAB-fil vises blandt de genererede filer (f.eks. ppviewer.cab eller lignende). Du åbner den igen:
cabextract ppviewer.cab - Opret en mappe til pænt at gemme de udtrukne skrifttyper. For eksempel for Vista-skrifttyper:
sudo mkdir -p /usr/share/fonts/truetype/vista - Flyt alle skrifttypefiler (udvidelser) .TTF, .ttf, .ttcosv.) til den mappe:
sudo mv *.TTF /usr/share/fonts/truetype/vista - Opdater systemets fontcache, så de nye fonte registreres:
sudo fc-cache -f -v
Med disse trin vil dit Linux-skrivebordsmiljø have de samme kilder, der er tilgængelige der bruger Windows Vista og Office 2007, hvilket hjælper med at vise dokumenter uden mærkelige spring eller skrifttypeudskiftninger.
Der er endda specifikke tilfælde som springvandet Calibrihvor de er blevet opdaget forskellige versioner (For eksempel kan version 1.02, der er inkluderet i visse udgaver af Office 2007, vises forkert på Linux ved størrelser mellem 10 og 14 pixels.) Et alternativ er at hente en tidligere version (1.0) via Office Compatibility Pack, udpakke den med cabextract som beskrevet og kun registrere den version på systemet for at forbedre gengivelsen.
Almindelige problemer med cabextract i Lutris og winetricks
Ved at integrere cabextract med værktøjer som f.eks. Lutris eller vintricksNogle gange vises der noget kryptiske fejlmeddelelser, som faktisk koger ned til ret specifikke problemer: CAB-filer, der ikke findes, downloads med forkerte MD5-kontrolsummer eller kabinetter, der ikke anses for gyldige af værktøjet.
Forestil dig et scenarie, hvor du prøver at installere et Windows-spil som f.eks. OSU! gennem Lutris. Den script Installationen kræver muligvis, at PowerPoint-fremviseren (ppviewer) har bestemte skrifttyper eller komponenter tilgængelige og bruger winetricks i baggrunden til at downloade og udpakke den tilsvarende eksekverbare fil.
I en sådan situation kan du muligvis se en fejl som denne:
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
og lige efter:
advertencia: el comando cabextract ... devolvió el estado 1. Abortando.
Denne type besked indikerer normalt, at cabextract fandt ingen gyldige CAB-filer i den downloadede eksekverbare fil, normalt fordi downloadet er beskadiget, eller fordi den nøjagtige installationsversion, som winetricks forventer, ikke længere matcher den, der er hentet fra Microsofts servere.
Et yderligere symptom er, at Winetricks selv markerer pakken som mislykket i md5sum-verifikationDette forstærker ideen om, at downloadet ikke matcher den checksum, som scriptet forventer. I så fald ligger problemet ikke i selve cabextract, men i uoverensstemmelse mellem winetricks-scriptet og den fil, der faktisk blev downloadet.
I betragtning af disse scenarier involverer de logiske trin tving geninstallationen frem fra komponenten fra winetricks (så den downloader den igen), tjek manuelt om filen findes og kan åbnes med cabextract fra terminalen, eller søg efter en alternativ version af installationsprogrammet, der matcher den MD5-kontrolsum, som scriptet forventer.
lcab: oprettelse af CAB-filer fra Linux
Indtil videre har vi fokuseret på cab-ekstrakt, som bruges til at udpakningsskabeHvis det, du har brug for, er den omvendte proces, dvs. Generer dine egne CAB-filer For at distribuere software eller data fra Linux til Windows-systemer, er det værktøj, der kommer i spil lcab.
lcab er et lille kommandolinjeprogram designet specifikt til bygge CAB-skabe fra en eller flere inputfiler. Selvom det ikke er så kendt som cabextract, er det nyttigt, når du vil pakke indhold, samtidig med at Microsofts native format respekteres, for eksempel for at integrere det i installationsprogrammer eller for at udnytte komponenter, der forventer en specifik CAB-fil.
Dens generelle syntaks er normalt enkel: du angiver navn på outputskabet og derefter de filer, du vil pakke. Derfra sørger lcab for at generere den interne struktur, der kræves af formatet, og anvende den passende komprimering. Kombineret med cabextract har du en Fuld tur-retur-flowFjern eksisterende skabe, modificer dem og emballer dem om nødvendigt.
I praksis inkluderer lcab normalt ikke så mange avancerede muligheder som cabextract, men til opgaver som distribution, testning eller emulering af Windows-miljøer Linux er som regel mere end rigeligt.
Samlet set, at have cab-ekstrakt og lcab i din værktøjskasse giver dig mulighed for begge dele forbruge som generere Microsoft Cabinet fra et UNIX-system, som åbner døren for at automatisere installationer, analysere opdateringspakker, udtrække proprietære ressourcer (altid med respekt for deres licenser) eller løse kompatibilitetsproblemer med Wine og derivater.
At mestre den daglige brug af cabextract, kende dets muligheder for at liste, teste og reparere kabinetter, og vide, hvornår det er bedst at bruge lcab til at oprette dine egne .cab-filer, sætter dig i en langt mere komfortabel position, når du skal navigere i verdenen af Windows og GNU/LinuxDet handler om at forstå, hvad de ofte oversete .CAB-filer skjuler, og at udnytte disse gratis værktøjer, så de arbejder til din fordel i stedet for at blive en hindring.
Passioneret forfatter om bytes-verdenen og teknologien generelt. Jeg elsker at dele min viden gennem skrivning, og det er det, jeg vil gøre i denne blog, vise dig alle de mest interessante ting om gadgets, software, hardware, teknologiske trends og mere. Mit mål er at hjælpe dig med at navigere i den digitale verden på en enkel og underholdende måde.

