Lzma-компрессия
Подавляющее большинство пользователей FOSS-систем хранят свои архивы в форматах tar.gz
или tar.bz2
. В том же виде распространяется и большинство ориентированных на них материалов — от исходных текстов программ до подборок документации. Сжатие методами gzip
или bzip2
до недавнего времени преобладало и при создании дистрибутивных бинарных пакетов. Однако в последнее время появился резон изменить эту традицию. И таким резоном стал метод сжатия по алгоритму LZMA.
Сам по себе метод сжатия LZMA (Lempel-Ziv-Markov chain-Algorithm) существует достаточно давно: он был разработан нашим соотечественником Игорем Павловым с использованием достижений предшественников, разработавших алгоритмы LZ77, LZ78 и LZV -- что, впрочем, могло бы составить предмет отдельной истории, которую когда-нибудь кто-нибудь напишет.
А метод LZMA был задействован его автором в собственной же разработке --
Впрочем, последний случай нас не интересует. А вот офоциальный порт LZMA Utils и её встраивание в тот же tar делает этот метод компрессии столь же простым и обыденным, как gzip или bzip2. И ныне эта возможность штатно присутствует во всех дистрибутивах Linux, которые ещё не покрыты паутиной времени, и во всех BSD-системах.
Так что теперь для применения LZMA-компрессии при создании tar-архива достаточно указать соответствующую опцию:
$ tar --create --lzma --file filename.tar.lzma path2/arch_dir
Или, в более употребимой простыми людьми краткой форме:
$ tar cJf filename.tar.lzma path2/arch_dir
где опция J и представляет собой алиас для полной формы -lzma
. Если присваивать архивному файлу суффикс по правилам утилиты tar, опцию J можно заменить на a (что эквивалентно полной форме –auto-compress
), обеспечивающей определение типа компрессии по “расширению” *.lzma
.
Распаковка lzma
-компрессированного архива выполняется в обратном порядке:
$ tar xJf filename.tar.lzma
или
$ tar xaf filename.tar.lzma
Более того, скажу по секрету: если архив именован по правилам, то можно опустить даже опцию –auto-compress — она и так будет задействована по умолчанию.
Метод LZMA вследствие эффективности копмрессии быстро нашёл себе применение в пакетировании дистрибутивных пакетов, о чём мы поговорим в соответствующем месте и в соответствующее время.
- Архивация и компрессия
- Утилита cpio
- Утилита tar
- Утилита gzip
- Утилита bzip2
- Lzma-компрессия
Содержание
Теги: lzma