XZ Utils (xz-utils o simplemente xz) es un proyecto de software de código abierto y completamente gratuito que proporciona todas las utilidades esenciales para trabajar con XZ tarballs en cualquier sistema operativo GNU / Linux. Le permite extraer archivos que finalizan en las extensiones de archivo .xz o .zzma, así como comprimir archivos y carpetas con el método de compresión XZ, lo que da como resultado archivos .xz, .lzma, tar.xz o tar.lzma.
Uno de los algoritmos de compresión más potentes
XZ es sin duda uno de los algoritmos de compresión más poderosos del mundo, y se ejecuta en sistemas GNU / Linux. Es capaz de crear archivos que son dos o tres veces más pequeños que otros métodos de compresión populares, como RAR, ZIP, GZ o BZ2. Para ser más precisos, los archivos XZ son un 15% más pequeños que los archivos comprimidos bzip2 y un 30% más pequeños que los archivos gzip.
¿Qué hay en la caja?
XZ Utils o xz-utils o xz es el nombre oficial del paquete, que se puede instalar fácilmente en muchos sistemas operativos GNU / Linux desde sus repositorios de software predeterminados. Se compone de la biblioteca de compresión liblzma, la herramienta de línea de comandos xz y la herramienta de descompresión xzdec solo.
Además, viene con un conjunto de scripts de shell, incluidos xzgrep, xzegrep, xzfgrep, xzless, xzmore, xzcat, xzcmp y xzdiff, que le permiten ver, comparar y grep los archivos XZ, así como los componentes necesarios para manejar los archivos LZMA, que ahora XZ desaprobaba. El comando XZ incluye varias opciones importantes, incluida la capacidad de forzar la descompresión y la compresión.
Plataformas compatibles
El software de compresión de datos XZ es oficialmente compatible con GNU / Linux, GNU / HURD, BSD (FreeBSD, OpenBSD, NetBSD, Dragonfly BSD y MirBSD), MINIX, Solaris, IRIX, AIX, QNX, Mac OS X, Haiku , HP-UX, Tru64, OpenVMS, OpenVOS, IBM OS / 2, DOS (FreeDOS y MS-DOS), así como Microsoft Windows 95 y versiones posteriores.
Novedades en este lanzamiento:
- liblzma:
- Permita 0 como límite de uso de memoria en lugar de devolver LZMA_PROG_ERROR. Ahora 0 se trata como si se hubiera especificado 1 byte, que efectivamente es lo mismo que 0.
- Use & quot; noexcept & quot; palabra clave en lugar de & quot; throw () & quot; en los encabezados públicos cuando se usa un compilador C ++ 11 (o un estándar más nuevo).
- Se agregó una solución de portabilidad para los compiladores Intel C recientes.
- Los archivos de compilación de Microsoft Visual Studio se han movido en windows / vs2013 y windows / vs2017.
- xz:
- Corregir & quot; xz --list --robot missing_or_bad_file.xz & quot; que trataría de imprimir una cadena unitaria y así producir salida de basura. Dado que el estado de salida no es cero, la mayoría de los usos de dicho comando no intentará interpretar la salida de basura.
- & quot; xz --list foo.xz & quot; podría imprimir & quot; Error interno (error) & quot; en un caso de esquina donde se ha establecido un límite de uso de memoria específico.
Qué hay de nuevo en la versión:
- xz:
- Siempre cierre un archivo antes de intentar eliminarlo para evitar problemas en algunas combinaciones de sistema operativo y sistema de archivos.
- Copia fija de marcas de tiempo de archivos en Windows.
- Agregado soporte de sandbox experimental (deshabilitado por defecto) usando Capsicum (FreeBSD & gt; = 10). Consulte --enable-sandbox in INSTALL.
- La conformidad C99 / C11 se corrige en liblzma. Los problemas se ven afectados en las construcciones leastsome utilizando optimizaciones de tiempo de enlace.
- Se corrigieron errores en la función poco utilizada lzma_index_dup ().
- El uso del código externo SHA-256 ahora está deshabilitado por defecto. Todavía se puede habilitar pasando --enable-external-sha256 para configurar. Las razones para desactivarlo por defecto (vea INSTALAR para obtener más detalles) ...
- Algunas implementaciones SHA-256 OS-specific entran en conflicto con OpenSSL y causan problemas en los programas que enlazan tanto con liblzma como con libcrypto. Al menos FreeBSD 10 y MINIX 3.3.0 se ven afectados.
- El SHA-256 interno es más rápido que el código SHA-256 en algunos sistemas operativos.
- Se modificó la detección de recuento de núcleos de CPU para usar sched_getaffinity () en GNU / Linux y GNU / kFreeBSD.
- Se corrige en el sistema de compilación y xz para hacer que xz se pueda compilar incluso cuando los codificadores, decodificadores o subprocesos se hayan deshabilitado desde libilzma utilizando las opciones de configuración. Estas revisiones agregaron dos nuevos #defines a config.h: HAVE_ENCODERS y HAVE_DECODERS.
¿Qué hay de nuevo en la versión 5.2.2:
- Se corrigieron errores en el código específico de QNX.
- Omitió el uso de pipe2 () incluso si está disponible para evitar problemas de portabilidad con algunas antiguas combinaciones de Linux y glibc.
- Traducción alemana actualizada.
- Agregó archivos de proyecto para compilar liblzma estático y compartido (no todo el XZ Utils) con Visual Studio 2013 actualización 2 o posterior.
- Documentado que la descompresión con subprocesos aún no se ha implementado. Una entrada 5.2.0 NEWS que describía el soporte para varios subprocesos decía incorrectamente & quot; descompresión & quot; cuando debería haber dicho & quot; compresión & quot;.
Qué hay de nuevo en la versión 5.2.1:
- Se corrigió una regresión de relación de compresión en modo rápido de LZMA1 y LZMA2. El error está presente en versiones 5.1.4beta y 5.2.0.
- Se corrigió un problema de portabilidad en xz que afectaba al menos a OpenBSD.
- Se corrigió xzdiff para que sea compatible con mktemp de FreeBSD, que difiere de la mayoría de las otras implementaciones de mktemp.
- Se modificó la detección de recuento del núcleo de la CPU para usar cpuset_getaffinity () en FreeBSD.
Qué hay de nuevo en la versión 5.2.0:
- Todas las soluciones desde 5.0.8
- liblzma: corrigió lzma_stream_encoder_mt_memusage () cuando se usó un preset.
- xzdiff: si mktemp no está instalado, mkdir se usará como respaldo para crear un directorio temporal. Aún se recomienda instalar mktemp.
- Traducciones actualizadas en francés, alemán, italiano, polaco y vietnamita.
Qué hay de nuevo en la versión 5.0.7:
- Todas las soluciones desde 5.0.6
- liblzma: Se corrigió el uso de preajustes en la inicialización del codificador con hebras.
- xz --block-list y --block-size ahora se pueden usar juntos en modo de un solo subproceso. Anteriormente, la combinación solo funcionaba en modo de subprocesos múltiples.
- Se agregó soporte para LZMA_IGNORE_CHECK a liblzma y se hizo disponible en xz como --ignore-check.
- optimizaciones de velocidad de liblzma:
- Se ha optimizado la inicialización de un nuevo codificador LZMA1 o LZMA2. (La velocidad de reinicialización de un codificador ya asignado no se ve afectada.) Esto ayuda al comprimir muchos buffers pequeños con lzma_stream_buffer_encode () y otras situaciones similares donde un estado de codificador ya asignado no se reutiliza. Esta aceleración también es visible en xz si uno comprime muchos archivos pequeños de a uno en lugar de ejecutar xz una vez y todos los archivos se muestran como argumentos de línea de comandos.
- Las comparaciones de búfer ahora son mucho más rápidas cuando se permite el acceso no alineado (configurado con --enable-unaligned-access). Esto acelera la codificación de manera significativa. Hay un código específico del arco para 32 bits y 64 bits x86 (32 bits necesita SSE2 para obtener los mejores resultados y no hay detección de CPU en tiempo de ejecución por ahora). Para otros archivos, solo existe un código genérico que probablemente no sea tan óptimo como lo podrían ser las soluciones específicas del arco.
- Se realizaron algunas optimizaciones de velocidad en el código SHA-256. (Tenga en cuenta que el código SHA-256 incorporado no se usa en todos los sistemas operativos).
- liblzma ahora puede compilarse con MSVC 2013 actualización 2 o posterior usando windows / config.h.
- Se agregó la traducción vietnamita.
Qué hay de nuevo en la versión 5.0.6:
- liblzma: Se corrigió el uso de preajustes en la inicialización del codificador con hebras.
- xz --block-list y --block-size ahora se pueden usar juntos en modo de un solo subproceso. Anteriormente, la combinación solo funcionaba en modo de subprocesos múltiples.
- Se agregó soporte para LZMA_IGNORE_CHECK a liblzma y se hizo disponible en xz como --ignore-check.
- optimizaciones de velocidad de liblzma:
- Se ha optimizado la inicialización de un nuevo codificador LZMA1 o LZMA2. (La velocidad de reinicialización de un codificador ya asignado no se ve afectada.) Esto ayuda al comprimir muchos buffers pequeños con lzma_stream_buffer_encode () y otras situaciones similares donde un estado de codificador ya asignado no se reutiliza. Esta aceleración también es visible en xz si uno comprime muchos archivos pequeños de a uno en lugar de ejecutar xz una vez y todos los archivos se muestran como argumentos de línea de comandos.
- Las comparaciones de búferes ahora son mucho más rápidas cuando se permite el acceso no alineado (configurado con --enable-unaligned-access). Esto acelera la codificación de manera significativa. Hay un código específico del arco para 32 bits y 64 bits x86 (32 bits necesita SSE2 para obtener los mejores resultados y no hay detección de CPU en tiempo de ejecución por ahora). Para otros archivos, solo existe un código genérico que probablemente no sea tan óptimo como lo podrían ser las soluciones específicas del arco.
- Se realizaron algunas optimizaciones de velocidad en el código SHA-256. (Tenga en cuenta que el código SHA-256 incorporado no se usa en todos los sistemas operativos).
- liblzma ahora puede compilarse con MSVC 2013 actualización 2 o posterior usando windows / config.h.
- Se agregó la traducción vietnamita.
Comentarios que no se encuentran