Открыть сервис

p7zip

p7zip — это свободная кроссплатформенная программа для сжатия и архивации данных, являющаяся портом (переносом) популярного архиватора 7-Zip для операционных систем семейства Unix и macOS. Как и оригинальный 7-Zip, p7zip распространяется по лицензии GNU LGPL и использует собственный высокоэффективный формат сжатия 7z, а также поддерживает множество других распространённых форматов.

История

Разработка p7zip началась в 2004 году как попытка перенести функциональность 7-Zip, созданного Игорем Павловым для Windows, на платформы Linux и macOS. Основной целью было обеспечить пользователей Unix-подобных систем возможностью работать с форматом 7z, который обеспечивает более высокую степень сжатия по сравнению с традиционными форматами, такими как ZIP или Gzip.

Первая стабильная версия p7zip была выпущена в 2005 году. В дальнейшем программа развивалась параллельно с 7-Zip, поддерживая новые версии алгоритмов сжатия и форматов. В 2016 году разработка p7zip была официально прекращена, и последней стабильной версией стала 16.02. Однако, несмотря на прекращение активной разработки, программа продолжает использоваться в дистрибутивах Linux и macOS, а также в качестве основы для более современных форков, таких как p7zip-full и 7-Zip для Linux, разработанного той же командой, что и оригинальный 7-Zip.

Ключевые особенности

p7zip обладает рядом характеристик, которые делают его востребованным в среде Unix-подобных операционных систем:

  • Поддержка формата 7z: Основной формат архивации, отличающийся высокой степенью сжатия благодаря использованию алгоритмов LZMA (Lempel-Ziv-Markov chain algorithm) и LZMA2.
  • Многопоточность: Программа способна использовать несколько ядер процессора для ускорения операций сжатия и распаковки.
  • Шифрование: Поддерживается шифрование архивов по алгоритму AES-256, что обеспечивает высокий уровень защиты данных.
  • Кроссплатформенность: Работает на большинстве дистрибутивов Linux, в macOS, FreeBSD и других Unix-подобных системах.
  • Интеграция с командной строкой: p7zip предоставляет мощный интерфейс командной строки, что позволяет использовать его в скриптах и автоматизированных процессах.

Поддерживаемые форматы

p7zip поддерживает большое количество форматов сжатия и архивации, разделяемых на режимы работы:

  • Архивация и распаковка: 7z, XZ, BZIP2, GZIP, TAR, ZIP, WIM (частично).
  • Только распаковка: AR, ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, HFS, ISO, LZH, LZMA, MBR, MSI, NSIS, NTFS, RAR, RPM, SquashFS, UDF, VHD, XAR, Z (формат Unix compress).

Устройство и состав

В состав пакета p7zip входят несколько исполняемых файлов и библиотек:

  • 7za: Автономный исполняемый файл, который поддерживает работу с форматами 7z, XZ, BZIP2, GZIP, TAR, ZIP и WIM. Он не требует дополнительных библиотек и является наиболее универсальным.
  • 7zr: Упрощённая версия 7za, поддерживающая только формат 7z. Используется для минимальных установок.
  • 7z: Полнофункциональный исполняемый файл, который использует внешние библиотеки (плагины) для поддержки всех форматов. Он обеспечивает максимальную совместимость, но требует установки всех компонентов.
  • Библиотеки: Включают в себя динамические библиотеки (lib7z.so, lib7z.so.16 и др.), которые могут использоваться сторонними приложениями для интеграции функций архивации.

Применение

p7zip широко используется в различных сценариях:

  • Системное администрирование: Автоматизация резервного копирования, архивация логов, создание дистрибутивов программного обеспечения.
  • Разработка ПО: Включение в скрипты сборки (Makefile, CI/CD) для упаковки и распаковки артефактов.
  • Пользовательское использование: Работа с архивами в терминале, особенно в средах без графического интерфейса (например, на серверах).
  • Встраиваемые системы: Благодаря малому размеру и отсутствию зависимостей, p7zip может использоваться в системах с ограниченными ресурсами.

Примеры использования

Создание архива

``bash 7za a -t7z archive.7z /path/to/directory ``

Эта команда создаёт архив archive.7z из содержимого указанной директории.

Распаковка архива

``bash 7z x archive.7z -o/path/to/output ``

Команда извлекает содержимое архива archive.7z в указанную выходную директорию.

Сжатие с максимальной степенью

``bash 7za a -t7z -mx=9 archive.7z file.txt ``

Параметр -mx=9 устанавливает максимальный уровень сжатия.

Сравнение с 7-Zip

Основное отличие p7zip от 7-Zip заключается в платформе и интерфейсе. 7-Zip — это программа для Windows, имеющая графический интерфейс, интеграцию с проводником и поддержку множества форматов. p7zip — это консольный порт для Unix-подобных систем, лишённый графической оболочки, но сохраняющий все ключевые алгоритмы сжатия и форматы. В современных дистрибутивах Linux p7zip часто заменяется на более новую версию 7-Zip, которая также поддерживает командную строку и графический интерфейс (например, через пакет 7zip в репозиториях).

Интересные факты

  • Несмотря на прекращение разработки, p7zip остаётся одним из самых популярных архиваторов в среде Linux благодаря своей стабильности и производительности.
  • Алгоритм LZMA, используемый в p7zip, считается одним из лучших по соотношению степени сжатия и скорости работы.
  • p7zip входит в состав многих Live-дистрибутивов Linux, что позволяет восстанавливать данные из архивов без установки на жёсткий диск.

Источники

  • Официальная документация проекта p7zip (sourceforge.net/projects/p7zip).
  • Репозиторий исходного кода p7zip на SourceForge.
  • Статья «7-Zip» в Википедии (русскоязычная версия).
  • Руководство пользователя 7-Zip (7-zip.org).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →