cabextract – jak rozpakować archiwa CAB w Linuxie?

W świecie Linuksa mamy do dyspozycji wiele narzędzi do obsługi archiwów: tar, gzip, unzip, 7z i wiele innych. Czasami jednak trafiamy na mniej popularne formaty, które wywodzą się głównie ze środowiska M$. Jednym z takich przypadków są pliki CAB. Do ich obsługi w systemach uniksowych służy program cabextract.

Czym są pliki CAB?

Format CAB (Cabinet File) to rodzaj archiwum stosowany przez Microsoft od lat 90.

  • Pojawił się wraz z M$ 95, jako sposób dystrybucji sterowników, bibliotek i instalatorów.
  • CAB wspiera kompresję (m.in. MSZIP, LZX) i podział archiwum na segmenty (przydatne dawniej np. na dyskietkach).
  • Był szeroko wykorzystywany w instalatorach programów i sterowników (np. pliki .cab w katalogu C:\M$\System32 albo na płytach instalacyjnych).
  • Do dziś spotyka się go w aktualizacjach M$ czy paczkach sterowników.

Dla użytkowników Linuksa najczęstsze zastosowanie to rozpakowanie zawartości sterownika lub aplikacji M$, by wydobyć konkretne pliki (np. .dll, .inf, .sys) i wykorzystać je w projektach open source, Wine, czy emulatorach.

cabextract – podstawowe informacje

cabextract to niewielki program stworzony specjalnie do rozpakowywania archiwów CAB w systemach Linux i Unix.

  • Jego kod jest otwarty i rozwijany od początku lat 2000.
  • Obsługuje wszystkie popularne algorytmy kompresji stosowane w CAB.
  • Działa z linii poleceń i ma bardzo prostą składnię.

Instalacja

Na większości dystrybucji znajdziesz go w repozytoriach:

Debian/Ubuntu:

sudo apt install cabextract

Fedora:

sudo dnf install cabextract

Arch Linux:

sudo pacman -S cabextract

Podstawowe użycie

Rozpakowanie pojedynczego archiwum:

cabextract plik.cab

Domyślnie pliki wypakują się do bieżącego katalogu.

Rozpakowanie do wybranego katalogu:

cabextract -d katalog_docelowy plik.cab

Wymuszenie wypakowania wszystkich plików (nawet jeśli archiwum jest uszkodzone):

cabextract -f plik.cab

Jeśli CAB jest częścią wielosegmentowego archiwum (np. disk1.cab, disk2.cab), wystarczy uruchomić cabextract na pierwszym z nich – program sam połączy pliki.

Przykład praktyczny

Załóżmy, że pobraliśmy sterownik drukarki w postaci pliku driver.cab. Chcemy uzyskać z niego plik .inf do konfiguracji w CUPS:

cabextract driver.cab
ls | grep .inf

W ten sposób szybko znajdziemy i wykorzystamy potrzebny plik bez konieczności uruchamiania instalatora M$.

Podsumowanie

Choć pliki CAB są dziś mniej popularne niż w latach 90. i 2000., wciąż spotykamy je w świecie M$. Dzięki cabextract możemy bez problemu obsługiwać je w systemie Linux – czy to do analizy sterowników, czy do pracy z archiwalnym oprogramowaniem.

To kolejne małe, ale praktyczne narzędzie w arsenale linuksowego użytkownika. Poznawanie Linuxa staje się prostsze z serwisem poznajlinuxa.pl ;=]

About the author

Autor "BIELI" to zapalony entuzjasta otwartego oprogramowania, który dzieli się swoją pasją na blogu poznajlinuxa.pl. Jego wpisy są skarbnicą wiedzy na temat Linuxa, programowania oraz najnowszych trendów w świecie technologii. Autor "BIELI" wierzy w siłę społeczności Open Source i zawsze stara się inspirować swoich czytelników do eksplorowania i eksperymentowania z kodem.