Archive SFX / Shell

eZula -  
eZula Messages postés 3509 Statut Contributeur -
Bonjour,

et rebonjour,

est-ce que vous connaissez une méthode qui permette de créer une archive autoextractible (SFX) intégrable dans un script shell. 7-zip a l'air de le faire http://www.edenwaith.com/support/guitar/help/man/7za.html mais mes essais n'aboutissent pas

Merci pour une piste ;)
Configuration: Linux Suse
Firefox 2.0.0.14

9 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    même en suivant l'exemple ?

    EXAMPLE 2
    7za a -sfx archive.exe dir1 add all files from directory "dir1" to SFX
    archive archive.exe (Remark : SFX archive MUST end with ".exe")
    0
  2. eZula
     
    en fait, on dirait qu'au double-clic sur le fichier exe (sous windows évidemment), l'archive n'est pas correctement extraite
    Pour info il s'agit d'un dossier "Dossier" contenant un batch "batch.bat" qui se servira de divers outils contenus dans ce même dossier pour faire une action lambda.

    J'ai mis ceci dans le fichier "config.txt" :

    ---------------
    ;!@Install@!UTF-8!
    RunProgram="Dossier\batch.bat"
    ;!@InstallEnd@!
    ---------------

    qui se trouve dans un dossier contenant Dossier.7z, 7zS.sfx

    ensuite je passe la commande

    ---------------
    cat 7zS.sfx config.txt Dossier.7z > Dossier.exe
    ---------------

    le fichier Dossier.exe est bien obtenu. Mais en essayant de le lancer sous windows, il y a un message caractéristique qui prouve que l'archive n'est pas bien décompressée, le batch ne trouve pas certains éléments qui devraient se situer dans Dossier.

    Où pourrait se situer l'erreur ?
    0
    1. Deleplace
       
      Je suis confronté au même problème

      mais j'en connais la cause

      ton Bat est bien exécuté

      mais il l'est dans le dossier "Racine" en fait %TMP%\7z???.tmp et non %TMP%\7z???.tmp\Dossier où il se trouve

      j'était en train de chercher si l'on pouvais introduire quelque chose comme RunPath="Dossier"

      dans config.txt

      une solution rapide pour toi

      tu place un bat à la racine
      0
      1. eZula Messages postés 3509 Statut Contributeur 392 > Deleplace
         
        tu place un bat à la racine


        càd ? ça fait longtemps que j'ai plus réessayé mais la solution m'intéresse toujours :)
        0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    7z.exe se trouve dans le dossier ?
    0
  4. eZula
     
    hé bien je viens de reessayer, il doit y avoir une embrouille qquepart.

    Le dossier Dossier contient donc le batch ainsi que l'exécutable 7za.exe, est-ce le bon, je l'ai pêché ici http://www.7-zip.org/fr/download.html (.zip, 32-bit, 341 Ko, "7-Zip en ligne de commande")

    Ensuite, après avoir compressé en .7z Dossier, et créé ce fichier config.txt :

    -----------------
    ;!@Install@!UTF-8!
    RunProgram="Dossier\batch.bat"
    ;!@InstallEnd@!
    -----------------

    j'ai lancé

    -----------------
    cat 7zS.sfx config.txt Dossier.7z > Dossier.exe
    -----------------

    et en double-cliquant sur le Dossier.exe sous windows, message d'erreur classique (ne trouve pas les fichiers...)
    Est-ce que ça ne viendrait pas de config.txt ? j'ai vraiment un doute sur son contenu. Ou alors une mauvaise version de 7z dans Dossier ?

    Merci pour ton aide
    0
    1. eZula
       
      Personne n'aurait une petite idée ou une piste supplémentaire ?

      je suis sur qu'on est pas loin du but
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    A tout hasard, change dans ton "config.txt" l'antislash par un slash...
    RunProgram="Dossier\batch.bat"  => RunProgram="Dossier/batch.bat" 
    ;-))
    0
    1. eZula
       
      ok, j'essayerais en rentrant du boulot ce soir.

      Par contre, l'exécution du batch semble se dérouler, le seul truc c'est que visiblement le contenu du dossier n'est pas décompressé puisque le batch indique ne pas trouver les fichiers qu'il utilise. Est-ce qu'il ne faudraity pas introduire une commande de décompression avec 7za.exe (dans config.txt par exemple?), ou alors c'est censé se faire automatiquement ?
      0
  7. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Une piste à explorer extraite de la doc de l'archive :
    There are two ways to run a installation program: RunProgram and ExecuteFile. Use RunProgram, if you want to run a program from the .7z archive. Use ExecuteFile, if you want to open a document from the .7z archive, or if you want to execute a command from Windows.
    
    If you use RunProgram, and if you specify empty directory prefix: Directory="", the system searches for the executable file in the following sequence:
    
       1. The directory from which the application (installer) loaded.
       2. The temporary folder, where files were extracted.
       3. The Windows system directory. 
    ;-))
    0
  8. eZula
     
    Salut,

    de retour, avec malheureusement des résultats négatifs... le / à la place du \ ne change rien
    Je pensais éventuellement à mettre le fichier 7za.exe dans un dossier, de sorte à ce qu'il extraie dossier.zip directement mais même cela ne semble pas marcher

    Est-ce que vous auriez d'autres idées ? est-ce que 7za.exe est vraiment l'outil approprié selon vous ?
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Et le 'Directory=""', t'as essayé ?
      0
  9. eZula
     
    Salut,

    j'ai essayé avec ce config.txt :

    _____________
    ;!@Install@!UTF-8!
    Title="Extraction GenProc"
    RunProgram="GenProc\ GenProc.bat"
    'Directory=""'
    ;!@InstallEnd@!
    _____________

    Le résultat est une popup déprimante "config failed" au douvle-clic sur le fichier exe...
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Les quotes simples sont en trop... dans mon message précédent elle étaient là que pour encadrer l'expression ;-))
      0
  10. eZula
     
    ok, j'avais même pas percuté... arf

    mais le problème est toujours le même... le batch s'exécute mais les autres fichiers/dossiers ne sont pas décompressés donc il ne va pas plus loin
    j'ai l'impression qu'il manque quelque chose dans le processus :

    Dossier contient :
    |-> batch
    |-> 7za.exe
    |-> sous-dossier compressé + autres fichiers compressés

    Le batch vérifie d'abord la présence de "sous-dossier + autres fichiers", si négatif, il le signale et s'arrête.

    config.txt :

    ;!@Install@!UTF-8!
    Title="Extraction Dossier"
    RunProgram="Dossier\ batch.bat"
    Directory=""
    ;!@InstallEnd@!

    il ne manquerait pas une commande pour extraire " sous-dossier compressé et autres fichiers compressés" ?
    0