Pagina 1 di 1

[RISOLTO] Creazione del pacchetto software Sphinx v5

Pubblicato: 14 dicembre 2017 - 09:38
di olaplanche
Buongiorno,

Sto aprendo un nuovo thread per finalizzare il mio pacchetto di installazione del software Sphinx.

Ho trovato una procedura di installazione silenziosa più semplice rispetto al mio approccio iniziale nel thread "errore di codifica dei caratteri". Basta creare un file license.dat con le informazioni corrette nella radice della cartella di installazione.
Successivamente, avviamo l'installazione con il seguente comando: install.exe /s

L'installazione funziona senza problemi al di fuori di wapt, tuttavia una volta impacchettato l'installazione procede ma senza la licenza.
A un esame più attento, noto che non appena viene eseguito il file install.exe, la cartella temporanea del pacchetto viene eliminata.
Presumo quindi che il programma di installazione non abbia il tempo di leggere il file di licenza; è possibile ritardare l'eliminazione della cartella temporanea?

Per vostra informazione, ecco il mio codice:

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():
    print('installing wapt-sphinxv5')
    install_exe_if_needed("SphinxV5\Install.exe",'/s')

def uninstall():
    run(r'"C:\SphinxV5\licence\UNWISE.EXE" /s C:\SphinxV5\licence\install.log')
    remove_tree(r'C:\SphinxV5')
Per vostra informazione:
- Versione WAPT installata: 1.3.13
- Sistema operativo del server: Debian Jessie
- Sistema operativo della macchina di amministrazione/creazione pacchetti: Windows 10

GRAZIE

Re: Creazione del pacchetto software Sphinx v5

Pubblicato: 19 dicembre 2017 - 18:57
di dcardon
Buonasera Olaplanche,

la directory temporanea creata da WAPT durante l'installazione del pacchetto viene eliminata dopo l'esecuzione della funzione `install()`. Pertanto, il file è disponibile quando viene eseguito `SphinxV5\Install.exe`.

Devi verificare se il file di dati deve essere posizionato nella directory principale del pacchetto (`basedir`) o nella directory di SphinxV5 (la directory del file binario).

Fai attenzione anche alle barre rovesciate: devi raddoppiarle o aggiungere una 'r' prima della stringa, ad esempio `r'Install\Sphinxv5.exe'`.

Re: Creazione del pacchetto software Sphinx v5

Pubblicato: 20 dicembre 2017 - 09:05
di olaplanche
Ciao e grazie

Il file di licenza deve trovarsi nella stessa cartella del file binario.
Ho appena eseguito un test per confermare la mia ipotesi con questo nuovo codice:

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():
    print('installing wapt-sphinxv5')
    mkdirs(r'c:\temp')
    copytree2('SphinxV5',r'c:\temp\SphinxV5')
    install_exe_if_needed(r'c:\temp\SphinxV5\Install.exe','/s')

def uninstall():
    run(r'"C:\SphinxV5\licence\UNWISE.EXE" /s C:\SphinxV5\licence\install.log')
    remove_tree(r'C:\SphinxV5')
In questo modo, l'attivazione funziona correttamente. Se lascio che l'installazione proceda dal basedir, noto chiaramente che non appena viene eseguito install.exe, alcuni file nel basedir vengono eliminati (probabilmente quelli non bloccati dal binario), incluso il file di licenza. Di conseguenza, il binario, che dovrebbe accedervi in ​​seguito, non riesce a trovarlo.

Re: Creazione del pacchetto software Sphinx v5

Pubblicato: 14 dicembre 2018 - 13:37
di olaplanche
Pacchetto finalizzato!
Ecco la versione finale del codice:

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *
import time

uninstallkey = []

def install():
    print('installing wapt-sphinxv5')
    install_exe_if_needed("SphinxV5\Install.exe","/s")
    time.sleep(60)
    killalltasks('Licence.exe')

def uninstall():
    run(r'"C:\SphinxV5\licence\UNWISE.EXE" /s C:\SphinxV5\licence\install.log')
    remove_tree(r'C:\SphinxV5')