XZ Utils (xz-utils o semplicemente xz) è un progetto open source e completamente gratuito che fornisce tutte le utility essenziali per lavorare con i tarball XZ su qualsiasi sistema operativo GNU / Linux. Permette di estrarre archivi che finiscono nelle estensioni di file .xz o .lzma, nonché di comprimere file e cartelle con il metodo di compressione XZ, con conseguente archivio .xz, .lzma, tar.xz o tar.lzma.
Uno degli algoritmi di compressione più potenti
XZ è senza dubbio uno degli algoritmi di compressione più potenti al mondo, e funziona su sistemi GNU / Linux. È in grado di creare archivi che sono due o tre volte più piccoli di altri metodi di compressione popolari, come RAR, ZIP, GZ o BZ2. Per essere più precisi, gli archivi XZ sono più piccoli del 15% rispetto ai tarball bzip2 e con il 30% più piccoli dei file gzip.
Cosa c'è nella scatola?
XZ Utils o xz-utils o xz è il nome ufficiale del pacchetto, che può essere facilmente installato su molti sistemi operativi GNU / Linux dai loro repository software predefiniti. Comprende la libreria di compressione liblzma, lo strumento da riga di comando xz e lo strumento di sola decompressione xzdec.
Inoltre, viene fornito con un set di script di shell, tra cui xzgrep, xzegrep, xzfgrep, xzless, xzmore, xzcat, xzcmp e xzdiff, che ti permettono di visualizzare, confrontare e salvare gli archivi XZ, così come i componenti necessari per gestire gli archivi LZMA, che ora sono deprecati da XZ. Il comando XZ include diverse opzioni importanti, tra cui la possibilità di forzare la decompressione e la compressione.
Piattaforme supportate
Il software di compressione dati XZ è ufficialmente supportato su GNU / Linux, GNU / HURD, BSD (FreeBSD, OpenBSD, NetBSD, Dragonfly BSD e MirBSD), MINIX, Solaris, IRIX, AIX, QNX, Mac OS X, Haiku , HP-UX, Tru64, OpenVMS, OpenVOS, IBM OS / 2, DOS (FreeDOS e MS-DOS), nonché Microsoft Windows 95 e versioni successive.
Novità in questa versione:
- liblzma:
- Consenti 0 come limite di utilizzo della memoria invece di restituire LZMA_PROG_ERROR. Ora 0 viene trattato come se fosse stato specificato 1 byte, che è effettivamente uguale a 0.
- Utilizza & quot; noexcept & quot; parola chiave anziché & quot; throw () & quot; nelle intestazioni pubbliche quando viene utilizzato un compilatore C ++ 11 (o uno standard più recente).
- Aggiunta una correzione della portabilità per i recenti compilatori Intel C
- I file di build di Microsoft Visual Studio sono stati spostati in windows / vs2013 e windows / vs2017.
- XZ:
- Correzione & quot; xz --list --robot missing_or_bad_file.xz & quot; che proverebbe a stampare una stringa unitaria e quindi a produrre output spazzatura. Poiché lo stato di uscita è diverso da zero, la maggior parte degli usi di tale comando non tenterà di interpretare l'output garbage.
- & quot; xz --list foo.xz & quot; potrebbe stampare & quot; Errore interno (bug) & quot; in un caso in cui era stato impostato uno specifico limite di utilizzo della memoria.
Novità della versione nella versione:
- XZ:
- Chiudi sempre un file prima di provare ad eliminarlo per evitare problemi su alcune combinazioni di sistema operativo e file system.
- Corretta la copia dei timestamp dei file su Windows.
- Aggiunto il supporto sandbox sperimentale (disabilitato per impostazione predefinita) utilizzando Capsicum (FreeBSD & gt; = 10). Vedi --enable-sandbox in INSTALL.
- La conformità C99 / C11 si risolve in liblzma. I problemi riguardano le build più semplici che utilizzano ottimizzazioni link-time.
- Corretti bug nella funzione usata raramente lzma_index_dup ().
- L'uso del codice SHA-256 esterno è ora disabilitato per impostazione predefinita. Può ancora essere abilitato passando --enable-external-sha256 per la configurazione. I motivi per disabilitarlo di default (vedi INSTALLAZIONE per maggiori dettagli) ...
- Alcune implementazioni SHA-256 specifiche del sistema operativo sono in conflitto con OpenSSL e causano problemi nei programmi che si collegano sia a liblzma che a libcrypto. Almeno FreeBSD 10 e MINIX 3.3.0 sono interessati.
- SHA-256 interno è più veloce del codice SHA-256 in alcuni sistemi operativi.
- Modificato il rilevamento del numero di core della CPU per utilizzare sched_getaffinity () su GNU / Linux e GNU / kFreeBSD.
- Correzioni al sistema di build e xz per rendere xz buildable anche quando encoder, decodificatori o threading sono stati disabilitati da libilzma usando le opzioni di configurazione. Queste correzioni hanno aggiunto due nuovi #define a config.h: HAVE_ENCODERS e HAVE_DECODERS.
Novità nella versione 5.2.2:
- Corretti bug nel codice specifico QNX.
- Omesso l'uso di pipe2 () anche se è disponibile per evitare problemi di portabilità con alcune vecchie combinazioni Linux e glibc.
- Traduzione in tedesco aggiornata.
- Aggiunti file di progetto per creare liblzma statico e condiviso (non l'intero XZ Utils) con Visual Studio 2013 aggiornamento 2 o successivo.
- Documentato che la decompressione con thread non è stata ancora implementata. Una voce NEWS 5.2.0 che descrive il supporto multi-threading aveva erroneamente detto & quot; decompressione & quot; quando avrebbe dovuto dire & quot; compression & quot;.
Novità nella versione 5.2.1:
- Corretto una regressione del rapporto di compressione in modalità veloce di LZMA1 e LZMA2. Il bug è presente nelle versioni 5.1.4beta e 5.2.0.
- Risolto un problema di portabilità in xz che riguardava almeno OpenBSD.
- Corretto xzdiff per essere compatibile con mktemp di FreeBSD che differisce dalla maggior parte delle altre implementazioni di mktemp.
- Modificato il rilevamento del numero di core della CPU per utilizzare cpuset_getaffinity () su FreeBSD.
Novità nella versione 5.2.0:
- Tutte le correzioni da 5.0.8
- liblzma: risolto lzma_stream_encoder_mt_memusage () quando veniva usato un preset.
- xzdiff: se mktemp non è installato, mkdir sarà usato come fallback per creare una directory temporanea. L'installazione di mktemp è ancora raccomandata.
- Aggiornate traduzioni francesi, tedesche, italiane, polacche e vietnamite.
Novità della versione nella versione 5.0.7:
- Tutte le correzioni da 5.0.6
- liblzma: risolto l'uso dei preset nell'inizializzazione del codificatore thread.
- xz --block-list e --block-size possono ora essere usati insieme in modalità single-threaded. In precedenza la combinazione funzionava solo in modalità multi-thread.
- Aggiunto il supporto per LZMA_IGNORE_CHECK a liblzma e reso disponibile in xz come --ignore-check.
- ottimizzazioni della velocità di liblzma:
- L'inizializzazione di un nuovo encoder LZMA1 o LZMA2 è stata ottimizzata. (La velocità di reinizializzazione di un encoder già assegnato non è influenzata.) Questo aiuta a comprimere molti buffer di piccole dimensioni con lzma_stream_buffer_encode () e altre situazioni simili in cui uno stato dell'encoder già assegnato non viene riutilizzato. Questa accelerazione è visibile anche in xz se si comprimono molti piccoli file uno alla volta, invece di eseguire xz una volta e assegnare tutti i file come argomenti da riga di comando.
- I confronti del buffer sono ora molto più rapidi quando è consentito l'accesso non allineato (configurato con --enable-unaligned-access). Ciò accelera significativamente la codifica. Esiste un codice specifico per l'arco per 32 bit e 64 bit x86 (32 bit richiede SSE2 per i migliori risultati e per il momento non è disponibile il rilevamento della CPU in fase di esecuzione). Per gli altri arch vi è solo un codice generico che probabilmente non è ottimale come potrebbero essere le soluzioni specifiche dell'arch.
- Sono state apportate alcune ottimizzazioni della velocità al codice SHA-256. (Si noti che il codice SHA-256 incorporato non è utilizzato su tutti i sistemi operativi.)
- liblzma può ora essere creato con MSVC 2013 update 2 o successivo usando windows / config.h.
- È stata aggiunta la traduzione vietnamita.
Novità della versione nella versione 5.0.6:
- liblzma: corretto l'uso dei preset nell'inizializzazione del codificatore thread.
- xz --block-list e --block-size possono ora essere usati insieme in modalità single-threaded. In precedenza la combinazione funzionava solo in modalità multi-thread.
- Aggiunto il supporto per LZMA_IGNORE_CHECK a liblzma e reso disponibile in xz come --ignore-check.
- ottimizzazioni della velocità di liblzma:
- L'inizializzazione di un nuovo encoder LZMA1 o LZMA2 è stata ottimizzata. (La velocità di reinizializzazione di un encoder già assegnato non è influenzata.) Questo aiuta a comprimere molti buffer di piccole dimensioni con lzma_stream_buffer_encode () e altre situazioni simili in cui uno stato dell'encoder già assegnato non viene riutilizzato. Questa accelerazione è visibile anche in xz se si comprimono molti piccoli file uno alla volta, invece di eseguire xz una volta e assegnare tutti i file come argomenti da riga di comando.
- I confronti del buffer sono ora molto più veloci quando è consentito l'accesso non allineato (configurato con --enable-unaligned-access). Ciò accelera significativamente la codifica. Esiste un codice specifico per l'arco per 32 bit e 64 bit x86 (32 bit richiede SSE2 per i migliori risultati e per il momento non è disponibile il rilevamento della CPU in fase di esecuzione). Per gli altri arch vi è solo un codice generico che probabilmente non è ottimale come potrebbero essere le soluzioni specifiche dell'arch.
- Sono state apportate alcune ottimizzazioni della velocità al codice SHA-256. (Si noti che il codice SHA-256 incorporato non è utilizzato su tutti i sistemi operativi.)
- liblzma può ora essere creato con MSVC 2013 update 2 o successivo usando windows / config.h.
- È stata aggiunta la traduzione vietnamita.
I commenti non trovato