[WAPT 1.6.2][Errore] Creazione di un pacchetto Oracle 11

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
parte superiore
Messaggi: 8
Registrazione: 20 maggio 2019 - 14:14

20 maggio 2019 - 14:23

Buongiorno,

Sto creando un pacchetto per installare Oracle 11.

Ho riscontrato un problema durante il processo di installazione. Per un'installazione silenziosa, è necessario eseguire setup.exe con un file .rspFinora nessun problema. Il problema è che setup.exe esegue il processo oui.exe, che esegue l'installazione (e quindi setup.exe si chiude immediatamente). Di conseguenza, WAPT riscontra un errore e termina la procedura, generando errori nel processo.

Quindi, è possibile far sì che WAPT attenda prima di procedere con il resto dell'installazione mentre il processo oui.exe è in esecuzione?

setup.py

Codice: Seleziona tutto

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

uninstallkey = []

def install():
    print ('Installation clef registre')
    registry_setstring(HKEY_LOCAL_MACHINE, "SOFTWARE\\Oracle",'ImagePath',makepath(programfiles32,'Oracle\Inventory'), type=REG_EXPAND_SZ)
    print('installing far-oracle')
    filecopyto('client.rsp','C:\Windows\Temp')
    run(r'setup.exe -silent -responseFile C:\Windows\Temp\client.rsp')
    filecopyto('Tnsnames.ora','C:\Oracle11\product\11.2.0\client_1\network\admin')
    print ('Installation des drivers ODBC')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name MELODIE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name ARPEGE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name REQUIEM -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
def uninstall():
    print('uninstalling far-oracle11')
    run('C:\Oracle11\product\11.2.0\client_1\deinstall\deinstall.bat')

Registri:

Codice: Seleziona tutto

Ligne de Commande : install "c:\waptdev\far-oracle-wapt\WAPT\.."
Installing WAPT files c:\waptdev\far-oracle-wapt
Installation clef registre
installing far-oracle
2019-05-20 14:09:40,101 CRITICAL Fatal error in install script: IOError: [Errno 2] No such file or directory: 'C:\\Oracle11\\product\t.2.0\\client_1\network\x07dmin':
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 3512, in install_wapt
    exitstatus = setup.install()
  File "c:\waptdev\far-oracle-wapt\setup.py", line 12, in install
    filecopyto('Tnsnames.ora','C:\Oracle11\product\11.2.0\client_1\network\admin')
  File "C:\Program Files (x86)\wapt\setuphelpers.py", line 682, in filecopyto
    shutil.copy(filename,target)
  File "C:\Program Files (x86)\wapt\lib\shutil.py", line 133, in copy
    copyfile(src, dst)
  File "C:\Program Files (x86)\wapt\lib\shutil.py", line 97, in copyfile
    with open(dst, 'wb') as fdst:
IOError: [Errno 2] No such file or directory: 'C:\\Oracle11\\product\t.2.0\\client_1\network\x07dmin'

FATAL ERROR : IOError: [Errno 2] No such file or directory: 'C:\\Oracle11\\product\t.2.0\\client_1\network\x07dmin'
Exit code:  3
Grazie in anticipo !
Matteo.
Ultima modifica di upperm il 21 maggio 2019 alle 11:41, modificato 1 volta.
parte superiore
Messaggi: 8
Registrazione: 20 maggio 2019 - 14:14

20 maggio 2019 - 20:08

Problema "risolto"!
Sto usando un file .bat, che evita di restituire un errore. Probabilmente non è il metodo migliore, ma funziona.

Sono riuscito anche a gestire la disinstallazione.

Quindi, se qualcuno volesse implementare Oracle 11 (32 bit), ecco cosa ho fatto:

Struttura del pacchetto:
Immagine

La cartella Oracle contiene i file di installazione, nonché i file per l'installazione e la disinstallazione.
Immagine

Il file installazione.rsp

Codice: Seleziona tutto

###############################################################################
## Copyright(c) Oracle Corporation 1998, 2013. All rights reserved.           ##
##                                                                           ##
## Specify values for the variables listed below to customize                ##
## your installation.                                                        ##
##                                                                           ##
## Each variable is associated with a comment. The comment                   ##
## can help to populate the variables with the appropriate                   ##
## values.							             ##
##                                                                           ##
###############################################################################


#-------------------------------------------------------------------------------
# Do not change the following system generated value. 
#-------------------------------------------------------------------------------
oracle.install.responseFileVersion=http://www.oracle.com/2007/install/rspfmt_clientinstall_response_schema_v11_2_0

#-------------------------------------------------------------------------------
# This variable holds the hostname of the system as set by the user. 
# It can be used to force the installation to use an alternative   
# hostname rather than using the first hostname found on the system
# (e.g., for systems with multiple hostnames and network interfaces).
ORACLE_HOSTNAME=computer.mshome.net
#-------------------------------------------------------------------------------
# Unix group to be set for the inventory directory.  
UNIX_GROUP_NAME=
#-------------------------------------------------------------------------------
# Specify the languages in which the components will be installed.             
#
# en   : English                  ja   : Japanese                  
# fr   : French                   ko   : Korean                    
# ar   : Arabic                   es   : Latin American Spanish    
# bn   : Bengali                  lv   : Latvian                   
# pt_BR: Brazilian Portuguese     lt   : Lithuanian                
# bg   : Bulgarian                ms   : Malay                     
# fr_CA: Canadian French          es_MX: Mexican Spanish           
# ca   : Catalan                  no   : Norwegian                 
# hr   : Croatian                 pl   : Polish                    
# cs   : Czech                    pt   : Portuguese                
# da   : Danish                   ro   : Romanian                  
# nl   : Dutch                    ru   : Russian                   
# ar_EG: Egyptian                 zh_CN: Simplified Chinese        
# en_GB: English (Great Britain)  sk   : Slovak                    
# et   : Estonian                 sl   : Slovenian                 
# fi   : Finnish                  es_ES: Spanish                   
# de   : German                   sv   : Swedish                   
# el   : Greek                    th   : Thai                      
# iw   : Hebrew                   zh_TW: Traditional Chinese       
# hu   : Hungarian                tr   : Turkish                   
# is   : Icelandic                uk   : Ukrainian                 
# in   : Indonesian               vi   : Vietnamese                
# it   : Italian                                                   
#
# all_langs   : All languages
#
# Specify value as the following to select any of the languages.
# Example : SELECTED_LANGUAGES=en,fr,ja
#
# Specify value as the following to select all the languages.
# Example : SELECTED_LANGUAGES=all_langs
SELECTED_LANGUAGES=en,fr,fr_CA
#-------------------------------------------------------------------------------
# Complete path of the Oracle Home  
ORACLE_HOME=C:\Oracle11\product\11.2.0\client_1
#-------------------------------------------------------------------------------
# Complete path of the Oracle Base. 
ORACLE_BASE=C:\Oracle11
#------------------------------------------------------------------------------
#Name       : INSTALL_TYPE
#Datatype   : String
#Description: Installation type of the component.
#
#             The following choices are available. The value should contain
#             only one of these choices.
#               - InstantClient
#               - Administrator
#               - Runtime
#               - Custom
#
#Example    : INSTALL_TYPE = Administrator
#------------------------------------------------------------------------------
oracle.install.client.installType=Administrator
#------------------------------------------------------------------------------
#Name       : oracle.install.client.upgrading
#Datatype   : boolean
#Description: whether or not this is an upgrade installation
#
#             The following choices are available. The value should contain
#             only one of these choices.
#               - true
#               - false
#
#Example    : oracle.install.client.upgrading=true
#------------------------------------------------------------------------------
oracle.install.client.upgrading=false
#-------------------------------------------------------------------------------
# Name       : oracle.install.client.customComponents
# Datatype   : StringList
#
# This property is considered only if INSTALL_TYPE is set to "Custom"
#
# Description: List of Client Components you would like to install
#
#   The following choices are available. You may specify any
#   combination of these choices.  The components you choose should
#   be specified in the form "internal-component-name:version"
#   Below is a list of components you may specify to install.
#
# oracle.sqlj:11.2.0.4.0 -- "Oracle SQLJ"
# oracle.rdbms.util:11.2.0.4.0 -- "Oracle Database Utilities"
# oracle.javavm.client:11.2.0.4.0 -- "Oracle Java Client"
# oracle.sqlplus:11.2.0.4.0 -- "SQL*Plus"
# oracle.dbjava.jdbc:11.2.0.4.0 -- "Oracle JDBC/THIN Interfaces"
# oracle.ldap.client:11.2.0.4.0 -- "Oracle Internet Directory Client"
# oracle.rdbms.oci:11.2.0.4.0 -- "Oracle Call Interface (OCI)"
# oracle.precomp:11.2.0.4.0 -- "Oracle Programmer"
# oracle.xdk:11.2.0.4.0 -- "Oracle XML Development Kit"
# oracle.network.aso:11.2.0.4.0 -- "Oracle Advanced Security"
# oracle.oraolap.mgmt:11.2.0.4.0 -- "OLAP Analytic Workspace Manager and Worksheet"
# oracle.network.client:11.2.0.4.0 -- "Oracle Net"
# oracle.network.cman:11.2.0.4.0 -- "Oracle Connection Manager"
# oracle.network.listener:11.2.0.4.0 -- "Oracle Net Listener"
# oracle.ordim.client:11.2.0.4.0 -- "Oracle Multimedia Client Option"
# oracle.odbc:11.2.0.4.0 -- "Oracle ODBC Driver"
# oracle.has.client:11.2.0.4.0 -- "Oracle Clusterware High Availability API"
# oracle.dbdev:11.2.0.4.0 -- "Oracle SQL Developer"
# oracle.rdbms.scheduler:11.2.0.4.0 -- "Oracle Scheduler Agent" 
# oracle.ntoramts:11.2.0.4.0 -- "Oracle Services For Microsoft Transaction Server"
# oracle.ntrdbms.admin:11.2.0.4.0 -- "Oracle Administration Assistant for Windows"
# oracle.ntoledb:11.2.0.4.0 -- "Oracle Provider for OLE DB"
# oracle.ntoledb.odp_net_2:11.2.0.4.0 -- "Oracle Data Provider for .NET"
# oracle.aspnet_2:11.2.0.4.0 -- "Oracle Providers for ASP.NET"
# oracle.ntrdbms.perfmon:11.2.0.4.0 -- "Oracle Counters for Windows Performance Monitor"
# oracle.oo4o:11.2.0.4.0 -- "Oracle Objects for OLE" 
# 
#
# Example    : oracle.install.client.customComponents="oracle.precomp:11.2.0.4.0","oracle.oraolap.mgmt:11.2.0.4.0","oracle.rdbms.scheduler:11.2.0.4.0"
#-------------------------------------------------------------------------------
oracle.install.client.customComponents=
#-------------------------------------------------------------------------------
# Host name to be used for by the Oracle Scheduler Agent.
# This needs to be entered in case oracle.rdbms.scheduler is selected in the
# list of custom components during custom install
#
# Example    : oracle.install.client.schedulerAgentHostName = acme.domain.com
#------------------------------------------------------------------------------
oracle.install.client.schedulerAgentHostName=

#------------------------------------------------------------------------------
# Port number to be used for by the Oracle Scheduler Agent.
# This needs to be entered in case oracle.rdbms.scheduler is selected in the
# list of custom components during custom install
#
# Example: oracle.install.client.schedulerAgentPortNumber = 1500
#------------------------------------------------------------------------------
oracle.install.client.schedulerAgentPortNumber=

#------------------------------------------------------------------------------
# Specify the auto-updates option. It can be one of the following:
#   - MYORACLESUPPORT_DOWNLOAD
#   - OFFLINE_UPDATES
#   - SKIP_UPDATES
#------------------------------------------------------------------------------
oracle.installer.autoupdates.option=SKIP_UPDATES
#------------------------------------------------------------------------------
# In case MYORACLESUPPORT_DOWNLOAD option is chosen, specify the location where
# the updates are to be downloaded.
# In case OFFLINE_UPDATES option is chosen, specify the location where the updates
# are present.
oracle.installer.autoupdates.downloadUpdatesLoc=
#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username which has the patches download privileges  
# to be used for software updates.
#  Example   : AUTOUPDATES_MYORACLESUPPORT_USERNAME=abc@oracle.com
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_USERNAME=

#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username password which has the patches download privileges  
# to be used for software updates.
#
# Example    : AUTOUPDATES_MYORACLESUPPORT_PASSWORD=password
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=

#------------------------------------------------------------------------------
# Specify the Proxy server name. Length should be greater than zero.
#
# Example    : PROXY_HOST=proxy.domain.com 
#------------------------------------------------------------------------------
PROXY_HOST=

#------------------------------------------------------------------------------
# Specify the proxy port number. Should be Numeric and at least 2 chars.
#
# Example    : PROXY_PORT=25 
#------------------------------------------------------------------------------
PROXY_PORT=0
#------------------------------------------------------------------------------
# Specify the proxy user name. Leave PROXY_USER and PROXY_PWD 
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_USER=username 
#------------------------------------------------------------------------------
PROXY_USER=

#------------------------------------------------------------------------------
# Specify the proxy password. Leave PROXY_USER and PROXY_PWD  
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_PWD=password 
#------------------------------------------------------------------------------
PROXY_PWD=
#------------------------------------------------------------------------------
# Specify the proxy realm.
#
# Example    : PROXY_REALM=metalink
#------------------------------------------------------------------------------
PROXY_REALM=
Il file rimuovere.rsp

Codice: Seleziona tutto

[ENGINE]
 
#DO NOT CHANGE THIS.
Response File Version=1.0.0.0.0
 
[GENERIC]
 
#
OH_HOME_DEINSTALL=false
 
#
DOMAIN_MANAGED_ASINSTANCE_DEINSTALL=true
 
#
UNMANAGED_ASINSTANCE_DEINSTALL=false
 
#
DEINSTALL_IN_ASINSTANCE_MODE=true
 
#
DEINSTALL INSTANCE LIST=
 
 
[SYSTEM]
 
 
[APPLICATIONS]

 
[RELATIONSHIPS]
 
#
MIDDLEWARE_HOME=
 
#
WEBLOGIC_HOME=
 
#
DOMAIN_HOST_NAME=
 
#
DOMAIN_PORT_NO=7001
 
#
DOMAIN_USER_NAME=weblogic
 
#
DOMAIN_USER_PASSWORD=
 
#
MANAGED_INSTANCE_LIST=
Il file install_oracle.bat

Codice: Seleziona tutto

start /wait Oracle/install/oui.exe -responseFile C:\Windows\Temp\install.rsp -silent -nowait
Il file setup.py

Codice: Seleziona tutto

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

uninstallkey = []
ORACLE_HOME = 'C:\Oracle11\product\\11.2.0\client_1'
def install():
    print ('Installation clef registre')
    registry_setstring(HKEY_LOCAL_MACHINE, "SOFTWARE\\Oracle",'ImagePath',makepath(programfiles32,'Oracle\Inventory'), type=REG_EXPAND_SZ)

    print('Installing wapt-oracle')
    filecopyto('Oracle\\install.rsp','C:\Windows\Temp')
    run('install_oracle.bat')

	# Exemple pour ajouter une base ODBC. Pensez à modifier "-Name YOUR_APPS" et "Server=XXXXXXXX"
    # print ('Installation des drivers ODBC')
    # run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name YOUR_APPS -Platform 32-bit -SetPropertyValue "Server=XXXXXXXX"')

	# Copie du fichier TNS Name si besoin
    # filecopyto('Oracle\\tnsnames.ora',makepath(ORACLE_HOME,'network\\admin'))
    
	filecopyto('Oracle\\remove.rsp',makepath(ORACLE_HOME,'deinstall'))

def uninstall():
    print('Uninstalling wapt-oracle11')

    if isfile(makepath(ORACLE_HOME,'deinstall\\deinstall.bat')):
        run(r'{}\\deinstall/deinstall -silent -paramFile remove.rsp'.format(ORACLE_HOME))

    print('Check if folder still persit and delete')
    if isdir(makepath(ORACLE_HOME)):
        remove_tree(makepath(ORACLE_HOME))

    if isdir(makepath(programfiles32,'Oracle\Inventory')):
        remove_tree(makepath(programfiles32,'Oracle\Inventory'))

    if registry_readstring(HKEY_LOCAL_MACHINE, "SOFTWARE\\WOW6432Node", 'oracle') :
        run('reg delete HKLM\SOFTWARE\WOW6432Node\oracle /f')

    if registry_readstring(HKEY_LOCAL_MACHINE, "SOFTWARE", 'oracle') :
        run('reg delete HKLM\SOFTWARE\oracle /f')
Matteo.
Avatar utente
htouvet
Esperto WAPT
Messaggi: 436
Registrazione: 16 marzo 2015 - 10:48
Contatto:

20 maggio 2019 - 21:50

Normalmente, il comando "run" di wapt attende il completamento del processo chiamato.

Nel tuo codice, il problema principale è l'assenza di 'r' nelle stringhe quando contengono "\" (un carattere che, se combinato con quello che segue, viene interpretato in Python in un modo speciale, a meno che non mettiamo una 'r' all'inizio della stringa per indicare 'raw', una stringa "raw").

Questo spiega gli strani errori "IOError: [Errno 2] Nessun file o directory: 'C:\\Oracle11\\product\t.2.0\\client_1\network\x07dmin'"

Codice: Seleziona tutto

def install():
    print ('Installation clef registre')
    registry_setstring(HKEY_LOCAL_MACHINE, "SOFTWARE\\Oracle",'ImagePath',makepath(programfiles32,'Oracler','Inventory'), type=REG_EXPAND_SZ)
    print('installing far-oracle')
    filecopyto('client.rsp',r'C:\Windows\Temp')
    run(r'setup.exe -silent -responseFile C:\Windows\Temp\client.rsp')
    filecopyto('Tnsnames.ora',r'C:\Oracle11\product\11.2.0\client_1\network\admin')
    print ('Installation des drivers ODBC')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name MELODIE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name ARPEGE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name REQUIEM -Platform 32-bit -SetPropertyValue "Server=arpetcp"')

def uninstall():
    print('uninstalling far-oracle11')
    run(r'C:\Oracle11\product\11.2.0\client_1\deinstall\deinstall.bat')
    
Tranquillo IT
parte superiore
Messaggi: 8
Registrazione: 20 maggio 2019 - 14:14

21 maggio 2019 - 11:40

Sì, grazie, me ne sono accorto dopo! :)

Tuttavia, l'installazione non funziona se avviata con wapt. Sospetto che il problema sia dovuto all'account di sistema, perché quando avvio l'installazione da PyScripter, tutto funziona correttamente.

Oracle mi mostra un errore di autorizzazione:

Codice: Seleziona tutto

SEVERE: [FATAL] [INS-30131] Echec de la configuration initiale requise pour l'exécution des validations du programme d'installation.
   CAUSE: Echec de l'accès à l'emplacement temporaire.
   ACTION: Assurez-vous que l'utilisateur en cours détient les autorisations nécessaires pour accéder à l'emplacement temporaire.
Anche quando si cambia la directory di base (%tmp% utente) in un'altra (C:\Temp, C:\Windows\Temp) si verifica l'errore.
Avatar utente
htouvet
Esperto WAPT
Messaggi: 436
Registrazione: 16 marzo 2015 - 10:48
Contatto:

21 maggio 2019 - 15:28

Forse il mio errore di battitura (Oracle) nel percorso è errato...?


def install():
print('Installazione della chiave di registro')
registry_setstring(HKEY_LOCAL_MACHINE, "SOFTWARE\\Oracle", 'ImagePath', makepath(programfiles32, 'Oracle', 'Inventory'), type=REG_EXPAND_SZ)
...
Tranquillo IT
parte superiore
Messaggi: 8
Registrazione: 20 maggio 2019 - 14:14

22 maggio 2019 - 15:15

Ho continuato i miei test e l'installazione ora funziona correttamente, senza più problemi. Tuttavia, sembra che riceva un errore quando WAPT cerca di terminare il processo: Accesso negato: psutil.AccessDenied (pid=6328)


Ecco il file setup.py aggiornato

Codice: Seleziona tutto

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

uninstallkey = []
ORACLE_HOME = r'C:\Oracle11\product\11.2.0\client_1'
RegInventory = r'SOFTWARE\Oracle'
RegOracle = r'SOFTWARE\WOW6432Node\Oracle'

def install():
    print ('Installation clef registre')
    registry_setstring(HKEY_LOCAL_MACHINE, RegInventory,'ImagePath',makepath(programfiles32,'Oracle\Inventory'), type=REG_EXPAND_SZ)

    print('Installing far-oracle')
    filecopyto('Oracle\\install.rsp','C:\Windows\Temp')

    run(r'Oracle\install\oui.exe -responseFile C:\Windows\Temp\install.rsp -silent -nowait',timeout=60*60)

    print ('Installation des drivers ODBC')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name MELODIE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name ARPEGE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Oracle dans OraClient11g_home1_32bit" -DsnType System -Name REQUIEM -Platform 32-bit -SetPropertyValue "Server=arpetcp"')

    filecopyto('Oracle\\tnsnames.ora',makepath(ORACLE_HOME,'network\\admin'))
    filecopyto('Oracle\\remove.rsp',makepath(ORACLE_HOME,'deinstall'))

def uninstall():
    print('Uninstalling far-oracle11')

    if isfile(makepath(ORACLE_HOME,'deinstall\\deinstall.bat')):
        run(r'{}\\deinstall/deinstall -silent -paramFile remove.rsp'.format(ORACLE_HOME))

    if reg_key_exists(HKEY_LOCAL_MACHINE,RegOracle):
        run('reg delete HKLM\{} /f'.format(RegOracle))

    if reg_key_exists(HKEY_LOCAL_MACHINE,RegInventory):
        run('reg delete HKLM\{} /f'.format(RegInventory))

    # if service_installed('OracleRemExecService'):
    #    if service_is_running('OracleRemExecService'):
    #        service_stop('OracleRemExecService')

    if isdir(makepath(ORACLE_HOME)):
        remove_tree(r'C:\\Oracle11')

    if isdir(makepath(programfiles32,'Oracle')):
        remove_tree(makepath(programfiles32,'Oracle'))
Ecco i registri:

Codice: Seleziona tutto

Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\waptservice\service.py", line 1374, in run
    self.running_task.run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 515, in run
    self._run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 960, in _run
    self.result.get('errors',[])))
Exception: Erreur lors de l'installation de [u'far-oracle']: erreurs dans les paquets [[u'far-oracle', PackageEntry(u'far-oracle',u'1.0.5') , u'Traceback (most recent call last):\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 4372, in install\n    force=force\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 3591, in install_wapt\n    raise e\nAccessDenied: psutil.AccessDenied (pid=6328)\n']]

Exception: Erreur lors de l'installation de [u'far-oracle']: erreurs dans les paquets [[u'far-oracle', PackageEntry(u'far-oracle',u'1.0.5') , u'Traceback (most recent call last):\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 4372, in install\n    force=force\n  File "C:\\Program Files (x86)\\wapt\\common.py", line 3591, in install_wapt\n    raise e\nAccessDenied: psutil.AccessDenied (pid=6328)\n']]
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\waptservice\service.py", line 1374, in run
    self.running_task.run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 515, in run
    self._run()
  File "C:\Program Files (x86)\wapt\waptservice\waptservice_common.py", line 1041, in _run
    self.result = self.wapt.audit(self.packagename,force = self.force)
  File "C:\Program Files (x86)\wapt\common.py", line 5654, in audit
    raise Exception('Package %s is not installed' % package)
Exception: Package far-oracle is not installed
Adolescente
Messaggi: 3
Registrazione: 05 apr 2017 - 16:17

24 ottobre 2019 - 09:59

Stavo iniziando a disperare, grazie per la condivisione, upperm! :D

Ho fatto come hai fatto tu, eseguendo direttamente oui.exe, e funziona correttamente. Tuttavia, non capisco perché non esegua il file .rsp direttamente dalla cartella WAPT, anche se posso copiare il file tnsnames...


Una domanda veloce: alla fine dell'installazione (o disinstallazione), ti chiede di premere Invio per chiudere il prompt dei comandi. Come si fa a evitare questo? Perché mi sembra che finché non lo si fa, l'installazione rimanga attiva.
parte superiore
Messaggi: 8
Registrazione: 20 maggio 2019 - 14:14

24 ottobre 2019 - 10:19

CIAO !

Personalmente non ho problemi a questo proposito.

File di installazione

Codice: Seleziona tutto

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

uninstallkey = []
ORACLE_HOME = r'C:\Oracle11\product\11.2.0\client_1'
RegInventory = r'SOFTWARE\Oracle'
RegOracle = r'SOFTWARE\WOW6432Node\Oracle'

def install():

    if not isfile(makepath(ORACLE_HOME,'bin\oraclient11.dll')):
        print (r'Installation clef registre')
        registry_setstring(HKEY_LOCAL_MACHINE, RegInventory,'ImagePath',makepath(programfiles32,'Oracle\Inventory'), type=REG_EXPAND_SZ)
        filecopyto('Oracle\\install.rsp','C:\Windows\Temp')

        print(r'Installation Oracle 11')
        run(r'Oracle\install\oui.exe -responseFile C:\Windows\Temp\install.rsp -silent -nowait')
    else:
        print(r'Oracle 11 est deja installe')

    if isfile(makepath(ORACLE_HOME,'bin\oraclient11.dll')):
        print(r'Installation du fichier TnsName')
        filecopyto('Oracle\\tnsnames.ora',makepath(ORACLE_HOME,'network\\admin'))
        filecopyto('Oracle\\remove.rsp',makepath(ORACLE_HOME,'deinstall'))

    print (r'Installation des drivers ODBC')
    run_powershell('Add-OdbcDsn -DriverName "Microsoft ODBC for Oracle" -DsnType System -Name MELODIE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Microsoft ODBC for Oracle" -DsnType System -Name ARPEGE -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Microsoft ODBC for Oracle" -DsnType System -Name REQUIEM -Platform 32-bit -SetPropertyValue "Server=arpetcp"')
    run_powershell('Add-OdbcDsn -DriverName "Microsoft ODBC for Oracle" -DsnType System -Name MAESTRO -Platform 32-bit -SetPropertyValue "Server=arpetcp"')

def uninstall():

    if isfile(makepath(ORACLE_HOME,'deinstall\\deinstall.bat')):
        print(r'Desinstallation Oracle 11')
        run(r'{}\\deinstall/deinstall -silent -paramFile remove.rsp'.format(ORACLE_HOME))

    if reg_key_exists(HKEY_LOCAL_MACHINE,RegOracle):
        print(r'Suppression clef registre Oracle')
        run('reg delete HKLM\{} /f'.format(RegOracle))

    if reg_key_exists(HKEY_LOCAL_MACHINE,RegInventory):
        print(r'Suppression clef registre Oracle Inventory')
        run('reg delete HKLM\{} /f'.format(RegInventory))

    # if service_installed('OracleRemExecService'):
    #    if service_is_running('OracleRemExecService'):
    #        service_stop('OracleRemExecService')

    if isdir(makepath(ORACLE_HOME)):
        print(r'Suppression du répertoire Oracle')
        remove_tree(r'C:\\Oracle11')

    if isdir(makepath(programfiles32,'Oracle')):
        print(r'Suppression du répertoire Oracle Inventory')
        remove_tree(makepath(programfiles32,'Oracle'))
File di risposta per l'installazione (install.rsp)

Codice: Seleziona tutto

###############################################################################
## Copyright(c) Oracle Corporation 1998, 2013. All rights reserved.           ##
##                                                                           ##
## Specify values for the variables listed below to customize                ##
## your installation.                                                        ##
##                                                                           ##
## Each variable is associated with a comment. The comment                   ##
## can help to populate the variables with the appropriate                   ##
## values.							             ##
##                                                                           ##
###############################################################################


#-------------------------------------------------------------------------------
# Do not change the following system generated value. 
#-------------------------------------------------------------------------------
oracle.install.responseFileVersion=http://www.oracle.com/2007/install/rspfmt_clientinstall_response_schema_v11_2_0

#-------------------------------------------------------------------------------
# This variable holds the hostname of the system as set by the user. 
# It can be used to force the installation to use an alternative   
# hostname rather than using the first hostname found on the system
# (e.g., for systems with multiple hostnames and network interfaces).
ORACLE_HOSTNAME=computer.mshome.net
#-------------------------------------------------------------------------------
# Unix group to be set for the inventory directory.  
UNIX_GROUP_NAME=
#-------------------------------------------------------------------------------
# Specify the languages in which the components will be installed.             
#
# en   : English                  ja   : Japanese                  
# fr   : French                   ko   : Korean                    
# ar   : Arabic                   es   : Latin American Spanish    
# bn   : Bengali                  lv   : Latvian                   
# pt_BR: Brazilian Portuguese     lt   : Lithuanian                
# bg   : Bulgarian                ms   : Malay                     
# fr_CA: Canadian French          es_MX: Mexican Spanish           
# ca   : Catalan                  no   : Norwegian                 
# hr   : Croatian                 pl   : Polish                    
# cs   : Czech                    pt   : Portuguese                
# da   : Danish                   ro   : Romanian                  
# nl   : Dutch                    ru   : Russian                   
# ar_EG: Egyptian                 zh_CN: Simplified Chinese        
# en_GB: English (Great Britain)  sk   : Slovak                    
# et   : Estonian                 sl   : Slovenian                 
# fi   : Finnish                  es_ES: Spanish                   
# de   : German                   sv   : Swedish                   
# el   : Greek                    th   : Thai                      
# iw   : Hebrew                   zh_TW: Traditional Chinese       
# hu   : Hungarian                tr   : Turkish                   
# is   : Icelandic                uk   : Ukrainian                 
# in   : Indonesian               vi   : Vietnamese                
# it   : Italian                                                   
#
# all_langs   : All languages
#
# Specify value as the following to select any of the languages.
# Example : SELECTED_LANGUAGES=en,fr,ja
#
# Specify value as the following to select all the languages.
# Example : SELECTED_LANGUAGES=all_langs
SELECTED_LANGUAGES=en,fr,fr_CA
#-------------------------------------------------------------------------------
# Complete path of the Oracle Home  
ORACLE_HOME=C:\Oracle11\product\11.2.0\client_1
#-------------------------------------------------------------------------------
# Complete path of the Oracle Base. 
ORACLE_BASE=C:\Oracle11
#------------------------------------------------------------------------------
#Name       : INSTALL_TYPE
#Datatype   : String
#Description: Installation type of the component.
#
#             The following choices are available. The value should contain
#             only one of these choices.
#               - InstantClient
#               - Administrator
#               - Runtime
#               - Custom
#
#Example    : INSTALL_TYPE = Administrator
#------------------------------------------------------------------------------
oracle.install.client.installType=Runtime
#------------------------------------------------------------------------------
#Name       : oracle.install.client.upgrading
#Datatype   : boolean
#Description: whether or not this is an upgrade installation
#
#             The following choices are available. The value should contain
#             only one of these choices.
#               - true
#               - false
#
#Example    : oracle.install.client.upgrading=true
#------------------------------------------------------------------------------
oracle.install.client.upgrading=false
#-------------------------------------------------------------------------------
# Name       : oracle.install.client.customComponents
# Datatype   : StringList
#
# This property is considered only if INSTALL_TYPE is set to "Custom"
#
# Description: List of Client Components you would like to install
#
#   The following choices are available. You may specify any
#   combination of these choices.  The components you choose should
#   be specified in the form "internal-component-name:version"
#   Below is a list of components you may specify to install.
#
# oracle.sqlj:11.2.0.4.0 -- "Oracle SQLJ"
# oracle.rdbms.util:11.2.0.4.0 -- "Oracle Database Utilities"
# oracle.javavm.client:11.2.0.4.0 -- "Oracle Java Client"
# oracle.sqlplus:11.2.0.4.0 -- "SQL*Plus"
# oracle.dbjava.jdbc:11.2.0.4.0 -- "Oracle JDBC/THIN Interfaces"
# oracle.ldap.client:11.2.0.4.0 -- "Oracle Internet Directory Client"
# oracle.rdbms.oci:11.2.0.4.0 -- "Oracle Call Interface (OCI)"
# oracle.precomp:11.2.0.4.0 -- "Oracle Programmer"
# oracle.xdk:11.2.0.4.0 -- "Oracle XML Development Kit"
# oracle.network.aso:11.2.0.4.0 -- "Oracle Advanced Security"
# oracle.oraolap.mgmt:11.2.0.4.0 -- "OLAP Analytic Workspace Manager and Worksheet"
# oracle.network.client:11.2.0.4.0 -- "Oracle Net"
# oracle.network.cman:11.2.0.4.0 -- "Oracle Connection Manager"
# oracle.network.listener:11.2.0.4.0 -- "Oracle Net Listener"
# oracle.ordim.client:11.2.0.4.0 -- "Oracle Multimedia Client Option"
# oracle.odbc:11.2.0.4.0 -- "Oracle ODBC Driver"
# oracle.has.client:11.2.0.4.0 -- "Oracle Clusterware High Availability API"
# oracle.dbdev:11.2.0.4.0 -- "Oracle SQL Developer"
# oracle.rdbms.scheduler:11.2.0.4.0 -- "Oracle Scheduler Agent" 
# oracle.ntoramts:11.2.0.4.0 -- "Oracle Services For Microsoft Transaction Server"
# oracle.ntrdbms.admin:11.2.0.4.0 -- "Oracle Administration Assistant for Windows"
# oracle.ntoledb:11.2.0.4.0 -- "Oracle Provider for OLE DB"
# oracle.ntoledb.odp_net_2:11.2.0.4.0 -- "Oracle Data Provider for .NET"
# oracle.aspnet_2:11.2.0.4.0 -- "Oracle Providers for ASP.NET"
# oracle.ntrdbms.perfmon:11.2.0.4.0 -- "Oracle Counters for Windows Performance Monitor"
# oracle.oo4o:11.2.0.4.0 -- "Oracle Objects for OLE" 
# 
#
# Example    : oracle.install.client.customComponents="oracle.precomp:11.2.0.4.0","oracle.oraolap.mgmt:11.2.0.4.0","oracle.rdbms.scheduler:11.2.0.4.0"
#-------------------------------------------------------------------------------
oracle.install.client.customComponents=
#-------------------------------------------------------------------------------
# Host name to be used for by the Oracle Scheduler Agent.
# This needs to be entered in case oracle.rdbms.scheduler is selected in the
# list of custom components during custom install
#
# Example    : oracle.install.client.schedulerAgentHostName = acme.domain.com
#------------------------------------------------------------------------------
oracle.install.client.schedulerAgentHostName=

#------------------------------------------------------------------------------
# Port number to be used for by the Oracle Scheduler Agent.
# This needs to be entered in case oracle.rdbms.scheduler is selected in the
# list of custom components during custom install
#
# Example: oracle.install.client.schedulerAgentPortNumber = 1500
#------------------------------------------------------------------------------
oracle.install.client.schedulerAgentPortNumber=

#------------------------------------------------------------------------------
# Specify the auto-updates option. It can be one of the following:
#   - MYORACLESUPPORT_DOWNLOAD
#   - OFFLINE_UPDATES
#   - SKIP_UPDATES
#------------------------------------------------------------------------------
oracle.installer.autoupdates.option=SKIP_UPDATES
#------------------------------------------------------------------------------
# In case MYORACLESUPPORT_DOWNLOAD option is chosen, specify the location where
# the updates are to be downloaded.
# In case OFFLINE_UPDATES option is chosen, specify the location where the updates
# are present.
oracle.installer.autoupdates.downloadUpdatesLoc=
#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username which has the patches download privileges  
# to be used for software updates.
#  Example   : AUTOUPDATES_MYORACLESUPPORT_USERNAME=abc@oracle.com
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_USERNAME=

#------------------------------------------------------------------------------
# Specify the My Oracle Support Account Username password which has the patches download privileges  
# to be used for software updates.
#
# Example    : AUTOUPDATES_MYORACLESUPPORT_PASSWORD=password
#------------------------------------------------------------------------------
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=

#------------------------------------------------------------------------------
# Specify the Proxy server name. Length should be greater than zero.
#
# Example    : PROXY_HOST=proxy.domain.com 
#------------------------------------------------------------------------------
PROXY_HOST=

#------------------------------------------------------------------------------
# Specify the proxy port number. Should be Numeric and at least 2 chars.
#
# Example    : PROXY_PORT=25 
#------------------------------------------------------------------------------
PROXY_PORT=0
#------------------------------------------------------------------------------
# Specify the proxy user name. Leave PROXY_USER and PROXY_PWD 
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_USER=username 
#------------------------------------------------------------------------------
PROXY_USER=

#------------------------------------------------------------------------------
# Specify the proxy password. Leave PROXY_USER and PROXY_PWD  
# blank if your proxy server requires no authentication.
#
# Example    : PROXY_PWD=password 
#------------------------------------------------------------------------------
PROXY_PWD=
#------------------------------------------------------------------------------
# Specify the proxy realm.
#
# Example    : PROXY_REALM=metalink
#------------------------------------------------------------------------------
PROXY_REALM=
File di risposta alla disinstallazione (remove.rsp)

Codice: Seleziona tutto

[ENGINE]
 
#DO NOT CHANGE THIS.
Response File Version=1.0.0.0.0
 
[GENERIC]
 
#
OH_HOME_DEINSTALL=false
 
#
DOMAIN_MANAGED_ASINSTANCE_DEINSTALL=true
 
#
UNMANAGED_ASINSTANCE_DEINSTALL=false
 
#
DEINSTALL_IN_ASINSTANCE_MODE=true
 
#
DEINSTALL INSTANCE LIST=
 
 
[SYSTEM]
 
 
[APPLICATIONS]

 
[RELATIONSHIPS]
 
#
MIDDLEWARE_HOME=
 
#
WEBLOGIC_HOME=
 
#
DOMAIN_HOST_NAME=
 
#
DOMAIN_PORT_NO=7001
 
#
DOMAIN_USER_NAME=weblogic
 
#
DOMAIN_USER_PASSWORD=
 
#
MANAGED_INSTANCE_LIST=
Adolescente
Messaggi: 3
Registrazione: 05 apr 2017 - 16:17

24 ottobre 2019 - 11:43

Credo di aver parlato troppo presto...

Tramite PyScripter, l'installazione è andata a buon fine ora che eseguo oui.exe direttamente.

Tuttavia, quando eseguo il pacchetto nel modo usuale, ottengo lo stesso errore che hai tu: AccessDenied: psutil.AccessDenied (pid=11056)

MODIFICA: Nonostante l'errore che ho menzionato sopra, l'installazione si completa correttamente... Ho provato con un timeout più lungo o anche con accept_returncodes=[0,1601,3] (perché ho un codice di uscita: 3) ma non è cambiato nulla... MODIFICA

2: Sono riuscito a risolvere questo problema avviando il programma di installazione tramite un prompt dei comandi.
jlatieule
Messaggi: 59
Registrazione: 3 luglio 2019 - 9:18

2 aprile 2020 - 11:30

Buongiorno,

Dopo il test, il codice restituito non è 3 ma -4

Provalo con accept_returncodes=[0,-4]
Ado ha scritto: 24 ott 2019 - 11:43 Penso di aver parlato troppo presto...

Tramite PyScripter, l'installazione è andata liscia ora che eseguo oui.exe direttamente.

Tuttavia, quando eseguo il pacchetto nel modo usuale, ottengo lo stesso errore che hai tu: AccessDenied: psutil.AccessDenied (pid=11056)

MODIFICA: Nonostante l'errore che ho menzionato sopra, l'installazione si completa correttamente... Ho provato con un timeout più lungo o anche con accept_returncodes=[0,1601,3] (perché ho un codice di uscita: 3) ma non è cambiato nulla...

MODIFICA 2: Sono riuscito a risolvere questo problema avviando il programma di installazione tramite un prompt dei comandi
Amministratore di sistema e di rete presso Domitia Habitat
Bloccato