XZ Utils (xz-utils lub po prostu xz) to projekt open source i całkowicie darmowy program, który udostępnia wszystkie niezbędne narzędzia do pracy z paczkami XZ w dowolnym systemie operacyjnym GNU / Linux. Pozwala wyodrębnić archiwa kończące się rozszerzeniami plików .xz lub .lzma, a także kompresować pliki i foldery metodą kompresji XZ, co skutkuje archiwami .xz, .lzma, tar.xz lub tar.lzma.
Jeden z najpotężniejszych algorytmów kompresji
XZ jest bez wątpienia jednym z najsilniejszych algorytmów kompresji na świecie i działa na systemach GNU / Linux. Jest w stanie tworzyć archiwa, które są dwa lub trzy razy mniejsze niż inne popularne metody kompresji, takie jak RAR, ZIP, GZ lub BZ2. Mówiąc dokładniej, archiwa XZ są o 15% mniejsze niż w archiwach BZip2 i o 30% mniejsze niż pliki gzip.
Co & nsquo; w pudełku?
XZ Utils lub xz-utils lub xz to oficjalna nazwa pakietu, którą można łatwo zainstalować na wielu systemach operacyjnych GNU / Linux z domyślnych repozytoriów oprogramowania. Składa się z biblioteki kompresji liblzma, narzędzia wiersza polecenia xz oraz narzędzia do dekompresji xzdec.
Ponadto zawiera zestaw skryptów powłoki, w tym xzgrep, xzegrep, xzfgrep, xzless, xzmore, xzcat, xzcmp i xzdiff, które pozwalają przeglądać, porównywać i przeglądać archiwa XZ, a także niezbędne komponenty do obsługi archiwów LZMA, które są teraz przestarzałe przez XZ. Polecenie XZ zawiera kilka ważnych opcji, w tym możliwość wymuszenia dekompresji i kompresji.
Obsługiwane platformy
Oprogramowanie do kompresji danych XZ jest oficjalnie obsługiwane na systemach GNU / Linux, GNU / HURD, BSD (FreeBSD, OpenBSD, NetBSD, Dragonfly BSD i MirBSD), MINIX, Solaris, IRIX, AIX, QNX, Mac OS X, Haiku , HP-UX, Tru64, OpenVMS, OpenVOS, IBM OS / 2, DOS (FreeDOS i MS-DOS), a także Microsoft Windows 95 i nowsze.
Co nowego w tej wersji:
- liblzma:
- Zezwalaj na 0 jako limit wykorzystania pamięci zamiast zwracać LZMA_PROG_ERROR. Teraz 0 jest traktowane tak, jakby podano 1 bajt, który faktycznie jest taki sam jak 0.
- Użyj "noexcept" słowo kluczowe zamiast "throw ()" w publicznych nagłówkach, gdy używany jest kompilator C ++ 11 (lub nowszy standard).
- Dodano poprawkę przenośności dla najnowszych kompilatorów Intel C.
- Pliki kompilacji Microsoft Visual Studio zostały przeniesione w systemach Windows / vs2013 i Windows / vs2017.
- xz:
- Napraw "xz --list --robot missing_or_bad_file.xz & quot; który spróbuje wydrukować zestandaryzowany ciąg, a tym samym wygenerować wyjście śmieci. Ponieważ status wyjścia jest niezerowy, większość zastosowań takiego polecenia nie będzie próbowało interpretować wyjścia śmieci.
- "xz --list foo.xz & quot; może wydrukować komunikat "Błąd wewnętrzny (błąd)" w narożnym przypadku, w którym został ustawiony określony limit wykorzystania pamięci.
Co nowego w wersji:
- xz:
- Zawsze zamykaj plik przed próbą jego usunięcia, aby uniknąć problemów w niektórych kombinacjach systemu operacyjnego i systemu plików.
- Naprawiono kopiowanie sygnatur czasowych plików w systemie Windows.
- Dodano obsługę eksperymentalną (domyślnie wyłączona) piaskownicy przy użyciu Capsicum (FreeBSD> 10). Zobacz --enable-sandbox w INSTALL.
- Poprawki zgodności C99 / C11 z liblzma. Problemy dotyczyły najmniejszych kompilacji za pomocą optymalizacji czasu łącza.
- Naprawiono błędy w rzadko używanej funkcji lzma_index_dup ().
- Używanie zewnętrznego kodu SHA-256 jest teraz domyślnie wyłączone. Można go włączyć, przekazując --enable-external-sha256 do skonfigurowania. Powody, dla których domyślnie należy je wyłączyć (więcej informacji w opisie INSTALL) ...
- Niektóre implementacje SHA-256 specyficzne dla systemu operacyjnego są w konflikcie z OpenSSL i powodują problemy w programach, które łączą się zarówno z bibliotekami liblzma, jak i libcrypto. Dotyczy to przynajmniej FreeBSD 10 i MINIX 3.3.0.
- Wewnętrzny SHA-256 jest szybszy niż kod SHA-256 w niektórych systemach operacyjnych.
- Zmiana wykrywania liczby rdzenia procesora w celu użycia sched_getaffinity () w systemach GNU / Linux i GNU / kFreeBSD.
- Poprawki do systemu-build i xz, aby zbudować xz, nawet jeśli kodery, dekodery lub wątki zostały wyłączone z libilzma za pomocą opcji configure. Te poprawki dodały dwa nowe #defines do config.h: HAVE_ENCODERS i HAVE_DECODERS.
Co nowego w wersji 5.2.2:
- Naprawiono błędy w kodzie specyficznym dla QNX.
- Pominięto użycie metody pipe2 (), nawet jeśli jest ona dostępna, aby uniknąć problemów z przenośnością w przypadku niektórych starych kombinacji systemów Linux i glibc.
- Zaktualizowane tłumaczenie niemieckie.
- Dodano pliki projektu, aby zbudować statyczną i współużytkowaną bibliotekę liblzma (nie całe XZ Utils) z Visual Studio 2013, aktualizacja 2 lub nowsza.
- Udokumentowano, że dekompresja wątków nie została jeszcze zaimplementowana. Wpis 5.2.0 NEWS opisujący obsługę wielowątkowości błędnie powiedział "dekompresję". kiedy powinien powiedzieć "kompresja".
Co nowego w wersji 5.2.1:
- Naprawiono regresję współczynnika kompresji w trybie szybkim LZMA1 i LZMA2. Błąd występuje w wersjach 5.1.4beta i 5.2.0.
- Naprawiono problem przenośności w Xz, który miał wpływ przynajmniej na OpenBSD.
- Naprawiono xzdiff, aby był kompatybilny z mktemp FreeBSD, który różni się od większości innych implementacji mktemp.
- Zmiana wykrywania liczby rdzeni procesora w celu użycia cpuset_getaffinity () w FreeBSD.
Co nowego w wersji 5.2.0:
- Wszystkie poprawki od wersji 5.0.8
- liblzma: Naprawiono lzma_stream_encoder_mt_memusage (), gdy używane było ustawienie wstępne.
- xzdiff: jeśli mktemp nie jest zainstalowany, mkdir będzie użyty jako element zastępczy do utworzenia katalogu tymczasowego. Instalowanie mktemp jest nadal zalecane.
- Zaktualizowano tłumaczenia francuskie, niemieckie, włoskie, polskie i wietnamskie.
Co nowego w wersji 5.0.7:
- Wszystkie poprawki od 5.0.6
- liblzma: Naprawiono użycie wstępnych ustawień w inicjacji enkodera z gwintem.
- xz --block-list i --block-size mogą teraz być używane razem w trybie jednowątkowym. Poprzednio kombinacja działała tylko w trybie wielowątkowym.
- Dodano obsługę LZMA_IGNORE_CHECK do biblioteki liblzma i udostępniono ją w xz jako --ignore-check.
- Optymalizacja prędkości liblzma:
- Inicjalizacja nowego kodera LZMA1 lub LZMA2 została zoptymalizowana. (Nie ma to wpływu na szybkość ponownego inicjowania już przydzielonego kodera). Pomaga to w skompresowaniu wielu małych buforów za pomocą lzma_stream_buffer_encode () i innych podobnych sytuacji, w których już przydzielony stan kodera nie jest ponownie wykorzystywany. To przyspieszenie jest widoczne również w Xz, jeśli jeden kompresuje wiele małych plików, zamiast tego, uruchamiając xz jeden raz i podając wszystkie pliki jako argumenty linii poleceń.
- Porównywanie buforów jest teraz znacznie szybsze, gdy dozwolony dostęp jest niedozwolony (skonfigurowany z opcją --enable-unaligned-access). Przyspiesza to znacząco kodowanie. Jest kod specyficzny dla archa dla 32-bitowego i 64-bitowego x86 (32-bitowy SSE2 wymaga najlepszych wyników i na razie nie ma wykrycia CPU w czasie pracy). W przypadku innych łuków istnieje tylko ogólny kod, który prawdopodobnie nie jest tak optymalny, jak mogą być rozwiązania specyficzne dla architektury łukowej.
- Dokonano kilku optymalizacji prędkości w kodzie SHA-256. (Zwróć uwagę, że wbudowany kod SHA-256 nie jest używany we wszystkich systemach operacyjnych.)
- liblzma może teraz zostać zbudowana z MSVC 2013 aktualizacja 2 lub nowsza przy użyciu windows / config.h.
- Dodano tłumaczenie wietnamskie.
Co nowego w wersji 5.0.6:
- liblzma: Naprawiono użycie wstępnych ustawień w inicjacji enkodera gwintowanego.
- xz --block-list i --block-size mogą teraz być używane razem w trybie jednowątkowym. Poprzednio kombinacja działała tylko w trybie wielowątkowym.
- Dodano obsługę LZMA_IGNORE_CHECK do biblioteki liblzma i udostępniono ją w xz jako --ignore-check.
- Optymalizacja prędkości liblzma:
- Inicjalizacja nowego kodera LZMA1 lub LZMA2 została zoptymalizowana. (Nie ma to wpływu na szybkość ponownego inicjowania już przydzielonego kodera). Pomaga to w skompresowaniu wielu małych buforów za pomocą lzma_stream_buffer_encode () i innych podobnych sytuacji, w których już przydzielony stan kodera nie jest ponownie wykorzystywany. To przyspieszenie jest widoczne również w Xz, jeśli jeden kompresuje wiele małych plików, zamiast tego, uruchamiając xz jeden raz i podając wszystkie pliki jako argumenty linii poleceń.
- Porównywanie buforów jest teraz znacznie szybsze, gdy dozwolony dostęp jest niedozwolony (skonfigurowany z opcją --enable-unaligned-access). Przyspiesza to znacząco kodowanie. Jest kod specyficzny dla archa dla 32-bitowego i 64-bitowego x86 (32-bitowy SSE2 wymaga najlepszych wyników i na razie nie ma wykrycia CPU w czasie pracy). W przypadku innych łuków istnieje tylko ogólny kod, który prawdopodobnie nie jest tak optymalny, jak mogą być rozwiązania specyficzne dla architektury łukowej.
- Dokonano kilku optymalizacji prędkości w kodzie SHA-256. (Zwróć uwagę, że wbudowany kod SHA-256 nie jest używany we wszystkich systemach operacyjnych.)
- liblzma może teraz zostać zbudowana z MSVC 2013 aktualizacja 2 lub nowsza przy użyciu windows / config.h.
- Dodano tłumaczenie wietnamskie.
Komentarze nie znaleziono