7zip: Comment convertir des archives Linux SFX en Windows SFX?

Sep 11 2020

J'ai besoin de compresser certains fichiers dans des archives qui peuvent être ouvertes par tout le monde à l'aide d'un PC Windows sans 7zip installé.
J'ai pensé courir

7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=64m -ms=on -sfx -pXXXXXX "dest-archive.exe" "source-folder/"

mais cela semble créer un binaire SFX Linux (OS de la machine hôte).
Est-il possible de créer des archives Windows SFX à partir de Linux?
Est-il possible de remplacer le stub Linux par celui de Windows dans des archives déjà créées, sans extraire et archiver à nouveau?

Réponses

1 Polizi8 Sep 11 2020 at 01:25

Il ne semble pas être distribué avec le package Arch Linux , mais la copie du fichier "C: \ Program Files \ 7-Zip \ 7z.sfx" sur ma machine Linux a permis la création d'archives Windows SFX avec

7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=64m -ms=on -sfx7z.sfx -pXXXXXX "dest-archive.exe" "source-folder/"

Fonctionnement

cat 7z.sfx old-linux-archive.exe > new-windows-archive.exe

autorisé à ajouter le stub Windows à celui de Linux, sans avoir besoin de recompresser l'archive:

file old-linux-archive.exe
#old-linux-archive.exe: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=e0e81cea3791be68cca1d95da39fbb406b506cd4, for GNU/Linux 3.2.0, stripped

file new-windows-archive.exe
#new-windows-archive.exe: PE32 executable (GUI) Intel 80386, for MS Windows