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 →