9 votes

Créer une archive zip auto-extractible sur une machine linux

En raison d'un certain nombre de contraintes que je n'aborderai pas, je dois créer une archive ZIP auto-extractible sur une machine linux. L'archive résultante doit être exécutable sous Windows uniquement. Est-ce possible ? Si oui, quels outils permettraient de le faire ?

Contexte : lorsque l'utilisateur télécharge un paquet d'installation à partir de ma boîte linux, j'ai besoin que ce paquet d'installation soit pré-rempli avec une certaine clé. Je ne connais cette clé qu'au moment de l'exécution ; mon idée était d'écrire un simple fichier .xml avec cette clé, puis de compresser l'installateur .msi avec ce fichier xml dans une archive auto-extractible, et d'envoyer ce fichier au navigateur. Si vous avez d'autres idées sur la façon de procéder, je serais ravi de les entendre aussi.

10voto

Odjn Points 51

Votre réponse se trouve à la page suivante : http://ubuntuforums.org/showthread.php?t=847329 Veuillez noter que je ne m'attribue aucun mérite si ce n'est celui d'avoir utilisé Google et d'avoir trouvé quelque chose qui semble logiquement fonctionner. Je ne garantis pas que ces informations fonctionneront, ni que vous serez en mesure de trouver les matériaux mentionnés en ligne. Je suis simplement un fan de Google. J'espère que cela vous aidera.

Le problème Il y a quelques jours, j'ai dû créer un fichier ZIP compatible Win32 auto-extractible pour un ami. Cela semble facile, non ? Le problème était que que je n'avais pas de machine Windows à proximité et je ne voulais pas installer aucun programme d'archivage sous Wine.

NOTE : Un programme ZIP gratuit tel que IZArc sous Wine peut être utilisé pour créer un fichier ZIP Win32 auto-extractible. Cela ne sera pas couvert par ce guide, désolé.

En faisant des recherches sur Google, j'ai trouvé ce post de forum daté d'août 2003. En le lisant, j'ai découvert que les fichiers ZIP auto-extractibles ne sont rien d'autre que rien d'autre qu'un binaire de dézippage approprié suivi d'un fichier ZIP normal. J'ai utilisé le unzipsfx.exe inclus dans Info-ZIP UnZip 5.52.

Le lien sur ce post a fonctionné quelques il y a quelques jours, j'ai donc mis la main sur le unzipsfx.exe que je cherchais. Aujourd'hui, le 2 juillet 2008, j'ai trouvé le lien mort. Après quelques recherches sur Google, je n'ai pas trouvé un lien fonctionnel nulle part. J'ai lu la licence plusieurs fois et j'ai compris que je peux redistribuer l'original unzipsfx.exe avec une licence incluse.

Veuillez noter que le unzipsfx-552_win32.tar.gz (80 kB) est pas un paquet officiel d'Info-ZIP et il inclut des logiciels protégés par le droit d'auteur Je n'en prends pas le crédit. Plus d'informations dans la licence Info-ZIP qui est également incluse dans l'archive. Le code source des les binaires inclus peut être trouvé ici.

La solution

Première étape, obtenir le paquet unzipsfx.exe et paquet zip : * ouvrir le Terminal (dans Ubuntu appuyez sur alt+f2 et tapez gnome-terminal) * tapez les commandes suivantes Code :

wget http://kolmoskone.homelinux.org/~kaja/kamaa/unzipsfx-552_win32.tar.gz tar zxf unzipsfx-552_win32.tar.gz sudo apt-get install zip

Deuxième étape, création d'un fichier ZIP dans Ubuntu : * ouvrez le gestionnaire de fichiers (nautilus) et sélectionnez les fichiers que vous voulez avoir zippés * Cliquez avec le bouton droit de la souris et sélectionnez Créer une archive (ou similaire). Sélectionnez un emplacement pour le fichier ZIP, en utilisant votre répertoire personnel est le plus simple. Sélectionnez tapez .zip. Voir man zip pour des informations sur la façon de créer un fichier ZIP en commande. ligne de commande.

Troisième étape, création du fichier ZIP auto-extractible * Tapez les commandes suivantes Code :

cat unzipsfx-552_win32/unzipsfx.exe MYZIPFILE.zip > mysfxfile.exe zip -A fichiermysfx.exe

mysfxfile.exe peut désormais être ouvert dans n'importe quelle application système compatible Win32 (y compris par exemple Windows XP/2000/Vista et même Wine sous Linux) ou tout système compatible ZIP. programme d'archivage tel que file-roller dans Ubuntu.

1voto

Alex Weinstein Points 5839

J'ai réussi à le faire fonctionner avec unzipsfx. Il existe une version plus récente, sortie en avril 2009, la version 6.0. La version 5.52 ne prenait pas en charge la fonctionnalité critique dont j'avais besoin, à savoir le lancement d'un fichier d'installation particulier une fois l'extraction terminée.

J'ai donc téléchargé les fichiers sources de la version 6.0. Je les ai ensuite modifiés pour exclure la case "prompt to launch stuff" qui est présente par défaut. J'ai recompilé en utilisant Visual Studio 2008, j'ai essayé les étapes décrites dans le tutoriel ci-dessus, et tout fonctionne comme un charme maintenant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X