Comenzile cabextract și lcab pentru lucrul cu fișiere CAB în Linux

Ultima actualizare: 13/01/2026
Autorul: Isaac
  • Cabextract vă permite să listați, să testați, să extrageți și să reparați fișiere Microsoft CAB pe sisteme precum UNIX.
  • Este esențial pentru Vin - WineLutris și winetricks se ocupă de instalatorii de ferestre din care depind de fișierele .cab.
  • Cabextract vă permite să obțineți fonturi și resurse pentru instalatorii Office și PowerPoint, pentru utilizare în Linux.
  • lcab completează cabextract permițându-vă să creați fișiere CAB din Linux pentru a distribui date către Windows.

Comenzile cabextract și lcab în Linux

Dacă lucrezi cu Fișiere de instalare Windows din LinuxMai devreme sau mai târziu vei da peste faimoasele fișiere .TAXI (Microsoft Cabinet). Deși nu sunt la fel de comune în ecosistemul GNU/Linux ca fișierele .tar.gz sau .zip, acestea sunt încă omniprezente în programele de instalare, drivere și patch-uri Microsoft. Din fericire, avem instrumente bazate pe text care ne permit să le manipulăm destul de ușor.

În acest articol vom aprofunda cabextract și lcabDouă utilitare concepute pentru a gestiona fișiere CAB pe sisteme de tip UNIX. Veți vedea exact ce sunt aceste containere, cum se instalează instrumentele pe diferite distribuții, ce opțiuni oferă pentru listarea, extragerea, testarea sau chiar repararea dulapurilor deteriorate și în ce situații din lumea reală (Wine, fonturi Windows, programe de vizualizare PowerPoint etc.) vă pot scoate dintr-o situație dificilă.

Ce este formatul CAB de la Microsoft?

Formatul CAB (Cabinet Microsoft) A fost conceput de Microsoft ca fiind al său împachetare nativă și metodă de compresie de fișiere în Windows. Este utilizat pe scară largă în motoarele de instalare ale platformei: Setup API, Device Installer, AdvPack, Windows Installer și alte componente de sistem responsabile pentru implementarea software-ului și a actualizărilor.

Un fișier cu extensia .taxi funcționează ca recipient comprimatGrupează mai multe fișiere și directoare, acceptă diferiți algoritmi de compresie (cum ar fi MSZIP, LZX sau Quantum) și poate încorpora semnături digitale pentru a asigura integritatea conținutului. Aceasta explică de ce îl vedeți însoțind instalatoarele tipice precum setup.exe sau install.exe, unde executabilul acționează ca un „lansator”, iar datele propriu-zise circulă în cadrul unuia sau mai multor fișiere CAB.

Deși în Windows acestea sunt gestionate aproape transparent datorită asistenților de instalare, în GNU / Linux Aceste containere nu sunt atât de comune, așa că aveți nevoie de utilități specifice pentru a le deschide, a le inspecta sau a le extrage conținutul fără a rula programul de instalare original.

Pe lângă pachetele desktop clasice, CAB-urile se găsesc în Fișiere de instalare Windows CEActualizări de sistem, fonturi web, codecuri video, șabloane Office și tot felul de resurse redistribuibile pe care Microsoft și alți furnizori le ambalează în acest format.

Cabextract: instrumentul cheie pentru extragerea fișierelor CAB

Utilizarea cabextract și lcab pe sistemele Linux

capextract Este un program online comenzi proiectat pentru Extragerea fișierelor din containerele Microsoft CAB pe UNIX și sisteme derivate (GNU/Linux, BSD, macOS etc.). Este distribuit ca Software liber sub licența GNU GPL și se bazează pe biblioteca portabilă libmspack (licență LGPL), specializată în formatele de compresie Microsoft.

Utilitatea este capabilă să gestioneze toate variantele și caracteristicile obișnuite ale fișierelor .CAB, inclusiv dulapurile folosite de Windows CE și dulapuri „imbricate” (când un CAB conține alte CAB-uri în interior). De asemenea, știe cum să gestioneze dulapuri din mai multe părțiAceste programe de instalare distribuie datele în mai multe fișiere consecutive și sunt reasamblate automat în Windows.

Printre punctele sale forte, cabextract poate păstrarea structurii interne a directoarelor, să mențină datele și permisiunile fișierelor extrase, să efectueze teste de integritate fără a scrie datele pe disc și chiar să încerce pentru a salva informații din dulapuri corupte înlocuind zonele ilizibile cu zerouri pentru a continua cu restul blocurilor.

Deși există de ani de zile și a trecut prin diferite versiuni, este consolidat în ecosistemul multor distribuții și are pachete precompilate pentru o mare varietate de platforme: Debian, Ubuntu, Fedora, Gentoo, Slackware, T2 SDE, FreeBSD, NetBSD, OpenBSD, Solaris, macOS (Fink, MacPorts), Cygwin pe Windows, AmigaOS, DOS/FreeDOS și mai mult

Instalarea Cabextract pe diferite platforme

În majoritatea distribuțiilor GNU/Linux moderne puteți instala cabextract din depozitele oficialeAcest lucru simplifică foarte mult sarcina, deoarece nu mai trebuie să compilați manual sau să căutați fișiere binare pe web.

În sistemele bazate pe Debian sau UbuntuInstalarea clasică se face cu:

sudo apt-get install cabextract

sau, dacă preferați aptitudine:

sudo aptitude install cabextract

Odată ce instalarea este completă, Wine și alte instrumente care depind de acest utilitar vor putea decomprima automat fișierele .cab pe care le găsesc la instalatori și asistenți.

În alte distribuții, comanda variază, dar ideea este exact aceeași: să folosești manager de pachete al sistemului. De exemplu, în mediile bazate pe RPM ați putea folosi:

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

Și dacă ești interesat să compilezi din codul sursă (de exemplu, pentru a testa versiunea de dezvoltare), fluxul de lucru tipic ar fi:

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

În arborele proiectului veți găsi un fișier INSTALARE cu instrucțiuni mai detaliate, precum și scripturi auxiliare, cum ar fi reconstruiește.sh în depozitul de dezvoltare libmspack, conceput pentru a regenera configurația atunci când lucrați direct cu ramura GitHub.

  Cum puteți schimba acordul IP pe laptop și telefon

Opțiuni de bază de utilizare a Cabextract

Odată instalat, punctul de plecare pentru înțelegere toate opțiunile disponibile Cel mai bine este să consultați ajutorul și pagina de manual încorporate. Pentru aceasta, aveți la dispoziție două resurse foarte utile:

cabextract --help

și documentația clasică în format man:

man cabextract

Rezumatul care arată opțiunea -Ajutor Oferă o prezentare generală rapidă a celor mai comune steaguri, în timp ce pagina de manual intră în mai multe detalii și explică cazuri de utilizare specificeNote privind siguranța, comportamentul cu dulapuri din mai multe componente, filtre etc.

În utilizarea obișnuită, executați pur și simplu comanda urmată de numele fișierului CAB sau al executabilului care îl conține iar cabextract se ocupă de munca grea:

cabextract archivo.cab

Ei bine:

cabextract InstaladorWindows.exe

În acest scenariu, instrumentul va extrage toate fișierele conținute în dulap (sau dulapuri, dacă există mai multe) din directorul curent, menținând structura internă de foldere și marcajele temporale asociate fiecărui element.

Listarea, testarea și extragerea fișierelor CAB

Pe lângă funcția simplă de decompresie, cabextract încorporează mai multe opțiuni utile de avut la îndemână atunci când lucrați cu mulți instalatori sau când doriți pur și simplu să inspectați ce se află într-un fișier .cab fără a-l extrage efectiv.

la dovedește integritatea Pentru a decomprima un fișier CAB, adică pentru a-l citi complet și a-l decomprima intern, dar fără a scrie fișierele rezultate pe disc, se utilizează opțiunea -t (o -Test):

cabextract -t sls.cab

Această operație efectuează întregul proces de extragere în memorie și, în plus, calculează și afișează o Sumă de control MD5 pentru fiecare fișier conținut în dulap. Acest lucru este util în special atunci când doriți să verificați dacă un program de instalare descărcat este complet înainte de a-l utiliza sau dacă suspectați că fișierul a fost corupt la copierea acestuia între computere.

Dacă în loc să testați integritatea preferați lista conținutului Din CAB, puteți recurge la opțiunea -l o -listă:

cabextract -l sls.cab

Cu această comandă, utilitarul va afișa pe ecran numele tuturor fișierelor din interiorul cabinetului, însoțite de informații precum dimensiunea, calea relativă sau folderul logic căruia îi aparțin, în funcție de modul în care a fost creat CAB-ul.

Pentru extracția completă la director specificAi opțiunea -d (o –DirectorDe exemplu, dacă doriți să goliți conținutul unui dulap în /tmp/cab_files/ poți rula:

cabextract sls.cab -d /tmp/cab_files/

În acest fel, în loc să umpleți directorul curent cu fișiere, veți avea tot materialul inclus într-o cale separată, ceea ce este foarte util atunci când analizați programe de instalare mari sau efectuați sarcini de inginerie inversă.

Dacă, după prima extragere, descoperiți că unul dintre fișierele generate este la rândul său un alt CABProcedura pentru continuarea deschiderii este identică. De exemplu:

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

Cu această serie de pași, aprofundezi diferitele niveluri de împachetare pe care mulți instalatori Microsoft le înlănțuie, până când accesezi în final fișierele XML, binarele, sursele sau alte resurse care te interesează cu adevărat.

Opțiuni avansate și control fin asupra extracției

cabextract nu doar decomprimă totul; îți permite și să rafinează ce este extras și cumAcest lucru este deosebit de valoros atunci când lucrați cu dulapuri mari sau când sunteți interesat doar de anumite tipuri de dosare.

Pe de o parte, programul caută automat dulapuri încorporate în alte fișiere și le extrage fără a fi nevoie să specificați explicit acest lucru. De asemenea, dacă detectează dulapuri din mai multe părțiÎncearcă să localizeze și să lege toate piesele pentru a le trata ca o singură unitate. Dacă, din orice motiv, doriți să dezactivați acest comportament, aveți opțiunea -singur, ceea ce obligă cabextract să lucreze doar cu fișierul pe care i l-ai transmis.

Când sunteți interesat doar de anumite fișiere (de exemplu, toate fișierele audio cu extensia .wav dintr-un pachet imens), puteți utiliza opțiunea -filtra pentru a limita extracția. Un exemplu clasic ar fi:

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

În acest caz, cabextract iterează prin conținutul music.cab Dar extrage doar fișierele ale căror nume corespund modelului specificat, ignorându-le pe restul. Acest lucru vă economisește spațiu, timp de procesare și dezordine în directorul de lucru.

O altă posibilitate interesantă este de a forța asta Toate numele fișierelor extrase vor fi convertite în litere mici. după opțiune –minusculeAcest lucru poate fi util în mediile în care sensibilitatea la majuscule și minuscule în căi cauzează probleme sau dacă pur și simplu doriți să normalizați numele în scopuri organizaționale.

În ceea ce privește locația, am văzut deja că puteți folosi –Director (sau comanda rapidă -d) pentru a trimite fișierele extrase într-un anumit folder. Combinarea acestei opțiuni cu filtre și conversia numelor vă oferă un control destul de precis asupra rezultatului final al fiecărei extrageri.

Repararea fișierelor CAB deteriorate și a securității

În lumea reală, este relativ frecvent să întâlnești fișiere CAB corupte: download-uri incomplet, erori în dispozitive depozitareîntreruperi de rețea etc. cabextract încorporează o opțiune numită –reparare conceput pentru a încerca salvați cât mai multe date posibil când întâlniți un dulap deteriorat.

  Cum se schimbă indicatorul mouse-ului în Windows 11 pas cu pas și fără programe

Când utilizați –repararePorțiunile ilizibile ale datelor sunt înlocuite cu zerouri, iar instrumentul încearcă să treacă la următoarele blocuri, sperând că acestea sunt intacte. Acest proces nu „repară” fișierul în sens strict (informațiile corupte se pierd), dar permite adesea recuperarea unui conținut care altfel ar fi inaccesibil.

Din punct de vedere istoric, cabextract și biblioteca libmspack au corectat diverse vulnerabilități de securitate legate de gestionarea fișierelor rău intenționate sau manipulate special. Printre cele mai importante se numără problemele legate de:

  • Tururi de director folosind secvențe precum „../” pentru a încerca să scrie în afara directorului curent (CVE-2004-0916).
  • căi absolute și combinații de „/” și „\” în Cygwin care ar putea ocoli verificările de securitate și ar putea forța extragerea în locații arbitrare (CVE-2015-2060).
  • Citiri în afara intervalului în anumite scenarii de decompresie LZX sau MSZIP (CVE-2015-4470, CVE-2015-4471).
  • Bucle infinite și accese incorecte la memorie în decodorul Quantum și alți algoritmi la procesarea offset-urilor sau lungimilor nevalide, în special în arhitecturile pe 32 de biți (CVE-2014-9732, CVE-2014-9556, CVE-2010-2800, CVE-2010-2801).

Cele mai recente versiuni au remediat aceste defecte, așa că este întotdeauna recomandat să actualizați. Mențineți Cabextract actualizat din depozitele distribuției tale. Acest lucru asigură minimizarea impactului fișierelor CAB special concepute pentru a cauza erori sau a exploata punctele slabe ale decodorului.

Cabextract și Wine: Instalatori Windows pe Linux

Dacă utilizați Vin sau Lutris Pentru a rula aplicații Windows pe Linux, probabil ați întâlnit deja mesaje de eroare în timpul instalării care menționează fișiere .taxiAcest lucru se întâmplă deoarece mulți instalatori se așteaptă să poată accesa aceste dulapuri în mod nativ, iar dacă mediul nu are un instrument potrivit pentru a le decomprima, procesul poate eșua la jumătatea drumului.

Un caz foarte tipic este întâlnirea unui program de instalare care include un fișier cu extensia „.cab” și care, atunci când încercați să îl implementați în Wine, Afișează o eroare în timpul fazei de instalare.Fără cabextract, Wine nu știe cum să gestioneze corect aceste containere, așa că expertul fie se oprește, fie nu reușește să copieze toate componentele necesare.

În multe scenarii, soluția implică pur și simplu instalați cabextract pe sistemul gazdăastfel încât Wine, winetricks sau Lutris să îl poată invoca în fundal atunci când trebuie să decomprime unul dintre aceste dulapuri. În Ubuntu, de exemplu, puteți face acest lucru dintr-un terminal cu:

sudo apt-get install cabextract

Odată instalat, este destul de comun ca programele de instalare care anterior nu au reușit să pornească corect fără a fi nevoie să modificați altceva, deoarece singurul lucru care le lipsea era capacitatea de a extrage fișiere .cab încapsulate.

Utilizare practică: fonturi Windows și vizualizator PowerPoint

Dincolo de exemplele academice, cabextract are utilizări foarte specifice și practice în viața de zi cu zi a unui utilizator de desktop Linux care lucrează cu documente Office sau dorește să profite de unele resurse Windows fără a instala întregul sistem de operare.

Un scenariu clasic este cel al celor care vor Instalarea anumitor fonturi Windows pe GNU/Linux (de exemplu, cele din Vista sau Office 2007) astfel încât documentele să arate exact la fel ca pe computerele cu Microsoft Officesau pentru a evita problemele de aspect la deschiderea prezentărilor și a foilor de calcul.

Pentru majoritatea fonturilor comune, instalați pur și simplu pachetul. msttcorefonts (sau echivalentul său în funcție de distribuție), care include un set destul de complet: Arial, Times New Roman, Verdana, Tahoma etc. Dar dacă doriți fonturi precum Calibri sau Cambria, utilizat pe scară largă în documentele moderne, trebuie să mergeți cu un pas mai departe.

O opțiune populară este descărcarea Vizualizator PowerPoint 2007 pentru Windows sau Pachetul de compatibilitate Microsoft Office pentru versiunile anterioare de Office. Aceste pachete conțin fonturile care vă interesează, incluse în Fișiere CAB la care puteți accesa cu cabextract.

Fluxul general Ar fi ceva similar cu acesta (adaptat la un mediu Debian/Ubuntu):

  1. Instalați cabextract dacă nu îl aveți deja:
    sudo apt-get install cabextract
  2. Descărcați fișierul executabil PowerPoint Viewer 2007 sau pachetul de compatibilitate Office 2007 în directorul ales.
  3. Din terminal, navigați la folderul respectiv și Dezarhivați executabilul cu cabextract, de exemplu:
    cabextract PowerPointViewer.exe
  4. Un fișier CAB intermediar va apărea printre fișierele generate (de exemplu, ppviewer.cab (sau similar). Îl deschideți din nou:
    cabextract ppviewer.cab
  5. Creați un director pentru a stoca cu grijă fonturile extrase. De exemplu, pentru fonturile Vista:
    sudo mkdir -p /usr/share/fonts/truetype/vista
  6. Mută ​​toate fișierele de fonturi (extensii) .TTF, .ttf, .ttc, etc.) în folderul respectiv:
    sudo mv *.TTF /usr/share/fonts/truetype/vista
  7. Actualizați memoria cache a fonturilor sistemului astfel încât noile fonturi să fie înregistrate:
    sudo fc-cache -f -v

Cu acești pași, mediul desktop Linux va avea aceleași surse disponibile care utilizează Windows Vista și Office 2007, ceea ce ajută la afișarea documentelor fără salturi ciudate sau înlocuiri de fonturi.

  Windows 10: Serviciul pentru clienți cu politici de grup nu a reușit să se conecteze[FIX].

Există chiar și cazuri specifice, cum ar fi cel al fântânii calibreunde au fost detectate diferite versiuni (De exemplu, versiunea 1.02, inclusă în anumite ediții de Office 2007, se poate afișa incorect pe Linux la dimensiuni între 10 și 14 pixeli.) O alternativă este obținerea unei versiuni anterioare (1.0) prin intermediul Office Compatibility Pack, extragerea acesteia cu cabextract așa cum este descris și înregistrarea doar a acelei versiuni în sistem pentru a îmbunătăți randarea.

Probleme frecvente cu cabextract în Lutris și winetricks

Prin integrarea cabextract cu instrumente precum Lutris sau trucuri cu vităUneori, apar mesaje de eroare oarecum criptice, care se reduc de fapt la probleme destul de specifice: fișiere CAB care nu există, descărcări cu sume de control MD5 incorecte sau dulapuri care nu sunt considerate valide de către instrument.

Imaginează-ți un scenariu în care încerci să instalezi un joc Windows precum OSU! prin Lutris. Cel/Cea/Cei/Cele scenariu Instalarea poate necesita ca vizualizatorul PowerPoint (ppviewer) să aibă anumite fonturi sau componente disponibile și să utilizeze winetricks în fundal pentru a descărca și extrage fișierul executabil corespunzător.

Într-o astfel de situație, este posibil să vedeți o eroare de genul:

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

și imediat după:

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

Acest tip de mesaj indică de obicei că cabextract nu a găsit niciun fișier CAB valid în executabilul descărcat, de obicei pentru că descărcarea este coruptă sau pentru că versiunea exactă a programului de instalare pe care o așteaptă winetricks nu mai corespunde cu cea obținută de pe serverele Microsoft.

Un simptom suplimentar este faptul că Winetricks însuși marchează pachetul ca eșuat în verificare md5sumAceasta întărește ideea că descărcarea nu corespunde sumei de control așteptate de script. În acest caz, problema nu este cu cabextract în sine, ci cu inconsecvență între scriptul winetricks și fișierul descărcat efectiv.

Având în vedere aceste scenarii, pașii logici implică forțați reinstalarea din componenta de la winetricks (astfel încât să o descarce din nou), verificați manual dacă fișierul există și poate fi deschis cu cabextract din terminal sau căutați o versiune alternativă a programului de instalare care corespunde sumei de control MD5 așteptate de script.

lcab: crearea fișierelor CAB din Linux

Până acum ne-am concentrat pe cabextract, care este folosit pentru despachetarea dulapurilorDacă aveți nevoie de procesul invers, adică... Generați propriile fișiere CAB De la Linux pentru distribuirea de software sau date către sistemele Windows, instrumentul care intră în joc este lcab.

lcab este un mic program de linie de comandă conceput special pentru construiți dulapuri CAB dintr-unul sau mai multe fișiere de intrare. Deși nu este la fel de cunoscut ca cabextract, este util atunci când doriți să împachetați conținut respectând formatul nativ al Microsoft, de exemplu pentru a-l integra în programele de instalare sau pentru a profita de componentele care așteaptă un anumit fișier CAB.

Sintaxa sa generală este de obicei simplă: indicați numele dulapului de ieșire și apoi fișierele pe care doriți să le împachetați. De acolo, lcab se ocupă de generarea structurii interne necesare formatului și de aplicarea compresiei corespunzătoare. În combinație cu cabextract, aveți un flux complet dus-întors: îndepărtați dulapurile existente, modificați-le și reambalați-le dacă este necesar.

În practică, lcab nu include de obicei la fel de multe opțiuni avansate ca cabextract, dar pentru sarcini precum distribuția, testarea sau emularea mediilor Windows Linux este de obicei mai mult decât suficient.

Per total, având cabextract și lcab în trusa ta de instrumente îți permite să faci ambele lucruri consuma ca genera Microsoft Cabinet dintr-un sistem UNIX, care deschide ușa către automatizarea instalărilor, analizarea pachetelor de actualizare, extragerea resurselor proprietare (respectând întotdeauna licențele acestora) sau rezolvarea problemelor de compatibilitate cu Wine și derivatele sale.

Stăpânirea utilizării zilnice a cabextract, cunoașterea opțiunilor sale pentru listarea, testarea și repararea dulapurilor și cunoașterea momentului în care este cel mai bine să utilizați lcab pentru a crea propriile fișiere .cab, vă pune într-o poziție mult mai confortabilă atunci când trebuie să navigați prin lumea... Windows și GNU/LinuxEste vorba despre a înțelege ce ascund acele fișiere .CAB adesea trecute cu vederea și despre a profita de aceste instrumente gratuite, astfel încât acestea să funcționeze în favoarea ta, în loc să devină un obstacol.

Cum să împarți fișierele mari în părți în Windows 11
Articol asociat:
Cum se împart fișiere mari în Windows 11