LINUX.ORG.RU

7-Zip 24.05

 , , , ,

7-Zip 24.05

1

2

После пяти месяцев разработки состоялся выпуск 24.05 библиотеки и консольной утилиты 7-Zip, написанных на языках C и C++ и предназначенных для работы с архивами в формате 7z и многих других.

Список изменений:

  • поддержка распаковки архивов в формате ZSTD (собственная реализация, ~115 KB);
  • поддержка распаковки архивов ZIP, SquashFS и RPM, использующих сжатие ZSTD;
  • поддержка быстрого алгоритма хэширования XXH64;
  • поддержка распаковки архивов RAR созданных со словарём более 4 GB (RAR 7.00);
  • поддержка распаковки архивов DMG, использующих сжатие XZ;
  • поддержка распаковки NTFS образов с размеров кластера более 64 KB;
  • поддержка распаковки MBR и GDP образов с размеров сектора более 4 KB;
  • увеличение производительности распаковки архивов rar, cab, wim, zip и gz;
  • увеличение производительности вычисления хэш-сумм CRC-32, CRC-64 и Blake2sp;
  • исправлена ошибка создания многотомных архивов в некоторых случаях;
  • добавлен новый фильтр фильтр RISCV;
  • добавлен ключ -smemx{size}g для установки допустимого лимита использования памяти при распаковке архивов RAR;
  • добавлен ключ -slmu для отображения временных меток в формате UTC вместо локальных;
  • добавлен ключ -myv={MMNN} для установки версии совместимости декодера при создании 7z-архива;
  • добавлен ключ -myfa={FilterID} для использования указанного метода фильтрации при создании 7z-архива;
  • добавлен ключ -myfd={FilterID} для запрета использования указанного метода фильтрации при создании 7z-архива;
  • другие изменения и исправления ошибок.

>>> Подробности

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)

Ответ на: комментарий от Camel

А как это делать? А подменить произвольный файл?

Очевидно, tar -x FILE и tar -r FILE

Только, естественно, сложность у этих операций O(n), а не O(1).

intelfx ★★★★★
()
Ответ на: комментарий от Werenter

https://github.com/p7zip-project/p7zip

The original intention of p7zip is to make 7z run on unix-like systems. The latest 7zip already supports unix systems, so the new version of this project is not just a derivative of p7zip. It is also a derivative of 7zip. To distinguish it from the 7zip project, I decided to use p7zip-zstd to name the new version (since this project is also a derivative of the 7-Zip-zstd project). Thanks to Igor Pavlov, author of 7zip, and Tino Reichardt, author of 7-Zip-zstd. and all 7zip community contributors and users.

7zz with extension method
This is the place for 7zz (Well known as 7zip-22.00 Linux version) to include major modern codecs such as Brotli, Fast LZMA2, LZ4, LZ5, Lizard and Zstd. In order to support multithreading for those addional codecs, this project depends on the Multithreading Library.

dataman ★★★★★
() автор топика
Ответ на: комментарий от Vsevolod-linuxoid

Можно, но для этого придётся подождать, пока компрессор зазря разожмёт весь архив до искомого файла.

legolegs ★★★★★
()
Ответ на: комментарий от Werenter

Оригинал и форк. С практической точки зрения мало чем. Из того, что удалось заметить (благодаря этому треду), p7z и до этой версии распаковывал squashfs со сжатием zstd, а оригинальный 7z только сейчас научился.

CrX ★★★
()
Ответ на: комментарий от Camel

Ну а чем 7z не угодил для обозначенных целей? «Архипрессор». Если не solid, то файлы выборочно доставать можно. Владельца и права сохраняет.

А ещё есть SquashFS, который не совсем архив, а ФС, но по сути его можно использовать как что-то вроде архива, только с кучей дополнительных плюшек. Единственное, не получится изменять имеющиеся в нём файлы быстро и без распаковки, только добавлять можно.

CrX ★★★
()
Последнее исправление: CrX (всего исправлений: 1)
Ответ на: комментарий от intelfx

Месяц назад использовал его для архивации 4ТБ мелких файлов. Никто не задохнулся, все живы. ЧЯДНТ?

Возможно, не увеличиваешь словарь сверх меры. Если не путаю, свободной памяти нужно в 8-12 раз больше словаря. Иначе начинает свопиться, и становится плохо.

Старые 32-разрядные версии позволяли задавать словарь 1 гигабайт, и падали, когда пытались адресовать 12 гигабайт в 32-битной ОС :)

question4 ★★★★★
()
Ответ на: комментарий от pfg

в каких условиях 7зип в два раза лучше жмёт чем рар ??

7-zip по умолчанию делает solid, Rar — нет :)

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

У rar-а есть полезная фича — сортировка сжимаемых файлов по расширению, что в комбинации с solid даёт заметный прирост. Когда я пытался это повторить с 7z, ничего не вышло.

question4 ★★★★★
()
Ответ на: комментарий от Aceler

Блин, точно. Я даже не подумал что этот косяк может быть не отключен...

kirill_rrr ★★★★★
()
Ответ на: комментарий от Camel

Только вот почему то никто не хочет прикручивать юниксовые права к фичастым архиваторам-компрессорам, причём мне кажется это не из за великой сложности задачи, а потому что не сильно то и нужно и вообще, есть squashfs. Кстати, виндовые атрибуты прав запуска и прочего в 7z и rar тоже не поддерживаются.

А что у вас за проблема с процессорами?

kirill_rrr ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Не знаю, не пользуюсь.

Теоретически, компрессор жмёт блоками может быть достаточно разжимать только с начала блока (а оглавление читать в началае архива).

В tar отдельного оглавления архива вообще нет, если чо.

legolegs ★★★★★
()
Ответ на: комментарий от question4

Так как современные процессоры часто 8 и более ядерные, то это не умещается в память с не самыми большими словарями. Поэтому можно поставить 2 потока или даже 3 потока, памяти при это потребляет как 2. В интерфейсе показывает рекомендуемый размер для упаковки и распаковки. Ещё с недавних версий можно задавать лимит памяти в том числе в процентах -mmemuse={N}g / -mmemuse=p{N}.

fuggy
()
Ответ на: комментарий от token_polyak

У RAR тома - это по сути полноценные архивы, которые можно открыть и извлечь нужный файл, если он есть в томе целиком, или если он есть в доступных томах. Все тома архива для этого не нужны.

В 7z многотомный архив - это просто разрезанный на куски большой архив. Их можно просто cat-ом сшить в файл, и он будет работать.

Radjah ★★★★★
()
Ответ на: комментарий от Werenter

Ага, человек находит работу, которая отнимает у него всё свободное время, и «пропадает», возвращаясь на LOR всё реже… Есть такое.

lucentcode ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

Если не используется непрерывное архивирование — естественно, не так.

Но даже если архив непрерывный, оглавление можно получить сразу, не читая и не распаковывая всё содержимое архива.

Ну и есть разные степени непрерывности, например, можно сделать размер непрерывного блока в 100M, и тогда в любом случае придётся распаковать максимум 200M лишних данных.

В этом вся суть.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от question4

LZMA немного медленнее сжимает, требует больше памяти (что давно перестало быть проблемой)

Как бы да, но нет. В многопотоке он требует прям сильно больше памяти, чем RAR.

RAR как-то хитро умудряется влезать в 6-8 ГБ при установке словаря в 1-2 ГБ практически на любых объёмах данных для упаковки. 7zip с такими настройками выедает 35-40 ГБ на объёма от 2-3 гигов примерно.

Возможно, что дело в количестве потоков. У того же WinRAR в GUI настройки количества потоков нет, у 7z я выставляю их по рекомендации из GUI. Если не пытаться сжать весь интернет, то 64 гигов ему хватает. :)

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

У того же WinRAR в GUI настройки количества потоков нет

Параметры \ первая вкладка Общие \ первый же блок [Система] в левом верхнем углу

TEX ★★★
()
Ответ на: комментарий от Radjah

У того же WinRAR в GUI настройки количества потоков нет, у 7z я выставляю их

Ловите виндузятника! :)

dataman ★★★★★
() автор топика
Ответ на: комментарий от TEX

Едрить куда его запихнули, а я в окне с параметрами архивации искал при создании архива, как у 7z сделано.

Radjah ★★★★★
()
Ответ на: комментарий от kirill_rrr

А что у меня за проблема с процессорами?

Camel ★★★★★
()

Прочитал про MFilter plugin for 7-Zip

https://encode.su/threads/15-7-Zip/page17

https://www.tc4shell.com/en/7zip/mfilter/

MFilter is a filter plugin for the popular 7-Zip archiver designed to deliver higher compression ratios to certain multimedia file types by means of automatic pre-processing. The filter itself does not provide compression, and requires co-use of a compressing codec.

Specifically, here is what MFilter does over the files being compressed:

The filter recompresses jpeg files using Brunsli or Lepton methods. This also applies to embedded thumbnails and jpeg files attached to or embedded into other files, like pdf.
greenman ★★★★★
()
Ответ на: комментарий от dataman

Протупил :(

Оно ещё и платное

Интересно, этот плагин только для сжатия нужен? Т.е. без него такие 7z файлы разжать файлы можно?

(взял кто-то свободный 7z, свободный Lepton и делает деньги)

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 3)
Ответ на: комментарий от greenman

кто-то

Aniskin же! Но Fantomas подошло бы больше.

dataman ★★★★★
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.