Lzip

lzip logo [ English | Español | Français | Italiano | Русский ]

Введение

Lzip - это файловый компрессор, т.е. программа для сжатия данных без потерь с пользовательским интерфейсом, аналогичным gzip или bzip2. Lzip использует упрощенную форму алгоритма LZMA (англ. Lempel-Ziv-Markov chain-Algorithm) в потоковом виде и обеспечивает трехфакторную проверку целостности проверку целостности для обеспечения максимальной совместимости и оптимизации безопасности. Lzip может сжимать файлы примерно так же быстро, как gzip (lzip -0), или сжимать большинство файлов сильнее, чем bzip2 (lzip -9). Скорость декомпрессии промежуточна между gzip и bzip2. С точки зрения восстановления данных Lzip лучше, чем gzip и bzip2. Lzip был разработан, написан и протестирован с особой тщательностью, чтобы заменить gzip и bzip2 в качестве стандартного сжатого формата общего назначения для Unix-подобных систем.

Для сжатия/распаковки больших файлов на многопроцессорных машинах plzip может быть значительно быстрее, чем lzip, за счет несколько меньшей степени сжатия.

Для создания и работы со сжатыми tar-архивами tarlz может быть более эффективным, чем использование tar и plzip, поскольку tarlz способен сохранять выравнивание между членами tar и членами lzip.

Формат файлов lzip предназначен для совместного использования данных и долгосрочного архивирования, при этом учитывается как целостность данных, так и доступность декодера:

Приятной особенностью формата lzip является то, что поврежденный байт тем легче восстановить, чем ближе он находится к началу файла. Поэтому с помощью lziprecover потеря всего архива из-за поврежденного байта в самом начале может остаться в прошлом.

Lzip использует те же четко определенные значения статуса завершения, что и bzip2, что делает его более безопасным, чем компрессоры, возвращающие неоднозначные значения предупреждений (например, gzip), когда он используется в качестве back end для других программ, таких как tar или zutils.

Вводные ссылки

Benchmark - Некоторые тесты, показывающие способность lzip заменить gzip и bzip2 в качестве компрессора общего назначения для Unix-подобных систем с точки зрения производительности.

Обеспечение качества - Проектирование, разработка и тестирование lzip.

Безопасность формата lzip - В этой статье измеряется безопасность проверки целостности lzip и объясняется, почему lzip достигает высокой точности в обнаружении ошибок.

Сжатый формат Lzip и тип носителя application/lzip - Internet-Draft на сайте IETF.

Формат lzip (слайды) - Доклад, сделанный на GNU Hackers Meeting 2019.

Формат Xz не подходит для долгосрочного архивирования - В этой статье описаны причины, по которым вам следует перейти на lzip, если вы используете xz для чего-либо, кроме сжатия недолговечных исполняемых файлов.

Другие возможности

Lzip автоматически использует для каждого файла наибольший размер словаря, который не превышает ни размер файла, ни заданное ограничение. Следует помнить, что выбор ограничения на размер словаря влияет на потребление памяти при распаковке.

При сжатии lzip заменяет каждый файл, указанный в командной строке, на свою сжатую версию с именем "original_name.lz".

(Де)сжатие файла подобно его копированию или перемещению; поэтому lzip сохраняет даты доступа и модификации, разрешения и, по возможности, права собственности на файл, как это делает 'cp -p'. (Если идентификатор пользователя или группы не может быть продублирован, то биты разрешения файла S_ISUID и S_ISGID очищаются).

Lzip может читать из некоторых типов нерегулярных файлов, если указана либо опция '-c', либо опция '-o'.

Если имена файлов не указаны, lzip сжимает (или распаковывает) файлы со стандартного ввода на стандартный вывод. Lzip отказывается читать сжатые данные из терминала или записывать сжатые данные в терминал, так как это будет совершенно непонятно и может привести терминал в ненормальное состояние.

Lzip корректно распакует файл, представляющий собой конкатенацию двух или более сжатых файлов. В результате будет получена конкатенация соответствующих распакованных файлов. Также поддерживается тестирование целостности сжатых файлов.

Lzip может создавать многочленные файлы, а lziprecover - безопасно восстанавливать неповрежденные члены в случае повреждения файла. Lzip также может разделять сжатый вывод на тома заданного размера, даже при чтении со стандартного ввода. Это позволяет напрямую создавать многотомные сжатые tar-архивы.

Lzip способен сжимать и расжимать потоки неограниченного размера, автоматически создавая на выходе многочлены. Созданные таким образом члены имеют большой размер, около 2 PiB каждый.

Несмотря на свое название (Lempel-Ziv-Markov chain-Algorithm), LZMA не является конкретным алгоритмом, это скорее "любой алгоритм, использующий схему кодирования LZMA". Например, опция '-0' программы lzip использует эту схему практически в самом простом виде: выдает самое длинное совпадение, которое может найти, или литеральный байт, если не может найти совпадения. И наоборот, можно разработать гораздо более совершенный способ поиска кодирующих последовательностей минимального размера, чем тот, который сейчас использует lzip, а полученную последовательность также закодировать с помощью схемы кодирования LZMA.

В настоящее время в Lzip реализовано два варианта алгоритма LZMA: быстрый (используется опцией '-0') и нормальный (используется всеми остальными уровнями сжатия).

Высокая степень сжатия в LZMA достигается за счет сочетания двух основных, хорошо зарекомендовавших себя идей сжатия: скользящих словарей (LZ77) и марковских моделей (то, что используется в каждом алгоритме сжатия, использующем в качестве последнего этапа кодер диапазона или аналогичный кодер энтропии порядка 0) с разделением контекстов в зависимости от того, для чего используются биты.

Идеи, воплощенные в lzip, принадлежат (по крайней мере) следующим людям: Abraham Lempel и Jacob Ziv (за алгоритм LZ), Андрей Марков (за определение цепей Маркова), G.N.N. Martin (за определение кодирования диапазонов), Игорь Павлов (за объединение всего вышеперечисленного в LZMA), Julian Seward (за CLI bzip2).

Смежные проекты

Plzip - Многопоточный компрессор, использующий формат файлов lzip.

Tarlz - Архиватор с многопоточным (де)сжатием lzip.

Lzlib - Библиотека сжатия для формата файлов lzip, написанная на языке C.

Lziprecover - Инструмент восстановления данных и декомпрессор для формата lzip.

Zutils - Замена для zcat, zdiff, zgrep и т.д., понимающая форматы lzip, bzip2, и gzip.

Lunzip - Декомпрессор для lzip-файлов, написанный на языке C.

Clzip - реализация lzip на языке C для систем, не имеющих компилятора C++.

Pdlzip - Ограниченная, "общественно-доступная" реализация на языке Си компрессора данных lzip, предназначенная для тех, кто не может распространять свободное программное обеспечение под лицензией GPL. Pdlzip также способен распаковывать устаревшие lzma-alone (.lzma) файлы.

Lzd - Образовательный декомпрессор для формата lzip.

Xlunzip - Тестовый инструмент для linux-модуля lzip_decompress.

Документация

Руководство доступно в системе info в операционных системах GNU. Используйте info для доступа к высшему уровню info. Используйте info lzip - чтобы сразу смотреть секцию о lzip.

Онлайновое руководство по lzip можно найти по адресу manual/lzip_manual.html.

Скачать

Последнюю выпущенную версию lzip можно найти по адресу http://download.savannah.gnu.org/releases/lzip/. Вы также можете подписаться на рассылку lzip-bug и получать сообщения по электронной почте при выходе новой версии.

Порт lzip для Windows32 можно загрузить по ссылке Savannah, указанной выше. Другие порты lzip для Windows можно найти в разделе Ссылки ниже. Порт plzip для Windows (32 и 64 бита) можно загрузить со страницы plzip, расположенной выше.

Скомпилировать и, по желанию, установить lzip можно, выполнив следующие команды:

tar -xf lzip[version].tar.gz
cd lzip[version] && ./configure && make check

затем (от имени root) введите:

make install

После установки lzip файлы из архива "foo.tar.lz" могут быть извлечены с помощью команд "tar -xf foo.tar.lz" или "lzip -cd foo.tar.lz | tar -xf -".

Как получить помощь

Для общего обсуждения ошибок (багов) в lzip наиболее подходящим форумом является список рассылки lzip-bug@nongnu.org. Пожалуйста, присылайте сообщения в виде обычного текста. Не присылайте сообщения в кодировке HTML, в кодировке base64 или в нескольких форматах. Пожалуйста, указывайте в описательной строке темы слово "lzip".

Архив списка рассылки сообщений об ошибках доступен по адресу http://lists.gnu.org/mailman/listinfo/lzip-bug.

Как помочь

Чтобы связаться с автором, сообщить об ошибке (баге) или внести предложения по исправлению или улучшению, отправьте письмо по адресу lzip-bug@nongnu.org. Пожалуйста, отправляйте сообщения в виде обычного текста. При размещении исправлений они должны быть представлены в унифицированном формате diff по отношению к последней версии. Они должны содержать текстовое описание.

Вы также можете помочь lzip, пожертвовав деньги через PayPal или дебетовую/кредитную карту.

См. также страницу проекта lzip на сайте Savannah.

Ссылки

7-Zip ZStandard Edition - Версия программы 7-Zip со встроенной поддержкой распаковки lzip.

Atool, Patool - Менеджеры архивов командной строки, понимающие файлы lzip.

GNU Automake - Генератор Make-файлов, способный создавать tar-шары с lzip-сжатием.

Dragora GNU/Linux - Дистрибутив GNU/Linux, использующий lzip в своей системе пакетов.

File Roller - Менеджер архивов для GNOME, понимающий файлы lzip.

Lesspipe.sh - Просмотр содержимого lzip-файлов с помощью пейджера less.

Libarchive - Библиотека мультиформатных архивов и сжатия с поддержкой lzip.

Littleutils - Преобразование файлов в формат lzip.

Man-db - Реализация команды Unix man, способная читать lzipped-страницы.

Midnight Commander - Визуальный файловый менеджер, понимающий lzip-файлы.

RPM - Менеджер пакетов RPM, использующий lzip для сжатия пакетов.

GNU Tar - Автоматическое создание и распаковка tar-архивов, сжатых lzip.

GNU Texinfo - Система документации GNU понимает руководства, сжатые с помощью lzip.

Z - Простой, безопасный и удобный интерфейс для lzip, bzip2, и gzip.

Порты

Загрузите lzip для AIX, ALT Linux, Amiga (Aminet), Arch Linux, DOS, Debian, Fedora, FreeBSD, Gentoo, HP-UX, Mac (fink), NetBSD, NixOS, Slackware, Solaris (OpenCSW), Windows (Cygwin), Windows (ezwinports).

Привязки (интерфейсы к языкам, отличным от C/C++)

Common Lisp, Haskell.

Лицензирование

Lzip является свободным программным обеспечением: вы можете распространять и/или модифицировать его на условиях Стандартной общественной лицензии GNU, опубликованной Фондом свободного программного обеспечения, либо версии 2 этой лицензии, либо (по вашему выбору) любой более поздней версии.

Valid HTML 4.01 Strict


Переведено с помощью www.DeepL.com/Translator (бесплатная версия)

Copyright (Авторские права) © 2024 Antonio Diaz Diaz
Lzip logo Copyright © 2013 Sonia Diaz Pacheco

Вы можете свободно копировать, изменять и распространять всю или часть этой статьи без ограничений.

Обновлено: 2024-03-15

На этой странице не используется javascript.