🔥

7zipの互換性

2023/10/26に公開

7-zipは複数の圧縮アルゴリズムをサポートしたパスワード付き暗号化アーカイブも作成可能な圧縮ファイルソフトとして有名です。

その7-zipにも本家と派生版があります。
それによって互換性が必ずしもなかったりします。
もちろんバージョンの違いによる機能の違いがある場合もあるかとは思います。
zipも古いバージョンは4G bytes制限があったりして、バージョンによる互換性の違いがあるように。

Linux向けバイナリ

phoepsilonix/p7zip
公式の23.01相当プラス拡張コーデックを追加したLinux向けバイナリを用意してみました。
このバージョンは、zip形式の分割ファイル作成は、エラーがでます。(公式にバグ報告されています。)

Arch向け AURパッケージ

yay -S p7zip-full-bin

説明

7zzコマンドのみです。zig ccでビルドしました。
Linuxの64bits版,32bits版はスタティックリンクなので、どのLinuxでも動作してくれることでしょう。
なお32bits版は、Zstdで一部テストを通過しなかったので、Zstdは無効にしておきました。

cielavenir/p7zip[1]をベースにしています。
ここをベースに、23.01ソースがビルドできるように、泥臭く修正してみました。

テスト

jinfeihan57/p7zip_test_utils: p7zip test suite
こちらのテストファイルを用いてチェックしています。

雑談

7-zipは、派生版で機能的に拡張されたものも存在するようです。
それらと本家に合わせたものが混在しているのかな。

p7zipはいわゆる移植版で、Linux系でもインストールが容易ですが、Arch系とUbuntu系では、ベースとなるソースのバージョンが異なるみたいで、互換性がない場合があるようです。
Archはp7zip-project、Ubuntuはp7zip @ sourceforgeがパッケージの元になっているようです。snap版はp7zipがベースみたいです。

派生版としては、p7zip-zstdといったものもあります。こちらは比較的バージョンが新しめですね。
同じ系統でLinux向けバイナリが、cielavenir/p7zip[1:1]、こちらにありました。
圧縮アルゴリズムにbrotli,zstdなどを選べるバージョンです。ただRar4形式のテストで、セグ落ちしました。

ただ本家と比べたら古いですね。同じ7-zip同士なのに、圧縮を解除できない場合には、バージョンの違いや派生版による機能の違いがあることを考慮する必要がありますね。圧縮アルゴリズムが本家が対応していないものもあるので、その点が注意が必要です。拡張用のファイルが必要になるのでしょう。

7-zipの良さは、WindowでもMacでもLinuxでも動作する互換性と言いたいところですが、その場合には、本家にあわせた機能を利用する場合に限るということになりそうです。圧縮形式をこだわったりしている場合には、同じ拡張子でも、圧縮解除できない場合があるでしょうが、標準的な機能を使っている限りには、かなり高い互換性があるとは思います。

ただ他のOSの人とのやり取りを考えると、最新のバージョン(今なら23.01)を利用するほうが望ましいかもしれません。
ArchLinuxならAURにパッケージがあります。[2][3]
本家が配布しているLinux向けバイナリは、Ubuntuでも使えることでしょう。[4]

Arch系で7-zip.orgで配布されているLinux向けバイナリをパッケージしたものを利用する場合

yay -S 7-zip-bin

自分の環境でソースからビルドする場合

yay -S 7-zip-full

7-zipは、互換性も高めで、ファイルサイズが大きくても大丈夫で、暗号化もできて、パスワードもつけられる優秀なアーカイバなので、ぜひ活用してみてください。

脚注
  1. cielavenir/p7zip ↩︎ ↩︎

  2. https://aur.archlinux.org/packages/7-zip-bin ↩︎

  3. https://aur.archlinux.org/packages/7-zip-full ↩︎

  4. https://www.7-zip.org/download.html ↩︎

Discussion